Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • ReactionModel:
    • Wiki Markup
      +rxn_expressions+ \- These expressions determine the elementary reaction, and are the most important part of the model. They must be defined unless the elementary_rxns, adsorbate_names, transition_state_names, and gas_names are all explicitly defined since the rxn_expressions are parsed into these 3 attributes. It is much easier to just define rxn_expressions, although it is important to note the syntax. There must be spaces between all elements of each expression (i.e. C*+O\* is not okay, but C\* + O\* is), and species ending with \_g are gasses by default. Adsorbed species may end with * or \_x where * designates adsorption at the "s" site (by default), while \_x designates adsorption at the "x" site (note that "x" may be any letter except "g", and that X* and X_s are equivalent). Transition-states should include a \-, and reactions with a transition-state are specified by 'IS <-> TS \-> FS' while reactions without a transition-state are defined as 'IS \-> FS' (where IS,TS,FS are expressions for the Initial/Transition/Final State). When the model initializes it checks the expressions for mass/site balances, and if it finds that they are not balanced it will raise an exception. \[list of strings\]. Instead of specifying rxn_expressions the following attributes may instead be defined:
      • Wiki Markup
        elementary_rxns - list version of rxn_expressions. These will be automatically populated if rxn_expressions are defined. \[list of lists of lists\]
      • Wiki Markup
        adsorbate_names - list of adsorbate names included in the analysis. Automatically populated if rxn_expressions are defined.\[list of strings\]
      • Wiki Markup
        transition_state_names\* - list of transition-state names included in the analysis. Automatically populated if rxn_expressions are defined. \[list of strings\]
      • Wiki Markup
        +gas_names+ \- list of gas names included in the analysis. \[list of strings\]
    • Wiki Markup
      +surface_names+ \- list of surface names to be included in the analysis. \[list of strings\]
    • Wiki Markup
      +gas_pressures+ \- list of gas pressures to be used for the analysis. May not be defined if ThermodynamicScaler is being used with pressure as a descriptor and gas_ratios is defined. \[list of numbers in bar\]
    • Wiki Markup
      gas_ratios - list of gas ratios to be used for the analysis. Only necessary if ThermodynamicScaler is being used to determine the overall pressure. \[list of dimensionless numbers\]
    • Wiki Markup
      +temperature+ \- temperature used for the analysis. May not be defined if ThermodynamicScaler is being used with temperature as a descriptor. \[number in Kelvin\]
    • Wiki Markup
      +site_definitions+ \- definitions for all sites used in rxn_expressions. Note that * defaults to 's' so 's' should always be defined. The values of the dictionary can be strings corresponding to the "site" field in the input file, or a list of strings if a site definition corresponds to multiple values of the "site" field. \[dictionary of string:(string OR list of strings)\]
    • Wiki Markup
      +site_totals+ \- dictionary of total which each site must sum to. \[dictionary of string:(floatable string OR dimensionless number)\]
    • Wiki Markup
      +descriptor_names+ \- names of variables to be used as descriptors. \[list of strings\]
    • Wiki Markup
      parser - name of class to use for solver. Defaults to KineticsParserTableParser. \[string\]
    • Wiki Markup
      mapper - name of class to use as a mapper. Defaults to MinResidMapper. \[string\]
    • Wiki Markup
      scaler - name of class to use for scaler. Defaults to GeneralizedLinearScaler. \[string\]
    • Wiki Markup
      solver - name of class to use for solver. Defaults to SteadyStateSolver. \[string\]
    • Wiki Markup
      thermodynamics - name of class to use for thermodynamic corrections. Defaults to ThermoCorrections. \[string\]
    • Wiki Markup
      coveragedata_map_file - file to save coverage map data. where large outputs will be saved as binary pickle files. Defaults to 'data.pkl' \[filepath string\]
    • Wiki Markup
      ratenumerical_map_filerepresentation - filedetermines how to savestore ratenumbers mapas databinary. \[filepath string\]Can be 'mpmath' for multiple precision or 'numpy' for normal floats. Note that 'numpy' rarely works. Defaults to 'mpmath'. \[string\]
  • Parser:
      Parser:
      • input_file - file where input data is stored. File must be in the correct format for the parser used.
        See 1 - Generating an Input File for more information.
    • ScalerKineticsParser:
      • Wiki Markup
        estimategas_thermo_frequenciesmode - attemptApproximation toused estimatefor frequenciesobtaining whengas-phase theyfree areenergy notcorrections. listedDefaults into the inputideal_filegas. FirstOther trypossibilities to find adsorbates on different sites, then by using the frequencies of atomic species. If no frequencies are found for transition-states, use the combined frequencies of the dissociated state. Defaults to False. \[booleanare: shomate_gas (use Shomate equation), zero_point_gas (zero-point corrections only), fixed_entropy_gas (include zero-point and assume entropy is 0.002 eV/K) , frozen_gas (no corrections), frozen_zero_point_gas (no zero-point and entropy is 0.002 eV/K). \[string\]
      • Wiki Markup
        adsorbate_thermo_definitionsmode - dictionaryApproximation whichused allowsfor adsorbatesobtaining toadsorbate havefree aenergy differentcorrections. nameDefaults into the reaction model than in the input file e.g. \{'CH3O':'H3CO'\} if methoxy was called 'CH3O' in the reaction model but 'H3CO' in the input file. Defaults to \{\}. \[dictionary of string:string\]harmonic_adsorbate (use statistical mechanics+vibrational frequencies). Other possibilities are: zero_point_adsorbate (zero-point corrections only), frozen_gas (no corrections). \[string\]
      • transition_state_scaling_parameters - Used if transition-state scaling is used. Many published values are hard-coded, and parameters can often be input directly so it is usually not necessary. Read scalers/_init_.py for syntax.
    • Solver:
    • SteadyStateSolverScaler:
      • Wiki Markup
        gasdecimal_thermo_modeprecision - number Approximationof useddecimals forto obtaining gas-phase free energy corrections. Defaults to ideal_gas. Other possibilities are: shomate_gas (use Shomate equation), zero_point_gas (zero-point corrections only), fixed_entropy_gas (include zero-point and assume entropy is 0.002 eV/K) , frozen_gas (no corrections), frozen_zero_point_gas (no zero-point and entropy is 0.002 eV/K). \[stringexplicitly store. Calculation will be slightly slower with larger numbers, but will become completely unstable below some threshhold. Defaults to 50. \[integer\]
      • Wiki Markup
        tolerance - all rates must be below this number before the system is considered to be at "steady state". Defaults to 1e-50. \[number\]
      • Wiki Markup
        adsorbatemax_thermorootfinding_modeiterations - Approximationmaximum usednumber forof obtainingtimes adsorbateto freeiterate energythe corrections. Defaults to harmonic_adsorbate (use statistical mechanics+vibrational frequenciesrootfinding algorithm (multi-dimensional Newtons method). OtherDefaults possibilitiesto are: zero_point_adsorbate (zero-point corrections only), frozen_gas (no corrections). \[string\]
      • transition_state_scaling_parameters - Used if transition-state scaling is used. Many published values are hard-coded, and parameters can often be input directly so it is usually not necessary. Read scalers/_init_.py for syntax.
    • GeneralizedLinearScaler:
      • Wiki Markup
        descriptor_dict - dictionary of known descriptor values for various surfaces. Usually populated by the parser. \[dictionary of string:list of numbers\] where list of numbers is the length of descriptor_names and is ordered to correspond to the order in "descriptor_names".
      • Wiki Markup
        parameter_dict - dictionary of known parameter values for various adsorbates/reactions. Should be either adsorption energies (if parameter_mode=adsorption) or reaction energies/barriers (if parameter_mode=reaction). This is normally populated to be the adsoprtion energies by the parser. \[dictionary of string:list of numbers\] where list of numbers is the length of surface_names and is ordered to corespond to the order in "surface_names"; if the value for some surface is not known the entry should be '-' in order to "hold its place".
      • Wiki Markup
        parameter_mode - scale to adsorption energies (adsorption) or directly to reaction energies/barriers (reaction). Note that to use reaction a custom parser is needed to make the "parameter_dict" contain reaction energies instead of adsorption energies. Defaults to adsorption. \[string\]
      • Wiki Markup
        default_constraints - list of "constraints" on scaling coefficients to be used when constraints are not explicitly specified. This should be a list of length m+1 where m is the number of descriptors (the extra constraint is on the intercept). Constraints can be single numbers (e.g. 0) in order to constrain the coefficient to that value, colon separated numbers (e.g. 0:1) to constrain the coefficient to that range, '+' to constrain to positive, '-' to constrain to negative, or None to use no constraints. Defaults to \['+','+',None\]. \[list of numbers/strings\]
      • Wiki Markup
        scaling_constraint_dict - dictionary of constraint lists (see default_constraints) for adsorbates which do not use the "default_constraints". Can also specify transition-state scaling by using 'TS(A+B):\[slope,intercept\]' where A and B are species in the initial/final state and slope, intercept are the transition-state scaling parameters. See the "methanation" demo for an example and other syntaxes: \[dictionary of string:(list of strings OR string)\]
      • Wiki Markup
        use_input_energies - if the descriptor points happen to be in "descriptor_dict" then use the exact energies instead of the scaled energies. This usually doesn't matter in practice since it is unlikely that the descriptor map will land exactly on one of the points; it is mostly used for the RateAnalysis where the rate of the unscaled parameters is calculated and compared to the scaled rate. Defaults to False. \[boolean\]
    • Solver:
    • SteadyStateSolver:
      • Wiki Markup
        decimal_precision - number of decimals to explicitly store. Calculation will be slightly slower with larger numbers, but will become completely unstable below some threshhold. Defaults to 50. \[integer\]
      • Wiki Markup
        tolerance - all rates must be below this number before the system is considered to be at "steady state". Defaults to 1e-50. \[number\]
      • Wiki Markup
        max_rootfinding_iterations - maximum number of times to iterate the rootfinding algorithm (multi-dimensional Newtons method). Defaults to 50. \[integer\]
      • Wiki Markup
        internally_constrain_coverages - ensure that coverages are greater than 0 and sum to less than the site total within the rootfinding algorithm. Slightly slower, but more stable. Defaults to True. \[boolean\]
      • Wiki Markup
        residual_threshold - the residual must decrease by this proportion in order for the calculation to be considered "converging". Must be less than 1. Defaults to 0.5. \[number\]
      • 50. \[integer\]
      • Wiki Markup
        internally_constrain_coverages - ensure that coverages are greater than 0 and sum to less than the site total within the rootfinding algorithm. Slightly slower, but more stable. Defaults to True. \[boolean\]
      • Wiki Markup
        residual_threshold - the residual must decrease by this proportion in order for the calculation to be considered "converging". Must be less than 1. Defaults to 0.5. \[number\]
    • Mapper:
    • MinResidMapper:
      • Wiki Markup
        search_directions - list of "directions" to search for existing solutions. Defaults to \[\[0,0\],\[0,1\],\[1,0\],\[0,-1\],\[-1,0\],\[-1,1\],\[1,1\],\[1,-1\],\[-1,-1\]\] which are the nearest points on the orthogonals and diagonals plus the current point. More directions increase the chances of findinga good solution, but slow the mapper down considerably. Note that the current point corresponds to an initial guess coverage provided by the solver (i.e. Boltzmann coverages) and should always be included unless some solutions are already known. \[list of lists of integers\]
      • Wiki Markup
        max_bisections - maximum number of time to bisect descriptor space when moving from one point to the next. Note that this is actuall the number of iterations per bisection so that a total of 2{^}max_bisections^ points could be sampled between two points in descriptor space. Defaults to 3. \[integer\]
      • Wiki Markup
        descriptor_decimal_precision - number of decimals to include when comparing two points in descriptor space. Defaults to 2. \[integer\]
    • ThermoCorrections:
      • Wiki Markup
        thermodynamic_corrections - corrections to apply. Defaults to \['gas','adsorbate'\]. \[list of strings
    • Mapper:
    • MinResidMapper:
      • Wiki Markup
        search_directions - list of "directions" to search for existing solutions. Defaults to \[\[0,0\],\[0,1\],\[1,0\],\[0,-1\],\[-1,0\],\[-1,1\],\[1,1\],\[1,-1\],\[-1,-1\]\] which are the nearest points on the orthogonals and diagonals plus the current point. More directions increase the chances of findinga good solution, but slow the mapper down considerably. Note that the current point corresponds to an initial guess coverage provided by the solver (i.e. Boltzmann coverages) and should always be included unless some solutions are already known. \[list of lists of integers\]
      • Wiki Markup
        maxthermodynamic_bisectionsvariables - maximumvariables/attributes numberupon ofwhich time to bisect descriptor space when moving from one point to the next. Note that this is actuall the number of iterations per bisection so that a total of 2{^}max_bisections^ points could be sampled between two points in descriptor spacethermo corrections depend. If these variables do not change the corrections will not be updated. Defaults to \['temperatures','gas_pressures'\]. \[list of strings\]
      • Wiki Markup
        frequency_dict - used for specifying vibrational frequencies of gasses/adsorbates. Usually populated by the parser. Defaults to 3{}. \[integerdictionary of string:list of numbers in eV\]
      • Wiki Markup
        descriptor_decimal_precision - number of decimals to include when comparing two points in descriptor spaceideal_gas_params - parameters used for ase.thermochemistry.IdealGasThermo. Defaults to 2mkm.data.ideal_gas_params. \[integerdictionary of string:string/int\]
      ThermoCorrections:
      • Wiki Markup
        thermodynamicfixed_entropy_correctionsdict - correctionsentropies to apply use in the static entropy approximation. Defaults to \['gas','adsorbate'\]mkm.data.fixed_entropy_dict. \[listdictionary of stringsstring:float\]
      • Wiki Markup
        thermodynamicatoms_variablesdict - variables/attributesdictionary uponof whichASE thermoatoms correctionsobjects depend.to Ifuse these variables do not change the corrections will not be updatedfor ase.thermochemistry.IdealGasThermo. Defaults to \['temperatures','gas_pressures'\]ase.structure.molecule(gas_name). \[listdictionary of stringsstring:ase.atoms.Atoms\]
      • Wiki Markup
        frequencyforce_dictrecalculation - usedre-calculate forthermodynamic specifyingcorrections vibrationaleven frequenciesif of gasses/adsorbates. Usually populated by the parser. Defaults to {}. \[dictionary of string:list of numbers in eV\]
      • gas_param_dict - used for parameters in gas correction. Should be ideal gas parameters for ideal gas, or shomate parameters for shomate gas. Most common gasses are hard-coded, so it is usually not necessary. Read thermodynamics.py for syntax.
      • atoms_dict - used for ideal gas correction. Defaults to ASE structure database for common gasses so it is usually not necessary. Read thermodynamics.py for syntax.
        thermodynamic_variables do not change. Slows the code down considerably, but is useful for sensitivity analyses where thermodynamic variables might be perturbed by very small amounts. Defaults to False. \[boolean\]
    • Analysis:
    • MechanismAnalysis:
      • Wiki Markup
        rxn_mechanisms - dictionary of lists of integers. Each integer corresponds to an elementary step. Elementary steps are indexed in the order that they are input with 1 being the first index. Negative integers are used to designate reverse reactions. \[dictionary of string:list of integers\]