Keywords and settings new

From MKMCXX
Revision as of 17:11, 23 March 2020 by Bzijlstra (talk | contribs)
Jump to: navigation, search

Settings block

Mkmcxx2.15.3.png

The list below is an overview of all the keywords that can be placed inside the &settings block. All keywords have a default value, so if these are not specified within the block, then the default value is used.

List of common keywords and their meaning
Keyword Explanation Default value Possible values
TYPE The type of MKMCXX run.
  • SEQUENCERUN : Normal MKMCXX run. Compute a series of single runs at different temperatures.
  • SSITKA : Like SEQUENCERUN, but each single run is run a second time with a different input gas concentration.
  • TPD : Do a single run where temperature is linearly changing during the run.
  • REACTOR : Simple PFR implementation. Only uses first &runs entry and does not support sensitivity analysis.
string
PRESSURE The total pressure in the gas phase.
  • <0 : Calculate the total pressure from the sum of the starting pressure of the compounds.
  • >0 : Set this total pressure in bar and scale starting pressures proportionately.
-1 (Take starting pressures) float > 0 or negative value
CSTR_RES Residence time of the gas phase in seconds. Defined as the reactor volume divided by the volumetric flow rate into the reactor. This parameter effectively sets the input flow rate. The actual residence time may differ if the overall reaction includes expansion or contraction of the gas volume.
  • <=0 : Gas-phase concentrations are fixed.
  • >0 : Model the gas-phase concentrations as in an isobaric CSTR with in- and outflow. Setting CSTR_RES = 1 is often a good start.
-1 (Fixed gas phase) float > 0 or negative value
CSTR_LOAD Sets the amount of sites (in mole) in the open reactor volume (in m^3).
  • Reasonable values differ very much depending on the system. Often 10^-2 < CSTR_LOAD < 10^2. Increase CSTR_LOAD if conversion is too low. Decrease if conversion is too high.
1e-4 float > 0
USETIMESTAMP Whether to place the output in a new folder which name is based on the current time stamp.
  • 0 : Place all output in a folder called "run".
  • 1 : Generate a folder following the format "<RUNTYPE>_<yyyy>_<mm>_
    _<hhmm>".
1 0 or 1
ORDERS Whether to calculate the reaction orders.
- Requires KEYCOMPONENTS
- Requires REAGENTS
  • 0 : off
  • 1 : on
0 0 or 1
EACT Whether to calculate the apparent activation energy.
- Requires KEYCOMPONENTS
  • 0 : off
  • 1 : on
0 0 or 1
DRC Whether to perform a degree of rate control analysis.
- Requires KEYCOMPONENTS
  • 0 : off
  • 1 : on - without drc groups
  • 2 : on - with drc groups
0 0-2 (int)
TDRC Whether to perform a thermodynamic degree of rate control analysis.
- Requires KEYCOMPONENTS
  • 0 : off
  • 1 : on
0 0 or 1
REAGENTS List of reagents for which the reaction orders will be calculated. NULL {<Cmp1>},{<Cmp2>},...
KEYCOMPONENTS List of compounds on which the reaction orders, apparent activation energy, DRC, DSC and/or TDRC analysis should be based. NULL x{<Cmp1>},x{<Cmp2>},...
PDRC Whether to include DRC results for every selectivity-component.
- Requires DRC = 2
- Requires selectivity block
  • 0 : Only output DRC results for KEYCOMPONENTS.
  • 1 : Also output DRC results per component in selectivity blocks.
1 0 or 1
DSC Whether to include DSC results for every selectivity-component.
- Requires DRC > 0
- Requires selectivity block
  • 0 : No DSC output.
  • 1 : Output DSC results per component in selectivity blocks.
1 0 or 1
DCGC Whether to include DCGC results for every ASF block.
- Requires DRC = 2
- Requires ASF block
  • 0 : No DCGC output.
  • 1 : Output DCGC results per ASF block.
