DETCHEM SOC Driver
This document describes the configuration directives that are available for use with the DETCHEM SOC driver.
The DETCHEM SOC code performs steady-state simulations of solid oxide cells in 1-D button cell or 2-D planar cell configuration. The modeling methology is based on the conservation of mass, momentum, energy and charge, and combines the various internal transport phenomena with electrochemical reactions, as well as the heterogeneous surface chemistry occurring at the fuel electrode. A modified Butler-Volmer approach is used to describe the multi-step charge transfer mechanism. Further, a detailed 42-step mechanism is deployed for the thermo-catalytic chemistry.
In a button cell, the inlet gas streams in normally to the cell components and mass transport can be assumed 1-D along the thickness, similar to a stagnation flow. In contrast, the gas flow in a planar cell is parallel to the cell components, i.e. perpendicular to the diffusion through the membrance-electrode assembly. A 2-D modeling approach is required and mandates additional input parameters. Therefore, either the button or planar cell CaRMeN input file needs to be utilized and for each of them an example is given below.
SI units are used exclusively throughout the program. Be sure to convert all values before importing data into CaRMeN. When referring to chemical species, use the correct capitalization, i.e. Ar
instead of AR
. Not doing so will lead to simulation errors since the species names will not be recognized.
Driver Name
This driver is available under the name detchem_soc
.
Output Resources
This driver outputs tabular data resources
mole_fractions
Parameters
The following parameters are available. First case is a 1-D isothermal button cell and second a 2-D adiabatic planar cell simulation.
# First case: steady-state isothermal 1-D button cell simulation
type: button_cell
general:
# steam reforming mechanism on Ni surface is solved
surface_chemistry: true
# the distributed charge transfer model is not used (defalt: interfacial charge transfer model)
distributed_charge_transfer: false
# the fuel electrode is not an ideal counter electrode, i.e. not a half cell comprising of cathode and electrolyte only
reference_anode: false
# the air electrode is not an ideal counter electrode, i.e. not a half cell comprising of anode and electrolyte only
reference_cathode: false
sections:
air_channel:
height: 1.0e-3 # in m
cathode:
# number of cells in y-direction in cathode, must be an integer
radial_discretization_points: 20
height: 43.0e-6 # in m
# height of the functional layer near the electrolyte (default: 0)
functional_layer_height: 10.0e-6
# electronic and ionic conductivity of cathode = A*exp(-Ea/(RT))*pO2^pO2m. If it's a composite, then the more electronically conductive material must be material 1.
# If these values are not provided, then the code uses conductivity of LSM as material 1 and YSZ as material 2.
electrical_properties:
material_1:
electronic:
pre_factor: 1.0e5
activation_barrier: 10.0e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e3
activation_barrier: 100.0e3 # in J/mol
pressure_exponent: -0.25
material_2:
electronic:
pre_factor: 1.0e2
activation_barrier: 100e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e5
activation_barrier: 50.0e3 # in J/mol
pressure_exponent: -0.25
# Only porosity, particle diameter and volume fraction must be provided obligatorily. The rest can either be user-defined, or is calculated by the code.
micro_structural_properties:
functional_layer:
porosity: 0.3
# specify porosity gradient of the cathode. If positive, electrode is more porous towards the electrolyte and less porous towards the air channel (default: 0).
porosity_gradient: 0
# specify tortuosity of material 1 and 2 in cathode functional layer
tortuosity_mat_1: 3
tortuosity_mat_2: 3
particle_diameter: 0.3e-6
# specify particle size ratio in the functional layer between material 1 and 2 (default: 1)
particle_diameter_ratio: 1
volume_fraction: 0.5
# The following are microstructural properties of the diffusion layer, i.e. electrode layer near the gas channel. If functional_layer_height is specified and the following values are not specified, then they will either be set equal to their corresponding values in the functional layer or generated by the code via Percolation theory.
# If functional_layer_height is 0 or unspecified, the following parameters need not be specified and the above microstructural parameters will be used for the entire electrode.
diffusion_layer:
porosity: 0.6
particle_diameter: 0.3e-6
volume_fraction: 1
electrolyte:
radial_discretization_points: 10
height: 60.0e-6 # in m
# height of dense barrier layers between electrodes and electrolyte (default: 0)
barrier_layer_cathode_height: 10.0e-6
barrier_layer_anode_height: 10.0e-6
electrical_properties:
# If ionic conductivity of electrolyte is unspecified, then the code uses default configuration of YSZ.
pre_factor: 3.34e2
activation_barrier: 85.63e3
# If ionic conductivities of barrier layer coatings are unspecified, then the code uses default configuration of CGO on both sides.
barrier_layer:
cathode:
pre_factor: 1.0e5
activation_barrier: 100.0e3
anode:
pre_factor: 1.0e5
activation_barrier: 100.0e3
anode:
radial_discretization_points: 30
height: 500.0e-6 # in m
functional_layer_height: 25.0e-6 # in m
# electronic and ionic conductivities of anode = A*exp(-Ea/(RT))*pO2^pO2m. If it's a composite, then the more electronically conductive material must be material 1.
# If these values are not provided, then the code uses conductivity of Ni as material 1 and YSZ as material 2.
electrical_properties:
material_1:
electronic:
pre_factor: 1.0e5
activation_barrier: 10.0e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e3
activation_barrier: 100.0e3 # in J/mol
pressure_exponent: -0.25
material_2:
electronic:
pre_factor: 1.0e2
activation_barrier: 100.0e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e-5
activation_barrier: 50.0e3 # in J/mol
pressure_exponent: -0.25
# Only porosity, particle diameter and volume fraction must be provided as obligatory input values. The rest can either be user-defined, or is calculated by the code.
micro_structural_properties:
functional_layer:
porosity: 0.25
porosity_gradient: 0
tortuosity_mat_1: 3
tortuosity_mat_2: 3
particle_diameter: 0.3e-6
particle_diameter_ratio: 1
volume_fraction: 0.5
diffusion_layer:
porosity: 0.6
particle_diameter: 0.3e-6
volume_fraction: 1
fuel_channel:
height: 1.0e-3 # in m
inlet:
air_channel:
gas_velocity: 1.0 # in m/s
temperature: 1073.15 # in K
pressure: 101325.0 # in Pa
# inlet gas compostion of air channel
mole_fractions:
O2: 0.21
N2: "*"
fuel_channel:
gas_velocity: 1.0 # in m/s
temperature: 1073.15 # in K
pressure: 101325.0 # in Pa
# inlet gas compostion of air channel
mole_fractions:
H2: 0.1
CH4: 0.5
H2O: "*"
initial:
# initial guesses for molar gas composition in the electrode
mole_fractions:
cathode:
O2: 0.21
N2: "*"
anode:
H2: 0.5
H2O: "*"
temperature: 1073.15 # in K
pressure: 101325.0 # in Pa
electrochemistry:
# choose electrochemical reaction path. 'H2' and/or 'CO' pathways can be used, 'O2' is the only option at the air side.
# either provide Arrhenius-type parameters 'k' and 'E' or directly specify temperature-independent exchange current density 'i'
# distinguish: If the distributed charge transfer model is activated, then the code multiplies the exchange currnet density with specific three-phase boundary length; else for the interfacial model, this multiplication must already be included in the values specified below.
H2:
# pre-factor for Arrhenius-type temperature dependency of exchange current density
k: 3575267.926
# activation barrier for Arrhenius-type temperature dependency of exchange current density
E: 108.4e3 # in J/mol
# specify temperature-independent exchange current density
# i: 8.5 # in A/m^2
# anodic charge transfer coefficient for electrochemical H2 oxidation/H2O reduction in the fuel electrode. The cathodic coefficient is automatically calculated as 1-beta_anode. Therefore must be set <1.
beta_anode: 0.5
O2:
k: 106482.620
E: 122.5e3 # in J/mol
# i: 28.0 # in A/m^2
beta_cathode: 0.5
# starting value for cell voltage
E_cell: 1.4 # in V
# end value for cell voltage.
E_limit: 0.5 # in V
# potential step for i-V calculation. In this case, the simulation will calculate solutions for applied cell voltages from 1.4 to 0.5 V with 0.1 V increment.
E_step: 0.1 # in V
solver:
# start time for MEA simulation. Should always be 0.
initial_integration_time: 0 # in s
# end time for MEA simulation. The simulation should converge within this time frame.
max_integration_time: 10.0 # in s
# initial time step for MEA integration. The solver will then automatically adjust the following time steps.
initial_time_step: 1.0e-12 # in s
tolerance:
absolute: 1.0e-8
relative: 1.0e-9
residual: 1.0e-6
chemical_model:
$resource: ./chemical_model
# Second case: steady-state adiabatic 2-D planar cell. Only the differences compared to the button cell input configuration are commented.
type: planar_cell
general:
surface_chemistry: true
distributed_charge_transfer: true
reference_anode: false
reference_cathode: false
# planar repeatng unit simulation. If 'false', then it's a planar cell geometry since interconnect is not solved.
interconnect: true
sections:
cell:
# number of cells in axial (flow) direction
axial_discretization_points: 70
# planar cell/repeating unit length
length: 8.94e-2 # in m
interconnect:
# fix temperature or fix heat flux boundary condition for heat exchange with surroundings. If both set to '0' or unspecified, it represents an adiabatic simulation.
set_temperature: 0
set_heat_flux: 0
# thickness of half the interconnect plate NOT including the interconnect rib. The rib thickness is set automatically to the gas channel thickness.
thickness: 0.75e-3 # in m
# density of dense interconnect material
density: 7700.0 # in kg/m^3
# specific heat capacity of dense interconnect material
specific_heat_capacity: 660.0 # in J/(kg K)
# thermal conductivity of dense interconnect material
thermal_conductivity: 24.0 # in W/(m K)
# total emissivity of interconnect material
emissivity: 0.3
air_channel:
height: 1.0e-3 # in m
# width of gas channel
width: 2.98e3 # in m
cathode:
radial_discretization_points: 10
height: 85.0e-6 # in m
# width of the planar cell/repeating unit
width: 4.47e-3 # in m
# density of cathode material including porosity and volume fractions
density: 3815.0 # in kg/m^3
# specific heat capacity of cathode NOT including porosity but volume fractions
specific_heat_capacity: 398.0 # in J/(kg K)
# thermal conductivity of cathode NOT including porosity but volume fractions
thermal_conductivity: 3.5 # in W/(m K)
functional_layer_height: 15.0e-6 # in m
electrical_properties:
material_1:
electronic:
pre_factor: 1.0e5
activation_barrier: 10.0e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e3
activation_barrier: 100.0e3 # in J/mol
pressure_exponent: -0.25
material_2:
electronic:
pre_factor: 1.0e2
activation_barrier: 100.0e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e5
activation_barrier: 50.0e3 # in J/mol
pressure_exponent: -0.25
micro_structural_properties:
functional_layer:
porosity: 0.3
porosity_gradient: 0
tortuosity_mat_1: 3
tortuosity_mat_2: 3
particle_diameter: 0.3e-6 # in m
particle_diameter_ratio: 1
volume_fraction: 0.5
diffusion_layer:
porosity: 0.6
particle_diameter: 0.3e-6 # in m
volume_fraction: 1
# emissivity of cathode composite after factoring in the porosity
emissivity: 0.8
electrolyte:
radial_discretization_points: 10
height: 60.0e-6 # in m
width: 4.47e-3 # in m
density: 5938.0 # in kg/m^3
specific_heat_capacity: 620.0 # in J/(kg K)
thermal_conductivity: 2.1 # in W/(m K)
barrier_layer_cathode_height: 10.0e-6 # in m
barrier_layer_anode_height: 10.0e-6 # in m
electrical_properties:
pre_factor: 3.34e2
activation_barrier: 85.63e3 # in J/mol
barrier_layer:
cathode:
pre_factor: 1.0e5
activation_barrier: 100.0e3 # in J/mol
anode:
pre_factor: 1.0e5
activation_barrier: 100.0e3 # in J/mol
anode:
radial_discretization_points: 30
height: 500.0e-6 # in m
density: 5140.0 # in kg/m^3
specific_heat_capacity: 352.8 # in J/(kg K)
thermal_conductivity: 4.0 # in W/(m K)
functional_layer_height: 25.0e-6 # in m
electrical_properties:
material_1:
electronic:
pre_factor: 1.0e5
activation_barrier: 10.0e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e3
activation_barrier: 100.0e3 # in J/mol
pressure_exponent: -0.25
material_2:
electronic:
pre_factor: 1.0e2
activation_barrier: 100.0e3 # in J/mol
pressure_exponent: -0.25
ionic:
pre_factor: 1.0e5
activation_barrier: 50.0e3 # in J/mol
pressure_exponent: -0.25
micro_structural_properties:
functional_layer:
porosity: 0.25
porosity_gradient: 0
tortuosity_mat_1: 3
tortuosity_mat_2: 3
particle_diameter: 0.3e-6 # in m
particle_diameter_ratio: 1
volume_fraction: 0.5
diffusion_layer:
porosity: 0.6
particle_diameter: 0.3e-6 # in m
volume_fraction: 1
# total emissivity of anode composite after factoring in the porosity
emissivity: 0.5
fuel_channel:
height: 1.0e-3 # in m
width: 2.98e-3 # in m
inlet:
air_channel:
gas_velocity: 0.6 # in m/s
temperature: 1123.15 # in K
pressure: 101325.0 # in Pa
mole_fractions:
O2: 0.21
N2: "*"
fuel_channel:
gas_velocity: 0.6 # in m/s
temperature: 1123.15 # in K
pressure: 101325.0 # in Pa
mole_fractions:
H2: 0.1
CO2: 0.328
H2O: "*"
initial:
mole_fractions:
cathode:
O2: 0.21
N2: "*"
anode:
H2: 0.1
CO: 0.2
CO2: 0.1
H2O: "*"
temperature: 1073.15 # in K
pressure: 101325.0 # in Pa
electrochemistry:
H2:
k: 3575267.926e-11
E: 108.4e3 # in J/mol
beta_anode: 0.7
CO:
k: 148035.035e-11
E: 131.38e3 # in J/mol
beta_anode: 0.5
O2:
k: 106482.620e-11
E: 122.5e3 # in J/mol
beta_cathode: 0.45
# applied cell voltage
E_cell: 1.3 # in V
solver:
initial_integration_time: 0 # in s
max_integration_time: 100.0 # in s
initial_time_step: 1.0e-4 # in s
# the following values are required for non-isothermal simulations
# start time for solid temperature solver
temp_initial_integration_time: 0 # in s
# end time for solid temperature solver
temp_max_integration_time: 1000 # in s
# initial time step for solid temperature solver
temp_initial_time_step: 1.0e-2 # in s
# maximum allowed time step for solid temperature solver. If set to '0', then default is 'max_integration_time-initial_integration_time'.
temp_max_time_step: 0 # in s
tolerance:
absolute: 1.0e-20
relative: 1.0e-6
residual: 1.0e-6
# tolerances for temperature solver for non-isothermal simulation
temp_absolute: 1.0e-5
temp_relative: 1.0e-3
temp_residual: 1.0e-3
chemical_model:
$resource: ./chemical_model