Advanced features - ReactionMechanismGenerator/ARC GitHub Wiki

ARC Has many advanced features, you probably won't need to use all of them. Take a look below to see what might be relevant for you:

Specifying the level of theory

This is probably important for all users. ARC uses reasonable defaults, but you may very well want to use different levels. The defaults, found in the settings.py file, are:

default_levels_of_theory = {'conformer': 'b97-d3/6-311+g(d,p)',
                            'opt': 'wb97x-d3/6-311+g(d,p)',
                            'freq': 'wb97x-d3/6-311+g(d,p)',
                            'sp': 'ccsd(t)-f12/cc-pvtz-f12',  # This should be a level for which BAC is available
                            'scan': 'b3lyp/6-311+g(d,p)',
                            'irc': 'b3lyp/6-31+g(d)',
                            'gsm': 'b3lyp/6-31+g(d)',
                            'freq_for_composite': 'B3LYP/CBSB7',  # This is the frequency level of the CBS-QB3 method

Note that sp should have a respective "Model Chemistry" in Arkane if thermodynamic calculations are desired (the "Model Chemistry" is determined automatically). You may either change these defaults in settings.py, or simply pass the respective arguments conformer_level, composite_method, opt_level, freq_level, sp_level, scan_level when running ARC. Alternatively, you may define level_of_theory instead (e.g., level_of_theory=CCSD(T)-F12a/aug-cc-pVTZ//B3LYP/6-311++G(3df,3pd)) from which sp, opt, and freq are determined.

A software is automatically assigned according to the respective level, and currently cannot be set directly.

An example input file:

project: demo
conformer_level: b97-d3/6-311+g(d,p)
freq_level: wb97x-d3/6-311+g(d,p)
opt_level: wb97x-d3/6-311+g(d,p)
scan_level: b3lyp/6-311+g(d,p)
sp_level: ccsd(t)-f12/cc-pvtz-f12

species:
  - label: vinoxy
    smiles: C=C[O]

If you would like to run a composite method (e.g., CBS-QB3), pass the composite method name in the composite_method argument. Also consider changing the freq_for_composite accordingly in the settings.py file (currently this is not an ARC argument).

Note that if you'd like to compute properties using different levels of theory, you should run separate ARC jobs, one (or more) per level.

Defining species

Species can be defined either using SMILES, adjLists or xyz coordinates. Alternatively, ARC can also process the structure information from an RMG Species object. See the ARC Demo notebook for examples including how to correctly pass an RMG Species object. Below are different examples for defining species in an input file:

project: yaml_demo

species:
  - label: vinoxy
    smiles: C=C[O]

  - label: OH
    xyz: |
      O       0.00000000    0.00000000   -0.12002167
      H       0.00000000    0.00000000    0.85098324

  - label: methylamine
    smiles: CN

  - label: propene
    smiles: C=CC

  - label: N2H4
    smiles: NN
    multiplicity: 1
    charge: 0

Note that specifying multiplicity and charge is optional: a net charge of 0 is assumed, and a multiplicity of either 1 or 2 is automatically determined from the 2D/3D structure. For Triplets/Quartets and so on, or for net charged species, specify the respective value/s directly. An example is given above under N2H4 with the trivial values.

(Note: Currently RMG cannot process net charged species, and this was not tested in ARC. While definitely possible, there might be some bugs to resolve at first).

Using a fine grid for optimization

This option is turned on by default. If you'd like to turn it off, set fine to False.

In Gaussian, this will add the keywords scf=(tight,direct) int=finegrid.

In QChem, this will add the following settings:

   GEOM_OPT_TOL_GRADIENT 15
   GEOM_OPT_TOL_DISPLACEMENT 60
   GEOM_OPT_TOL_ENERGY 5

Generate conformers

This option is turned on by default. If you'd like to turn it off, set generate_conformers to False.

If a 2D structure is given (e.g., SMILES, AdjList), localized (resonance) structures are first generated, then many (scales with molecule size) conformers are generated using both RDKit and OpenBabel. Conformers generated by each of the dependent software are optimized using force fields, and the lowest energy candidate from each of the software for each of the localized structures of the species is saved. This process should result in two conformers for species with no electron delocalization, four if two non-isomorphic localized structures exists and so on. The final conformers are then optimized at the selected conformer_level, and the lowest energy conformer is taken as the initial guess for the actual optimization at the selected opt_level.

If a 3D guess (xyz) is given in addition to the 2D structure, it is also considered as one of the conformers to be calculated at the conformer_level. If a 3D guess is given with no 2D structure, conformers are generated as described above without localized structure generation.

This option is only relevant for stable species (not for TSs).

To see which resonance structures RMG predicts for your species, use the Generate Resonance Structures feature under the Molecule Search tab on the RMG website.

Rotor scans

This option is turned on by default. If you'd like to turn it off, set scan_rotors to False.

ARC will perform 1D rotor scans to determine possible unique hindered rotors in the species, taking into account all localized structures (where relevant single bonds might have different locations).

The rotor scan resolution is 10 degrees by default (scanning 360 degrees overall). Rotors are invalidated (not used for thermo / rate calculations) if they have inconsistencies or have a barrier above a maximum threshold (40 kJ/mol by defaut). These settings can be modified in the settings.py file.

Using bond additivity corrections (BAC)

This option is turned on by default. If you'd like to turn it off, set use_bac to False.

This determines whether or not to use BAC in thermo calculations by Arkane. For a list of "Model Chemistries" for which BAC is available in Arkane, see Arkane's documentation.

Model Chemistry

ARC automatically determined the "Model Chemistry" to be used in Arkane by the sp level. If a specific "Model Chemistry" is desired, pass it in the model_chemistry argument. For a list of "Model Chemistries" in Arkane, see Arkane's documentation.

Electronic Structure Software Settings

ARC automatically scans the servers it has access to and determines the (server-wise) locations of the ESS (currently Gaussian, Molpro, and QChem are supported). This automated procedure might not always return the desired result. You should try running the ARC ESS diagnostics notebook from under the ipyhton folder to see whether ARC agrees with your expectations. You may pass an ESS settings dictionary to override ARC's determination, for example:

ess_settings: {'gaussian': 'server1', 'molpro': 'server2', 'qchem': 'server1'}

Troubleshooting

ARC is known for having fairly good troubleshooting methods. However, at times a user might know in advance that a particular troubleshooting method is required for the desired species. In such cases, simply pass the relevant keyword in the initial_trsh argument.