1 0 or 1
NPAR Maximum number of CPU threads to use (if available).
  • 0-1 : Single-threaded.
  • >=2 : Multi-threaded SEQUENCERUN and sensitivity analysis.
0 int >= 0
TRANSIENT Define the level of detail at which transient results should be stored.
  • 0 : Do not write any transient SEQUENCERUN data.
  • 1 : Write transient concentration and derivative data.
  • 2 : Write transient concentration and derivative data. Also include transient sensitivity/selectivity data.
1 int >= 0
List of less common keywords and their meaning
Keyword Explanation Default value Possible values
DEBUG Output additional debug statements.
  • 0 : No debug statements.
  • 1-4 : Various levels of debug statements.
0 0-4 (int)
RERUN_OUTPUT Define the folder used for re-running sensitivity analysis and graphs. run string
RERUN_GRAPH Whether to re-run graphs from the RERUN_OUTPUT folder.
  • 0 : Regular mkmcxx run.
  • 1 : Re-run graphs.
0 0 or 1
CACHE_WORKPOINT Reuse the sequencerun results as a workpoint in additional routines like DRC.
  • 0 : Do not reuse. Rerun workpoint with zero perturbation.
  • 1 : Reuse the sequencerun results and skip the zero perturbation workpoint.
1 0 or 1
NUMDIFF Resolution of perturbations at each side of the workpoint. 2 int >= 1
ORDERSDIFF Step size used in the linear fitting of reaction orders (fractional pressure).
  • Example values: Wide = 0.1 | Normal = 0.01 | Tight = 0.001
0.01 float > 0
EACTDIFF Step size used in the linear fitting of the apparent activation energy (fractional temperature).
  • Example values: Wide = 0.001 | Normal = 0.0001 | Tight = 0.00001
0.0001 float > 0
DRCDIFF Step size used in the linear fitting for the degree of rate control analysis (fractional k).
  • Example values: Wide = 0.1 | Normal = 0.01 | Tight = 0.001
0.01 float > 0
TDRCDIFF Step size used in the linear fitting for the thermodynamic DRC analysis (absolute dG in J/mol).
  • Example values: Wide = 10 | Normal = 1 | Tight = 0.1
1 float > 0
BOOSTER Multiplier used to speed-up reaction rates; sometimes leads to faster convergence towards the steady-state solution (time is scaled inversely to compensate). 1.0 (regular speed) float > 0
SOLVERTYPE Type of integration method to use for solving the system of ordinary differential equations.
  • 1 : BDF
  • 2 : ADAMS
1 (BDF) 1 or 2 (int)
SOLSTOPTIME Specificies when the solver should force re-evaluation of dydt/jac.
  • 0 : never; use interpolated results for all t-out
  • 1 : force re-evaluation only for the final t-out
  • 2 : force re-evaluation at every t-out
2 0-2 (int)
SOLMAXSTEP Maximum number of internal steps the solver is allowed to take. 5000 int > 0
SOLTESTFAIL Maximum number of test failures before the solver gives up. 70 int > 0
SOLCONVFAIL Maximum number of convergence failures before the solver gives up. 100 int > 0
PRECISION Amount of significant digits to use in output. 10 int > 0
SEQAL Use the output concentrations from completed runs as input for new runs.
  • 0 : Start all runs using specified starting concentrations.
  • 1 : Get starting concentrations from previous completed run.
0 0 or 1
DRCBIN Store binary data of sequencerun to allow re-plotting data.
  • 0 : Don't store binary data.
  • 1 : Store binary data.
0 0 or 1
MAKEPLOTS Whether to create .png and .pdf files of plots.
  • 0 : no
  • 1 : yes
1 0 or 1
HEATMAP Whether to create heatmap graphs for DRC/DSC results.
  • 0 : no
  • 1 : yes
1 0 or 1
COLORBLIND Change the order of the graph-coloring for (slightly) improved readability.
  • 0 : no
  • 1 : yes
