Skip to content

Input file reference

This page documents every available T3 input argument.

This is not a runnable input file. It combines gas-phase and liquid-phase options together for reference purposes.

# A commented version of T3 input file
project: project_name  # required
project_directory: project_name  # optional

verbose: 20  # The logging level, optional. 10 - debug, 20 - info, 30 - warning, default: 20

# arguments related to T3 (optional)
t3:

  # options (optional block, all arguments have defaults)
  options:
    flux_adapter: RMG  # optional, can use any implemented simulation adapter, default: 'RMG'
    profiles_adapter: RMG  # optional, can use any implemented simulation adapter, default: 'RMG'
    collision_violators_thermo: false  # optional, whether to calculate thermo of species participating
                                      # in collision violating reactions, default: False
    collision_violators_rates: false  # optional, whether to calculate rates of core collision violating
                                     # reactions, default: False. If True, will force
                                     # collision_violators_thermo to be True if it's not
    all_core_species: false  # optional, whether to calculate thermo for all core species, default: False
    all_core_reactions: false  # optional, whether to calculate rates for all core species, default: False
    fit_missing_GAV: false  # optional, whether to capture wrong thermo groups of species estimated by
                            # RMG and attempt to calculate them, default: False
    max_T3_iterations: 10  # optional, maximum T3 iterations, default: 10
    max_RMG_exceptions_allowed: 10  # optional, maximum number of times RMG is allowed to crash,
                                    # default: 10
    max_RMG_walltime: '00:02:00:00'  # optional, format is 'DD:HH:MM:SS', default: '00:00:00:00'
    max_T3_walltime: '01:00:00:00'  # optional, format is 'DD:HH:MM:SS', default: None
    max_rmg_processes: null  # optional, maximum number of processes for RMG multiprocessing,
                             # default: None
    max_rmg_iterations: null  # optional, maximum number of internal RMG iterations, default: None
    library_name: T3lib  # optional, name of the RMG libraries T3 creates and saves as output,
                         # default: 'T3lib'
    shared_library_name: T3_shared  # optional, name of RMG libraries (kinetics and thermo) created
                                    # inside the respective RMG database paths that several T3
                                    # concurrent projects may share, default: None
    external_library_path: null  # optional, path to an external RMG library to use for saving shared
                                 # libraries, default: None (i.e., use the RMG database path)
    num_sa_per_temperature_range: 3  # optional, if a range of temperatures is given this argument
                                     # specifies how many equally distributed points to generate for
                                     # local SA runs, default: 3
    num_sa_per_pressure_range: 3  # optional, same as above for pressures, default: 3
    num_sa_per_volume_range: 3  # optional, same as above for volumes, default: 3
    num_sa_per_concentration_range: 3  # optional, same as above for species concentrations, default: 3
    modify_concentration_ranges_together: true  # optional, if species concentration is given as a
                                                # range, whether to vary them together (True) or create
                                                # combinations (False). Warning: False may result in
                                                # many slow SA runs. default: True
    modify_concentration_ranges_in_reverse: false  # optional, if concentration is given as a range
                                                   # for two species, whether to vary them inversely
                                                   # (e.g., fuel and oxidizer). default: False

  # sensitivity analysis (optional block, T3 can run w/o SA)
  sensitivity:
    adapter: CanteraConstantTP  # *required* (this is how SA is requested)
                                # Available adapters: 'CanteraConstantTP', 'CanteraConstantHP',
                                # 'CanteraConstantUV', 'CanteraPFR', 'CanteraPFRTProfile',
                                # 'CanteraJSR', 'RMGConstantTP'
    atol: 1e-6  # optional, default: 1e-6
    rtol: 1e-4  # optional, default: 1e-4
    global_observables: ['IDT', 'ESR', 'SL']  # optional, only implemented in Cantera adapters,
                                               # default: None
                                               # IDT = ignition delay time
                                               # ESR = extinction strain rate
                                               # SL  = laminar flame speed
    SA_threshold: 0.01  # optional, default: 0.01
    pdep_SA_threshold: 0.001  # optional, used to determine wells and reactions to calculate thermo
                              # and rates for from a PES of a sensitive reaction, default: 0.001
                              # Pass None to skip PES SA.
    ME_methods: ['CSE', 'MSC']  # master equation methods for PES SA,
                                # any combination of 'CSE', 'RS', 'MSC', default: ['CSE', 'MSC']
    top_SA_species: 10  # optional, used per observable to determine thermo to calculate, default: 10
    top_SA_reactions: 10  # optional, used per observable to determine rates to calculate as well as
                          # thermo of species participating in these reactions, default: 10
    T_list: [800, 1000, 1200]  # optional, explicit temperature list for SA runs (overrides
                               # range-based generation), Units: K, default: None
    P_list: [1, 10]  # optional, explicit pressure list for SA runs (overrides range-based
                     # generation), Units: bar, default: None

  # uncertainty analysis (optional block, T3 can run w/o UA)
  # either local or global UA type must be specified to execute an UA
  uncertainty:
    adapter: RMG  # *required* (this is how UA is requested), currently only implemented in the
                  # RMG adapter
    local_analysis: false  # optional, local UA using first-order sensitivity coefficients,
                           # default: False
    global_analysis: false  # optional, global UA varying largest sensitive input parameters,
                            # default: False
    correlated: true  # optional, whether to treat input parameters as correlated, default: True
    local_number: 10  # optional, number of reported parameters in local UA, default: 10
    global_number: 5  # optional, number of sensitive input parameters to vary in global UA per
                      # observable, applies independently to species and reactions, default: 5
    termination_time: null  # only necessary for global UA if a termination time wasn't specified in
                            # the RMG reactor
    PCE_run_time: 1800  # optional, time limit for adapting PCE to output, default: 1800, Units: s
    PCE_error_tolerance: null  # optional, target L2 error for PCE, default: None
    PCE_max_evals: null  # optional, max model evaluations for PCE adaptation, default: None
    logx: false  # optional, toggles output between mole fractions and log mole fractions,
                 # default: False

