mirror of
https://github.com/Cantera/cantera.git
synced 2025-02-25 18:55:29 -06:00
301 lines
9.9 KiB
YAML
301 lines
9.9 KiB
YAML
description: |-
|
|
This is a an example input file that defines models for phases and
|
|
interfaces that could be used, for example, to simulate a solid
|
|
oxide fuel cell. Note, however, that reaction rate coefficients and
|
|
species thermochemistry ARE NOT REAL VALUES - they are chosen only
|
|
for the purposes of this example.
|
|
|
|
Defines bulk (that is, 3D) phases - a gas, a metal, and an oxide.
|
|
The gas contains only the minimum number of species needed to model
|
|
operation on hydrogen. The species definitions are imported from
|
|
gri30.yaml. The initial composition is set to hydrogen + 5% water, but
|
|
usually this is reset in the program importing this definition.
|
|
|
|
The 'metal' phase will be used for the electrodes. All we need is
|
|
a source/sink for electrons, so we define this phase as only
|
|
containing electrons. Note that the 'metal' entry type requires
|
|
specifying a density, but it is not used in this simulation and
|
|
therefore is arbitrary.
|
|
|
|
The electron is set to have zero enthalpy and entropy. Therefore,
|
|
the chemical potential of the electron is zero, and the
|
|
electrochemical potential is simply -F * phi, where phi is the
|
|
electric potential of the metal. Note that this simple model is
|
|
adequate only because all we require is a reservoir for electrons;
|
|
if we wanted to do anything more complex, like carry out energy or
|
|
charge balances on the metal, then we would require a more complex
|
|
model. Note that there is no work function for this metal.
|
|
|
|
Note: the 'const_cp' species thermo model is used throughout this
|
|
file (with the exception of the gaseous species, which use NASA
|
|
polynomials imported from gri30.yaml). The const_cp model assumes a
|
|
constant specific heat, which by default is zero. Parameters that
|
|
can be specified are cp0, t0, h0, and s0. If omitted, t0 = 300 K,
|
|
h0 = 0, and s0 = 0. The thermo properties are computed as follows:
|
|
h = h0 + cp0*(t - t0), s = s0 + cp0*ln(t/t0).
|
|
For work at a single temperature, it is sufficient to specify only h0.
|
|
|
|
The 'oxide_bulk' phase is a very simple model for the bulk phase. We only
|
|
consider the oxygen sublattice. The only species we define are a
|
|
lattice oxygen, and an oxygen vacancy. Again, the density is a
|
|
required input, but is not used here, so may be set arbitrarily.
|
|
|
|
The vacancy will be modeled as truly vacant - it contains no atoms,
|
|
has no charge, and has zero enthalpy and entropy. This is different
|
|
from the usual convention in which the vacancy properties are are
|
|
expressed relative to the perfect crystal lattice. For example, in
|
|
the usual convention, an oxygen vacancy has charge +2. But the
|
|
convention we will use is that an oxygen ion has charge -2, and a
|
|
vacancy has charge 0. It all works out the same, as long as we are
|
|
consistent.
|
|
|
|
The surface of a bulk phase must be treated like a separate phase, with its
|
|
own set of species. In the 'metal_surface' phase we define the model for the
|
|
metal surface.
|
|
|
|
We allow the following species:
|
|
(m) - an empty metal site
|
|
H(m) - a chemisorbed H atom
|
|
O(m) - a chemisorbed O atom
|
|
OH(m) - a chemisorbed hydroxl
|
|
H2O(m) - a physisorbed water molecule
|
|
|
|
Notes:
|
|
1. The site density is in mol/cm2, since no units are specified and
|
|
'mol' and 'cm' were specified in the units directive below as the
|
|
units for quantity and length, respectively.
|
|
2. The 'reactions' field specifies that all reaction entries in this file
|
|
that are in the 'metal_surface-reactions' field are reactions belonging
|
|
to this surface mechanism.
|
|
|
|
On the oxide surface, we consider four species:
|
|
1. (ox) - a surface vacancy
|
|
2. O''(ox) - a surface oxygen with charge -2
|
|
3. OH'(ox) - a surface hydroxyl with charge -1
|
|
4. H2O(ox) - physisorbed neutral water
|
|
|
|
The triple phase boundary (TPB) between the metal, oxide, and gas is
|
|
specified in the 'tpb' phase. A single species is specified, but it
|
|
is not used, since all reactions only involve species on either side
|
|
of the TPB. Note that the site density is in mol/cm. But since no
|
|
reactions involve TPB species, this parameter is unused.
|
|
|
|
generator: cti2yaml
|
|
cantera-version: 2.5.0a3
|
|
date: Wed, 11 Dec 2019 16:59:15 -0500
|
|
input-files: [sofc.cti]
|
|
|
|
units: {length: cm, quantity: mol, activation-energy: kJ/mol}
|
|
|
|
phases:
|
|
- name: gas
|
|
thermo: ideal-gas
|
|
elements: [H, O, N]
|
|
species:
|
|
- gri30.yaml/species: [H2, H2O, N2, O2]
|
|
transport: mixture-averaged
|
|
state:
|
|
T: 1073.15
|
|
P: 1.01325e+05
|
|
X: {H2: 0.95, H2O: 0.05}
|
|
- name: metal
|
|
thermo: electron-cloud
|
|
elements: [E]
|
|
species: [electron]
|
|
state:
|
|
T: 1073.15
|
|
X: {electron: 1.0}
|
|
density: 9.0 kg/m^3
|
|
- name: oxide_bulk
|
|
thermo: lattice
|
|
elements: [O, E]
|
|
species: [Ox, VO**]
|
|
state:
|
|
T: 1073.15
|
|
P: 1.01325e+05
|
|
X: {Ox: 0.95, VO**: 0.05}
|
|
site-density: 0.0176 mol/cm^3
|
|
- name: metal_surface
|
|
thermo: ideal-surface
|
|
elements: [H, O]
|
|
species: [(m), H(m), O(m), OH(m), H2O(m)]
|
|
kinetics: surface
|
|
reactions: [metal_surface-reactions]
|
|
state:
|
|
T: 973.0
|
|
coverages: {(m): 0.5, H(m): 0.5}
|
|
site-density: 2.6e-09
|
|
- name: oxide_surface
|
|
thermo: ideal-surface
|
|
elements: [O, H, E]
|
|
species: [(ox), O''(ox), OH'(ox), H2O(ox)]
|
|
kinetics: surface
|
|
reactions: [oxide_surface-reactions]
|
|
state:
|
|
T: 1073.15
|
|
coverages: {O''(ox): 2.0, (ox): 0.0}
|
|
site-density: 2.0e-09
|
|
- name: tpb
|
|
thermo: edge
|
|
elements: [H, O]
|
|
species: [(tpb)]
|
|
kinetics: edge
|
|
reactions: [tpb-reactions]
|
|
state:
|
|
T: 1073.15
|
|
coverages: {(tpb): 1.0}
|
|
site-density: 5.0e-17
|
|
|
|
species:
|
|
- name: electron
|
|
composition: {E: 1}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: 0.0 kcal/mol
|
|
- name: VO**
|
|
composition: {}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: 0.0 kJ/mol
|
|
note: A bulk lattice vacancy
|
|
- name: Ox
|
|
composition: {O: 1, E: 2}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -170.0 kJ/mol
|
|
s0: 50.0 J/K/mol
|
|
note: A bulk lattice oxygen
|
|
- name: (m)
|
|
composition: {}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: 0.0 kJ/mol
|
|
s0: 0.0 J/mol/K
|
|
- name: H(m)
|
|
composition: {H: 1}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -35.0 kJ/mol
|
|
s0: 37.0 J/mol/K
|
|
- name: O(m)
|
|
composition: {O: 1}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -220.0 kJ/mol
|
|
s0: 37.0 J/mol/K
|
|
- name: OH(m)
|
|
composition: {O: 1, H: 1}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -198.0 kJ/mol
|
|
s0: 102.0 J/mol/K
|
|
- name: H2O(m)
|
|
composition: {H: 2, O: 1}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -281.0 kJ/mol
|
|
s0: 123.0 J/mol/K
|
|
- name: O''(ox)
|
|
composition: {O: 1, E: 2}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -170.0 kJ/mol
|
|
s0: 50.0 J/K/mol
|
|
note: An oxygen ion at the surface, with charge = -2
|
|
- name: OH'(ox)
|
|
composition: {O: 1, H: 1, E: 1}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -220.0 kJ/mol
|
|
s0: 87.0 J/mol/K
|
|
note: An OH at the surface, with charge = -1
|
|
- name: (ox)
|
|
composition: {}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: 0.0 kJ/mol
|
|
s0: 0.0 J/mol/K
|
|
note: A surface vacancy in the oxygen sublattice
|
|
- name: H2O(ox)
|
|
composition: {H: 2, O: 1}
|
|
thermo:
|
|
model: constant-cp
|
|
h0: -265.0 kJ/mol
|
|
s0: 98.0 J/mol/K
|
|
- name: (tpb)
|
|
composition: {}
|
|
thermo:
|
|
model: constant-cp
|
|
note: dummy species
|
|
|
|
# Surface reactions on the metal. We assume three dissociative
|
|
# adsorption reactions, and three reactions on the surface
|
|
# among adsorbates. All reactions are treated as reversible.
|
|
metal_surface-reactions:
|
|
- equation: H2 + (m) + (m) <=> H(m) + H(m) # Reaction 1
|
|
sticking-coefficient: {A: 0.1, b: 0, Ea: 0}
|
|
id: metal-rxn1
|
|
- equation: O2 + (m) + (m) <=> O(m) + O(m) # Reaction 2
|
|
sticking-coefficient: {A: 0.1, b: 0, Ea: 0}
|
|
id: metal-rxn2
|
|
- equation: H2O + (m) <=> H2O(m) # Reaction 3
|
|
sticking-coefficient: {A: 1.0, b: 0, Ea: 0}
|
|
id: metal-rxn3
|
|
- equation: H(m) + O(m) <=> OH(m) + (m) # Reaction 4
|
|
id: metal-rxn4
|
|
rate-constant: {A: 5.0e+22, b: 0, Ea: 100.0}
|
|
- equation: H(m) + OH(m) <=> H2O(m) + (m) # Reaction 5
|
|
id: metal-rxn5
|
|
rate-constant: {A: 5.0e+20, b: 0, Ea: 40.0}
|
|
- equation: OH(m) + OH(m) <=> H2O(m) + O(m) # Reaction 6
|
|
id: metal-rxn6
|
|
rate-constant: {A: 5.0e+21, b: 0, Ea: 100.0}
|
|
|
|
oxide_surface-reactions:
|
|
# This reaction represents the exchange of a surface oxygen vacancy and
|
|
# a subsurface vacancy. The concentration of subsurface vacancies is
|
|
# fixed by the doping level. If this reaction is given a large rate,
|
|
# then the surface vacancies will stay in equilibrium with the bulk
|
|
# vacancies.
|
|
- equation: (ox) + Ox <=> VO** + O''(ox) # Reaction 7
|
|
id: oxide-vac
|
|
rate-constant: {A: 5.0e+08, b: 0.0, Ea: 0.0}
|
|
# Desorption of physisorbed water. This is made fast.
|
|
- equation: H2O(ox) <=> H2O + (ox) # Reaction 8
|
|
id: oxide-water
|
|
rate-constant: {A: 1.0e+14, b: 0.0, Ea: 0.0 kJ/mol}
|
|
# chemisorption of water as surface hydroxyls. In reality, this
|
|
# reaction would surely be activated and have a lower pre-exponential
|
|
- equation: H2O(ox) + O''(ox) <=> OH'(ox) + OH'(ox) # Reaction 9
|
|
id: oxide-oh
|
|
rate-constant: {A: 1.0e+14, b: 0.0, Ea: 0.0 kJ/mol}
|
|
|
|
# Here we define two charge transfer reactions. Both reactions are
|
|
# reversible, and can be used to model either anodes or cathodes
|
|
# (although real anodes and cathodes would usually have different
|
|
# reaction mechanisms, except in a symmetric cell).
|
|
|
|
# in this reaction, a proton from the metal crosses the TPB to the
|
|
# oxide surface to make a hydroxyl and deliver an electron to the
|
|
# metal.
|
|
tpb-reactions:
|
|
- equation: H(m) + O''(ox) <=> (m) + electron + OH'(ox) # Reaction 10
|
|
id: edge-f2
|
|
rate-constant: {A: 5.0e+13, b: 0.0, Ea: 120.0}
|
|
beta: 0.5
|
|
- equation: O(m) + (ox) + 2 electron <=> (m) + O''(ox) # Reaction 11
|
|
id: edge-f3
|
|
rate-constant: {A: 5.0e+13, b: 0.0, Ea: 120.0}
|
|
beta: 0.5
|
|
|
|
# this reaction is commented out, but you can explore its effects by
|
|
# uncommenting it. Be careful, if you are not solving for the OH'
|
|
# concentration that the system does not become overdetermined
|
|
# (i.e. impossible for all reactions to be simultaneously in
|
|
# equilibrium). If this happens, the wrong OCVs will result.
|
|
|
|
# - equation: H(m) + OH'(ox) <=> H2O(ox) + (m) + electron
|
|
# id: edge-f
|
|
# rate-constant: {A: 5.0e+13, b: 0.0, Ea: 120.0}
|
|
# beta: 0.5
|