0 0 or 1
PRINTLIST Generate some extra debug lines with the initial and final concentrations.
- Requires DEBUG > 1
  • 0 : no
  • 1 : yes
1 0 or 1
WERROR Interpret input warnings as errors.
  • 0 : no
  • 1 : yes
0 0 or 1
List of networkplot-specific keywords and their meaning
Keyword Explanation Default value Possible values
NETWORK Allow creation of network graphs.
  • 0 : no
  • 1 : yes
1 0 or 1
NETWORK_RATES Also print forward and backward rates in the network graphs.
  • 0 : no
  • 1 : yes
0 0 or 1
NETWORK_STRICT Merge multiple edges between nodes into one edge.
  • 0 : no
  • 1 : yes
1 0 or 1
NETWORK_FLUX Generate dedicated flux output.
  • 0 : no
  • 1 : yes
0 0 or 1
NETWORK_NODAL_PROD Show connected products in nodal-recall chain.
- Requires setting NODAL parameters in &networkplot
  • 0 : no
  • 1 : yes
0 0 or 1
List of TPD-specific keywords and their meaning
Keyword Explanation Default value Possible values
ABSTOL Set the absolute tolerance for a TPD run. 1e-12 float > 0
RELTOL Set the relative tolerance for a TPD run. 1e-8 float > 0
TIME Set the simulation time for a TPD run. NULL float > 0
TSTART Starting temperature for a TPD run. NULL float > 0
TEND Temperature reached at the end of the TPD run. NULL float > 0
List of REACTOR-specific keywords and their meaning
Keyword Explanation Default value Possible values
F_MOLE In-flow of a PFR type reactor. NULL float > 0
A_REAC Cross-sectional area of a PFR type reactor in m^2. NULL float > 0
L_REAC Length of a PFR type reactor in m. NULL float > 0
RHO_SITES Site density in mole sites / m^2 NULL float > 0
BET Surface area in m^2 / g NULL float > 0
CATALYST_LOADING Ratio of active catalyst material on support kg/kg NULL float > 0
CATALYST_DENSITY Density of the catalyst bed in kg / m^3 NULL float > 0
VOID_FRACTION Void fraction of the reactor NULL float > 0
REACNRSTEPS Number of discrete slabs in the PFR. 30 int > 0
List of deprecated keywords and their meaning
Keyword Explanation
GNUPLOT Whether to output GNUPlot-style graphs.
CSTR Whether to use the CSTR module or not.
  • The CSTR functionality now fully depends on the value of CSTR_RES.

Graphs block

Mkmcxx 2 3 0.png

Inside the graphs block, you can set the colors used in the non-GNUPLOT graphs for specific components. On each line, you place the compound between curly brackets followed by the RGB color code. For example:

&graphs
# fix colors for particular compounds
{A*} #E74C3D
{B*} #F29C1F
{C*} #287FB9
{*}  #15A086

Selectivity block

Mkmcxx 2 3 0.png

Inside the selectivity block, you can specify mole balances on which basis you calculate selectivity and degree of selectivity control graphs. You need to specify a name, a key component and one or more products (typically more than one, else the concept of selectivity is rather trivial). The name will be used in the generation of the corresponding graph file, so please use a safe name (i.e. no spaces and no special characters!)

&selectivity
species_balance; {A}; {E},{F}

In the above example, the name of the mole balance block is "species_balance", the key component is A and the products of interest are E and F. A detailed example on how to use this block is explained here.

Stoichiometry

Often, the stoichiometry of the key component and the products is not simply a 1:1 ratio. To account for this difference, you need to put the stoichiometric coefficient in front the compound. The stoichiometric coefficient is simply the number of key components which need to be consumed to produce one product. To illustrate this, below an example for CO hydrogenation towards C1-C3 hydrocarbons is provided.

&selectivity
carbon_balance; {CO}; {CH4}, 2{CH2CH2}, 2{CH3CH3}, 3{CH3CH2CH3}, 3{CH2CHCH3}