# arguments related to RMG, required
rmg:

  # general
  rmg_execution_type: incore  # optional, 'incore' or 'local', default: None (set from settings.py)
  memory: 15  # optional, RMG memory in GB (for server execution), default: None
  cpus: 16  # optional, number of processes for RMG, default: None

  # database (a required block)
  database:
    thermo_libraries: ['BurkeH2O2', 'DFT_QCI_thermo', 'primaryThermoLibrary', 'CBS_QB3_1dHR']
        # Can be None for auto-completion via chemistry_sets
    kinetics_libraries: ['BurkeH2O2inN2', 'NOx2018', 'Klippenstein_Glarborg2016']
        # Can be None for auto-completion via chemistry_sets
    chemistry_sets: ['primary', 'nitrogen', 'combustion']
        # Chemistry systems for which libraries will be auto-loaded. Can be None.
    use_low_credence_libraries: false  # Whether to use low credence libraries during
                                       # auto-completion, default: False
    transport_libraries: ['OneDMinN2', 'PrimaryTransportLibrary', 'NOx2018', 'GRI-Mech']
        # optional, default: ['OneDMinN2', 'PrimaryTransportLibrary', 'NOx2018', 'GRI-Mech']
    seed_mechanisms: []  # optional, default: []
    kinetics_depositories: default  # optional, default: 'default'
    kinetics_families: default  # optional, default: 'default'
    kinetics_estimator: rate rules  # optional, default: 'rate rules'

  # species (initial mixture) (a required block)
  # concentration units are mole fraction for gas phase and mol/cm3 for liquid phase
  # must specify either 'smiles', 'inchi', or 'adjlist'
  # not specifying 'concentration' is allowed and will result in a 0 initial concentration
  species:
    - label: ethane
      smiles: CC
      concentration: [1, 1.75]  # a concentration range can be defined (a length-2 list)
      reactive: true  # optional, default: True
      xyz: [ethane.log]  # each entry could be a string/dict XYZ format or a file path
      seed_all_rads: ['radical', 'alkoxyl', 'peroxyl']  # radical derivatives for the RMG input
    - label: OH
      smiles: '[OH]'
      observable: true  # optional, will be used as SA observable, default: False
      SA_observable: true  # optional, will be used as an SA observable, default: False
    - label: O2
      smiles: '[O][O]'
      concentration: 3.5
    - label: N2
      adjlist: |
        1 N u0 p1 c0 {2,T}
        2 N u0 p1 c0 {1,T}
      concentration: 13.16  # mole fraction (e.g., 3.5 * 3.76 for air)
      balance: true  # optional, only for gas phase simulations, default: False
      # note: 'constant' is only allowed in liquid phase simulations
      # note: 'solvent' is only allowed in liquid phase simulations

  # reactors (List[dict]) (a required block)
  # reactor type: 'gas batch constant T P' or 'liquid batch constant T V'
  # at least one termination criterion must be given per reactor
  # having a termination_time is recommended (also used for SA simulations)
  # users may specify multiple reactors, but all must be the same phase
  reactors:
    - type: gas batch constant T P
      T: [800, 1750]  # float (single T) or list (T range), Units: K
      P: 1e0  # float (single P) or list (P range), Units: bar
      termination_conversion:
        ethane: 0.2
      termination_time: [5, 's']  # allowed units: 'micro-s', 'ms', 's', 'hours', 'days'
      termination_rate_ratio: 0.01
      conditions_per_iteration: 12  # optional, default: 12 (nSims in RMG)

  # model (a required block)
  model:
    # primary tolerances:
    core_tolerance: [0.05, 0.01]  # *required*, float or list (toleranceMoveToCore)
    atol: 1e-16  # optional, default: 1e-16
    rtol: 1e-8  # optional, default: 1e-8
    # filtering:
    filter_reactions: true  # optional, default: True
    filter_threshold: 1e+8  # optional, filtering reactions threshold
    # pruning:
    tolerance_interrupt_simulation: [0.05, 0.01]  # optional, set equal to core_tolerance if omitted
    min_core_size_for_prune: 50  # optional, pruning
    min_species_exist_iterations_for_prune: 2  # optional, pruning
    tolerance_keep_in_edge: 0.02  # optional, pruning
    maximum_edge_species: 1000000  # optional, pruning
    tolerance_thermo_keep_species_in_edge:  # optional, thermo pruning
    # staging:
    max_num_species: null  # optional, staging
    # dynamics:
    tolerance_move_edge_reaction_to_core:  # optional, dynamics criterion
    tolerance_move_edge_reaction_to_core_interrupt: 5.0  # optional, dynamics criterion
    dynamics_time_scale: [0.0, 'sec']  # optional, dynamics criterion
    # multiple objects:
    max_num_objs_per_iter: 1  # optional, multiple objects
    terminate_at_max_objects: false  # optional, multiple objects
    # misc:
    ignore_overall_flux_criterion: false  # optional
    tolerance_branch_reaction_to_core: 0.001  # optional
    branching_index: 0.5  # optional
    branching_ratio_max: 1.0  # optional
    # surface algorithm:
    tolerance_move_edge_reaction_to_surface: null
    tolerance_move_surface_species_to_core: null
    tolerance_move_surface_reaction_to_core: null
    tolerance_move_edge_reaction_to_surface_interrupt: null

  # pressure dependence (optional block, gas phase only)
  pdep:
    method: MSC  # *required*, options: 'CSE', 'RS', 'MSC'
    max_grain_size: 2  # optional, kJ/mol, default: 2
    max_number_of_grains: 250  # optional, default: 250
    T: [300, 2500, 10]  # optional, [T_min, T_max, n_points], K, default: [300, 2500, 10]
    P: [0.01, 100, 10]  # optional, [P_min, P_max, n_points], bar, default: [0.01, 100, 10]
    interpolation: Chebyshev  # optional, 'PDepArrhenius' or 'Chebyshev', default: 'Chebyshev'
    T_basis_set: 6  # optional, Chebyshev only, default: 6
    P_basis_set: 4  # optional, Chebyshev only, default: 4
    max_atoms: 16  # optional, default: 16

  # options (optional block)
  options:
    seed_name: Seed  # optional, default: 'Seed'
    save_edge: false  # optional, default: False (saveEdgeSpecies)
    save_html: false  # optional, default: False
    generate_seed_each_iteration: true  # optional, default: True
    save_seed_to_database: false  # optional, default: False
    units: si  # optional, currently only 'si' is supported
    generate_plots: false  # optional, RMG statistics plots, default: False
    save_simulation_profiles: false  # optional, save RMG .csv profiles, default: False
    verbose_comments: false  # optional, verbose chemkin comments, default: False
    keep_irreversible: false  # optional, default: False
    trimolecular_product_reversible: true  # optional, default: True
    save_seed_modulus: -1  # optional, save seed every n iterations (-1 = last only), default: -1

  # species constraints (optional block)
  species_constraints:
    allowed: ['input species', 'seed mechanisms', 'reaction libraries']  # optional
    max_C_atoms: 10  # required
    max_O_atoms: 10  # required
    max_N_atoms: 10  # required
    max_Si_atoms: 10  # required
    max_S_atoms: 10  # required
    max_heavy_atoms: 10  # required
    max_radical_electrons: 2  # required
    max_singlet_carbenes: 1  # optional, default: 1
    max_carbene_radicals: 0  # optional, default: 0
    allow_singlet_O2: true  # optional, default: True in T3 (False in RMG)

# arguments related to QM calcs, required to run QM calcs, otherwise T3 will only spawn RMG
qm:
  # currently only ARC is supported
  # All legal ARC arguments are allowed here
  # If 'species' or 'reactions' are specified, ARC will be spawned prior to RMG (iteration 0)
  adapter: ARC
  # any legal ARC argument can come here, for example:
  adaptive_levels:
    (1, 6):
      opt_level: wb97xd/wb97xd/def2tzvp
      sp: ccsd(t)-f12/aug-cc-pvtz-f12
    (7, 30):
      conformer_level:
        method: wb97xd
        basis: def2svp
      opt_level:
        method: wb97xd
        basis: def2tzvp
      sp_level:
        method: dlpno-ccsd(T)
        basis: def2-tzvp
        auxiliary_basis: def2-tzvp/c
    (31, 'inf'):
      opt_level: wb97xd/wb97xd/def2tzvp
  species:
    - label: vinoxy
      smiles: C=C[O]