pmutt.io.omkm.write_yaml

pmutt.io.omkm.write_yaml(reactor_type=None, temperature_mode=None, pressure_mode=None, nodes=None, V=None, T=None, P=None, A=None, L=None, cat_abyv=None, flow_rate=None, residence_time=None, mass_flow_rate=None, end_time=None, transient=None, stepping=None, init_step=None, step_size=None, atol=None, rtol=None, full_SA=None, reactions_SA=None, species_SA=None, phases=None, reactor=None, inlet_gas=None, multi_T=None, multi_P=None, multi_flow_rate=None, output_format=None, solver=None, simulation=None, multi_input=None, misc=None, units=None, filename=None, yaml_options={'default_flow_style': False, 'indent': 4}, newline='\n')

Writes the reactor options in a YAML file for OpenMKM.

Parameters:
  • reactor_type (str) –

    Type of reactor. Supported options include:

    • pfr

    • pfr_0d

    • cstr

    • batch

    Value written to reactor.type.

  • temperature_mode (str) –

    Operation of reactor. Supported options include:

    • Isothermal

    • Adiabatic

    Value written to reactor.temperature_mode.

  • pressure_mode (str) –

    Operation of reactor. Supported options include:

    • Isobaric

    • Isochoric

    Value written to reactor.pressure_mode.

  • nodes (int) – Number of nodes to use if reactor_type is ‘pfr_0d’. Value written to reactor.nodes

  • V (float or str) – Volume of reactor. Value written to reactor.volume. Units of length^3. See Notes section regarding unit specification.

  • T (float) – Temperature (in K) of reactor. Value written to reactor.temperature.

  • P (float or str) – Pressure of reactor. Value written to reactor.pressure. Units of pressure. See Notes section regarding unit specification.

  • A (float or str) – Surface area of reactor. Value written to reactor.area. Units of length^2. See Notes section regarding unit specification.

  • L (float or str) – Length of reactor. Value written to reactor.length. Units of length. See Notes section regarding unit specification.

  • cat_abyv (float or str) – Catalyst surface area to volume ratio. Value written to reactor.cat_abyv. Units of 1/length. See Notes section regarding unit specification.

  • flow_rate (float or str) – Volumetric flow rate of inlet. Value written to inlet_gas.flow_rate. Units of length^3/time. See Notes section regarding unit specification.

  • residence_time (float or str) – Residence time of reactor. Value written to inlet_gas.residence_time. Not required if flow_rate or mass_flow_rate already specified. Units of time. See Notes section regarding unit specification.

  • mass_flow_rate (float or str) – Mass flow rate of inlet. Value written to inlet_gas.mass_flow_rate. Units of mass^3/time. See Notes section regarding unit specification.

  • end_time (float or str) – Reactor simulation time. For continuous reactors, the system is assumed to reach steady state by this time. Value written to simulation.end_time. Units of time. See Notes section regarding unit specification.

  • transient (bool) – If True, transient operation results are saved. Otherwise, transient files are left blank. Value written to simulation.transient.

  • stepping (str) –

    Time steps taken to simulate reactor. Supported options include:

    • logarithmic

    • regular

    Value written to simulation.stepping.

  • init_step (float or str) – Initial step to take. Value written to simulation.init_step.

  • step_size (float or str) – If stepping is logarithmic, represents the ratio between the next step and the current step. If stepping is regular, represents the time between the next step and the current step in units of time. Value written to simulation.step_size. See Notes section regarding unit specification.

  • atol (float) – Absolute tolerance for solver. Value written to simulation.solver.atol.

  • rtol (float) – Relative tolerance for solver. Value written to simulation.solver.rtol.

  • full_SA (bool) – If True, OpenMKM will do a full sensitivity analysis using the Fisher Information Matrix (FIM). Value written to simulation.sensitivity.full.

  • reactions_SA (list of str or list of SurfaceReaction obj) – List of reactions to perturb using local sensitivity analysis (LSA). If a list of SurfaceReaction is given, the id attribute will be used.

  • species_SA (list of str or list of EmpiricalBase obj) – List of species to perturb using local sensitivity analysis (LSA). If a list of EmpiricalBase is given, the name attribute will be used.

  • phases (list of Phase objects) – Phases present in reactor. Each phase should have the name and initial_state attribute.

  • reactor (dict) – Generic dictionary for reactor to specify values not supported by write_yaml.

  • inlet_gas (dict) – Generic dictionary for inlet_gas to specify values not supported by write_yaml.

  • multi_T (list of float) – Multiple temperatures (in K) of reactor. Value written to simulation.multi_input.temperature.

  • multi_P (list of float/str) – Multiple pressures of reactor. Value written to simulation.multi_input.pressure. Units of pressure. See Notes section regarding unit specification.

  • multi_flow_rate (list of float/str) – Multiple flow rates to run the model. Value written to simulation.multi_input.flow_rate. Units of length3/time. See Notes section regarding unit specification.

  • output_format (str) –

    Format for output files. Supported options include:

    • CSV

    • DAT

    Value written to simulation.output_format.

  • misc (dict) – Generic dictionary for any parameter specified at the top level.

  • solver (dict) – Generic dictionary for solver to specify values not supported by write_yaml.

  • simulation (dict) – Generic dictionary for simultaion to specify values not supported by write_yaml.

  • multi_input (dict) – Generic dictionary for multi_input to specify values not supported by write_yaml.

  • units (dict or Unit object, optional) – Units used for file. If a dict is inputted, the key is the quantity and the value is the unit. If not specified, uses the default units of Unit.

  • filename (str, optional) – Filename for the input.cti file. If not specified, returns file as str.

  • yaml_options (dict) – Options to pass when converting the parameters to YAML format. See PyYAML documentation for dump for available options.

Returns:

lines_out – If filename is None, CTI file is returned

Return type:

str

Notes

Units If units is not specified, all values in file are assumed to be SI units. If units is specified, all values inputted are assumed to be in the units specified by units. If a particular unit set is desired for a value, a str can be inputted with the form quantity=”<<value>> <<desired units>>” where value is float-like and desired units is a string. For example, flow_rate=”1 cm3/s”. See https://vlachosgroup.github.io/openmkm/input for the most up-to-date supported values.

Generic Dictionaries Also, values in generic dictionaries (i.e. reactor, inlet_gas, simulation) will ben written preferentially over arguments passed. i.e. The value in reactor['temperature'] will be written instead of T.