Skip to content

Instantly share code, notes, and snippets.

@speth
Created March 9, 2019 22:00
Show Gist options
  • Save speth/561adf1451da6d2803ff918237f523ed to your computer and use it in GitHub Desktop.
Save speth/561adf1451da6d2803ff918237f523ed to your computer and use it in GitHub Desktop.
Reorganization of YAML species entries to replace "standard-state" entry
PROPOSED: |
* a dedicated section for equation of state information
* This section is optional if the phase doesn't need this information, e.g.
the ideal gas phase which requires an ideal gas EOS for all species
example-species:
- name: KCl(s)
composition: {K: 1, Cl: 1}
thermo:
model: NASA7
temperature-ranges: [300, 1000]
data:
- [5.3934311E+00, 2.6535242E-03, 9.6075655E-07, -5.0251843E-09,
4.0721228E-12, -5.4248389E+04, -2.1596814E+01]
equation-of-state:
model: constant-volume
molar-volume: 0.0376521717 L/mol
- name: OH-
composition: {O: 1, H: 1, E: 1}
thermo:
model: piecewise-Gibbs
reference-pressure: 1 bar
h0: 0.0
dimensionless: true
data: {298.15: -91.523, 333.15: -91.523}
# Density info is specified the same way for both VPSS and non-VPSS models
# Can be specified as (mass) density, molar-volume, or molar-density
equation-of-state:
model: constant-volume
density: 1.3 g/cm^3
- name: Li(l)
composition: {Li: 1}
thermo:
model: Shomate
temperature-ranges: [298, 700, 3000]
data:
- [26.3072, 30.4657, -69.1692, 44.1951, 0.0776, -6.0337, 59.8106]
- [22.6832, 10.476, -6.5428, 1.3255, 0.8783, -2.0426, 62.8859]
units: {mass: g, length: cm}
# Is there a better name for rho = f(T) as an equation of state?
equation-of-state:
model: density-temperature-polynomial
data: [0.536504, -1.04279e-4, 3.84825e-9, -5.2853e-12]
- name: CO2
composition: {C: 1, O: 2}
thermo:
model: NASA7
temperature-ranges: [200.0, 1000.0, 3500.0]
data:
- [2.35677352, 0.00898459677, -7.12356269e-06, 2.45919022e-09, -1.43699548e-13,
-48371.9697, 9.90105222]
- [3.85746029, 0.00441437026, -2.21481404e-06, 5.23490188e-10, -4.72084164e-14,
-48759.166, 2.27163806]
# Non-VPSS species, where additional model parameters are required
equation-of-state:
model: Redlich-Kwong
units: {length: cm, pressure: bar, quantity: mol}
a: [7.54e7, -4.13e4]
b: 27.80
- name: OH-
composition: {O: 1, H: 1, E: 1}
# A complete equation of state, which does not require an additional "thermo"
# entry
equation-of-state:
model: HKFT
units: {energy: cal, quantity: mol, pressure: bar}
g0: -37595.
h0: -54977.
s0: -2.56
a: [0.12527, 7.38, 1.8423, -27821]
c: [4.15, -103460.]
omega: 172460.
- name: H2O(l)
composition: {H: 2, O: 1}
# A complete equation of state that does not require any additional parameters
equation-of-state:
model: water-IAPWS95
- name: K+
composition: {K: 1, E: -1}
equation-of-state:
model: ions-from-neutral-molecule
multipliers: {KCl(l): 1.2}
- name: H2
composition: {H: 2}
thermo:
model: NASA7
temperature-ranges: [200.0, 1000.0, 3500.0]
data:
- [2.34433112, 0.00798052075, -1.9478151e-05, 2.01572094e-08, -7.37611761e-12,
-917.935173, 0.683010238]
- [3.3372792, -4.94024731e-05, 4.99456778e-07, -1.79566394e-10, 2.00255376e-14,
-950.158922, -3.20502331]
# ideal gas is the implicit default equation of state
CURRENT: |
* Current structure, based on transliteration of the XML format
example-species:
- name: KCl(s)
composition: {K: 1, Cl: 1}
thermo:
model: NASA7
temperature-ranges: [300, 1000]
data:
- [5.3934311E+00, 2.6535242E-03, 9.6075655E-07, -5.0251843E-09,
4.0721228E-12, -5.4248389E+04, -2.1596814E+01]
# molar volume specified in a top-level entry, for a non-VPSS model
molar-volume: 0.0376521717 L/mol
- name: OH-
composition: {O: 1, H: 1, E: 1}
thermo:
model: piecewise-Gibbs
reference-pressure: 1 bar
h0: 0.0
dimensionless: true
data: {298.15: -91.523, 333.15: -91.523}
# VPSS species with constant molar volume, specified under the
# "standard-state" field. Standard-state thermo is still taken from "thermo"
standard-state:
model: constant-volume
molar-volume: 1.3
- name: Li(l)
composition: {Li: 1}
thermo:
model: Shomate
temperature-ranges: [298, 700, 3000]
data:
- [26.3072, 30.4657, -69.1692, 44.1951, 0.0776, -6.0337, 59.8106]
- [22.6832, 10.476, -6.5428, 1.3255, 0.8783, -2.0426, 62.8859]
# VPSS species with a more complex model for the density, but the standard
# state thermo still comes from the "thermo" entry
standard-state:
model: density-polynomial
units: {mass: g, length: cm}
data: [0.536504, -1.04279e-4, 3.84825e-9, -5.2853e-12]
- name: CO2
composition: {C: 1, O: 2}
thermo:
model: NASA7
temperature-ranges: [200.0, 1000.0, 3500.0]
data:
- [2.35677352, 0.00898459677, -7.12356269e-06, 2.45919022e-09, -1.43699548e-13,
-48371.9697, 9.90105222]
- [3.85746029, 0.00441437026, -2.21481404e-06, 5.23490188e-10, -4.72084164e-14,
-48759.166, 2.27163806]
# Non-VPSS species, where additional model parameters are required
Redlich-Kwong:
units: {length: cm, pressure: bar, quantity: mol}
a: [7.54e7, -4.13e4]
b: 27.80
- name: OH-
composition: {O: 1, H: 1, E: 1}
# VPSS species where the full equation of state is specified by the
# "standard-state" entry
standard-state:
model: HKFT
units: {energy: cal, quantity: mol, pressure: bar}
g0: -37595.
h0: -54977.
s0: -2.56
a: [0.12527, 7.38, 1.8423, -27821]
c: [4.15, -103460.]
omega: 172460.
- name: H2O(l)
composition: {H: 2, O: 1}
# VPSS species where the full equation of state is specified by the
# "standard-state" entry
standard-state:
model: water-IAPWS95
- name: K+
composition: {K: 1, E: -1}
# VPSS species where the full equation of state is specified by the
# "standard-state" entry
standard-state:
model: ions-from-neutral-molecule
multipliers: {KCl(l): 1.2}
- name: H2
composition: {H: 2}
thermo:
model: NASA7
temperature-ranges: [200.0, 1000.0, 3500.0]
data:
- [2.34433112, 0.00798052075, -1.9478151e-05, 2.01572094e-08, -7.37611761e-12,
-917.935173, 0.683010238]
- [3.3372792, -4.94024731e-05, 4.99456778e-07, -1.79566394e-10, 2.00255376e-14,
-950.158922, -3.20502331]
# Required for VPSS species that behave as ideal gases, but not otherwise
standard-state:
model: ideal-gas
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment