diff --git a/demos/1D_transient/1Dtrans_input.yaml b/demos/1D_transient/1Dtrans_input.yaml
index 3a1192f908c46a0e71084602d109da82424e2fb8..55967575930cea283093803926c855e201a86d95 100644
--- a/demos/1D_transient/1Dtrans_input.yaml
+++ b/demos/1D_transient/1Dtrans_input.yaml
@@ -37,6 +37,5 @@ TimeIntegrator:
end_time: 2.5e-4
timestep: 1e-6
tolerance: 1e-8
-Restart: True
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
diff --git a/demos/2D_steady_state/2Dss_input.yaml b/demos/2D_steady_state/2Dss_input.yaml
index 7e436347a6589910d18dcc821bbe73b06470be46..84743062e1da56af791999a8d8680964973ce47d 100644
--- a/demos/2D_steady_state/2Dss_input.yaml
+++ b/demos/2D_steady_state/2Dss_input.yaml
@@ -34,6 +34,5 @@ Output:
Fields:
- name: T_inflow
- name: tau_mix
-Restart: False
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
diff --git a/demos/Coal/Particle.yaml b/demos/Coal/Particle.yaml
index 1929c4c4f336c504f39d5bd202e22c63e119b2c6..2dc454b898a0faf2be6abace1c12eabd1b00fc44 100644
--- a/demos/Coal/Particle.yaml
+++ b/demos/Coal/Particle.yaml
@@ -31,7 +31,7 @@ TimeIntegrator:
timestep: 1e-4
tolerance: 1e-12
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 0.1
Particles:
ParticleType: Coal
@@ -45,9 +45,8 @@ Particles:
variable: T_part_init
- value: 1200
variable: rho_part_init
- NumberOfParticles: 1
Size:
Distribution: Identity
Value: 150e-6
FlowParameters:
- KolmogorovScale: 1e-7
+ ReynoldsNumber: 2e4
diff --git a/demos/LiquidParticle/LiquidParticle.yaml b/demos/LiquidParticle/LiquidParticle.yaml
index 035e2ba149010d7be4c2d7fd6c03c5498b3e9455..4e7ec77b5733e4f5f37ac088fda339f85c256cf1 100644
--- a/demos/LiquidParticle/LiquidParticle.yaml
+++ b/demos/LiquidParticle/LiquidParticle.yaml
@@ -38,7 +38,7 @@ TimeIntegrator:
timestep: 1e-6
tolerance: 1e-8
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 0.1
Particles:
ParticleType: Liquid
@@ -54,10 +54,10 @@ Particles:
variable: T_part_inflow
- value: 1000
variable: rho_part_inflow
- NumberOfParticles: 1000
- NumberOfParticlesInflow: 500
+ ParticleLoading: 1000
+ ParticleLoadingInflow: 500
Size:
Distribution: Identity
Value: 1e-4
FlowParameters:
- KolmogorovScale: 1e-7
+ ReynoldsNumber: 2e4
diff --git a/demos/PFR/Coal/Coal_PFR.yaml b/demos/PFR/Coal/Coal_PFR.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..463020e9cc8745db00bf2603b29fe57e2d187ba4
--- /dev/null
+++ b/demos/PFR/Coal/Coal_PFR.yaml
@@ -0,0 +1,59 @@
+ReactionInGas: True
+Cantera:
+ GroupName: methane-gri211
+ InputFile: methane-gri211.xml
+InitialConditions:
+- value: 1200
+ variable: T
+- value: 101325
+ variable: p
+- value: 0.21
+ variable: X_O2
+- value: 0.79
+ variable: X_N2
+- value: 0.5
+ variable: u
+Output:
+ dualtime_interval: 1
+ time_interval: 1
+TimeIntegrator:
+ dsInitial: 1e-8
+ GESAT_Max: 1e1
+ GESAT_Ramp: 1.1
+ GESAT_Safety: 0.1
+ end_time: 0.15
+ timestep: 1e-6
+ tolerance: 1e-5
+ReactorParameters:
+ ReactorType: PFR
+ ReactorShape: Cylinder
+ Radius: 0.05
+ Height: 0.15
+Particles:
+ ParticleType: Coal
+ FuelAirEquivalenceRatio: 1.0
+ CoalType: IllinoisNo6
+ VapModel: ON
+ DevModel: CPD
+ TarSootModel: ON
+ TarIsC2H2: True
+ SootIsCarbon: False
+ CharModel:
+ GasificationModel: FirstOrder
+ OxidationModel: LH
+ InitialConditions:
+ - value: 350
+ variable: T_part_init
+ - value: 1200
+ variable: rho_part_init
+ InflowConditions:
+ - value: 350
+ variable: T_part_inflow
+ - value: 1200
+ variable: rho_part_inflow
+ Size:
+ Distribution: Identity
+ Value: 5e-5
+FlowParameters:
+ ReynoldsNumber: 2e4
+
diff --git a/demos/PFR/Coal/methane-gri211.xml b/demos/PFR/Coal/methane-gri211.xml
new file mode 100644
index 0000000000000000000000000000000000000000..afc9e28691c67c8846d2adb60bbf40f21f268c37
--- /dev/null
+++ b/demos/PFR/Coal/methane-gri211.xml
@@ -0,0 +1,5377 @@
+
+
+
+
+
+
+ O H C N Ar
+
+ H2 H O O2 OH H2O HO2 H2O2 C CH
+ CH2 CH2(S) CH3 CH4 CO CO2 HCO CH2O CH2OH CH3O
+ CH3OH C2H C2H2 C2H3 C2H4 C2H5 C2H6 HCCO CH2CO HCCOH
+ N NH NH2 NH3 NNH NO NO2 N2O HNO CN
+ HCN H2CN HCNN HCNO HOCN HNCO NCO N2 AR
+
+
+ 300.0
+ 101325.0
+
+
+
+
+
+
+
+
+
+
+
+ H:2
+ TPIS78
+
+
+
+ 2.344331120E+00, 7.980520750E-03, -1.947815100E-05, 2.015720940E-08,
+ -7.376117610E-12, -9.179351730E+02, 6.830102380E-01
+
+
+
+ 3.337279200E+00, -4.940247310E-05, 4.994567780E-07, -1.795663940E-10,
+ 2.002553760E-14, -9.501589220E+02, -3.205023310E+00
+
+
+
+ linear
+ 38.000
+ 2.920
+ 0.000
+ 0.790
+ 280.000
+
+
+
+
+
+ H:1
+ L 7/88
+
+
+
+ 2.500000000E+00, 7.053328190E-13, -1.995919640E-15, 2.300816320E-18,
+ -9.277323320E-22, 2.547365990E+04, -4.466828530E-01
+
+
+
+ 2.500000010E+00, -2.308429730E-11, 1.615619480E-14, -4.735152350E-18,
+ 4.981973570E-22, 2.547365990E+04, -4.466829140E-01
+
+
+
+ atom
+ 145.000
+ 2.050
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ O:1
+ L 1/90
+
+
+
+ 3.168267100E+00, -3.279318840E-03, 6.643063960E-06, -6.128066240E-09,
+ 2.112659710E-12, 2.912225920E+04, 2.051933460E+00
+
+
+
+ 2.569420780E+00, -8.597411370E-05, 4.194845890E-08, -1.001777990E-11,
+ 1.228336910E-15, 2.921757910E+04, 4.784338640E+00
+
+
+
+ atom
+ 80.000
+ 2.750
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ O:2
+ TPIS89
+
+
+
+ 3.782456360E+00, -2.996734160E-03, 9.847302010E-06, -9.681295090E-09,
+ 3.243728370E-12, -1.063943560E+03, 3.657675730E+00
+
+
+
+ 3.282537840E+00, 1.483087540E-03, -7.579666690E-07, 2.094705550E-10,
+ -2.167177940E-14, -1.088457720E+03, 5.453231290E+00
+
+
+
+ linear
+ 107.400
+ 3.458
+ 0.000
+ 1.600
+ 3.800
+
+
+
+
+
+ H:1 O:1
+ RUS 78
+
+
+
+ 3.992015430E+00, -2.401317520E-03, 4.617938410E-06, -3.881133330E-09,
+ 1.364114700E-12, 3.615080560E+03, -1.039254580E-01
+
+
+
+ 3.092887670E+00, 5.484297160E-04, 1.265052280E-07, -8.794615560E-11,
+ 1.174123760E-14, 3.858657000E+03, 4.476696100E+00
+
+
+
+ linear
+ 80.000
+ 2.750
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:2 O:1
+ L 8/89
+
+
+
+ 4.198640560E+00, -2.036434100E-03, 6.520402110E-06, -5.487970620E-09,
+ 1.771978170E-12, -3.029372670E+04, -8.490322080E-01
+
+
+
+ 3.033992490E+00, 2.176918040E-03, -1.640725180E-07, -9.704198700E-11,
+ 1.682009920E-14, -3.000429710E+04, 4.966770100E+00
+
+
+
+ nonlinear
+ 572.400
+ 2.605
+ 1.844
+ 0.000
+ 4.000
+
+
+
+
+
+ H:1 O:2
+ L 5/89
+
+
+
+ 4.301798010E+00, -4.749120510E-03, 2.115828910E-05, -2.427638940E-08,
+ 9.292251240E-12, 2.948080400E+02, 3.716662450E+00
+
+
+
+ 4.017210900E+00, 2.239820130E-03, -6.336581500E-07, 1.142463700E-10,
+ -1.079085350E-14, 1.118567130E+02, 3.785102150E+00
+
+
+
+ nonlinear
+ 107.400
+ 3.458
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:2 O:2
+ L 7/88
+
+
+
+ 4.276112690E+00, -5.428224170E-04, 1.673357010E-05, -2.157708130E-08,
+ 8.624543630E-12, -1.770258210E+04, 3.435050740E+00
+
+
+
+ 4.165002850E+00, 4.908316940E-03, -1.901392250E-06, 3.711859860E-10,
+ -2.879083050E-14, -1.786178770E+04, 2.916156620E+00
+
+
+
+ nonlinear
+ 107.400
+ 3.458
+ 0.000
+ 0.000
+ 3.800
+
+
+
+
+
+ C:1
+ L11/88
+
+
+
+ 2.554239550E+00, -3.215377240E-04, 7.337922450E-07, -7.322348890E-10,
+ 2.665214460E-13, 8.544388320E+04, 4.531308480E+00
+
+
+
+ 2.492668880E+00, 4.798892840E-05, -7.243350200E-08, 3.742910290E-11,
+ -4.872778930E-15, 8.545129530E+04, 4.801503730E+00
+
+
+
+ atom
+ 71.400
+ 3.298
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:1 C:1
+ TPIS79
+
+
+
+ 3.489816650E+00, 3.238355410E-04, -1.688990650E-06, 3.162173270E-09,
+ -1.406090670E-12, 7.079729340E+04, 2.084011080E+00
+
+
+
+ 2.878464730E+00, 9.709136810E-04, 1.444456550E-07, -1.306878490E-10,
+ 1.760793830E-14, 7.101243640E+04, 5.484979990E+00
+
+
+
+ linear
+ 80.000
+ 2.750
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:2 C:1
+ L S/93
+
+
+
+ 3.762678670E+00, 9.688721430E-04, 2.794898410E-06, -3.850911530E-09,
+ 1.687417190E-12, 4.600404010E+04, 1.562531850E+00
+
+
+
+ 2.874101130E+00, 3.656392920E-03, -1.408945970E-06, 2.601795490E-10,
+ -1.877275670E-14, 4.626360400E+04, 6.171193240E+00
+
+
+
+ linear
+ 144.000
+ 3.800
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:2 C:1
+ L S/93
+
+
+
+ 4.198604110E+00, -2.366614190E-03, 8.232962200E-06, -6.688159810E-09,
+ 1.943147370E-12, 5.049681630E+04, -7.691189670E-01
+
+
+
+ 2.292038420E+00, 4.655886370E-03, -2.011919470E-06, 4.179060000E-10,
+ -3.397163650E-14, 5.092599970E+04, 8.626501690E+00
+
+
+
+ linear
+ 144.000
+ 3.800
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:3 C:1
+ L11/89
+
+
+
+ 3.673590400E+00, 2.010951750E-03, 5.730218560E-06, -6.871174250E-09,
+ 2.543857340E-12, 1.644499880E+04, 1.604564330E+00
+
+
+
+ 2.285717720E+00, 7.239900370E-03, -2.987143480E-06, 5.956846440E-10,
+ -4.671543940E-14, 1.677558430E+04, 8.480071790E+00
+
+
+
+ linear
+ 144.000
+ 3.800
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:4 C:1
+ L 8/88
+
+
+
+ 5.149876130E+00, -1.367097880E-02, 4.918005990E-05, -4.847430260E-08,
+ 1.666939560E-11, -1.024664760E+04, -4.641303760E+00
+
+
+
+ 7.485149500E-02, 1.339094670E-02, -5.732858090E-06, 1.222925350E-09,
+ -1.018152300E-13, -9.468344590E+03, 1.843731800E+01
+
+
+
+ nonlinear
+ 141.400
+ 3.746
+ 0.000
+ 2.600
+ 13.000
+
+
+
+
+
+ C:1 O:1
+ TPIS79
+
+
+
+ 3.579533470E+00, -6.103536800E-04, 1.016814330E-06, 9.070058840E-10,
+ -9.044244990E-13, -1.434408600E+04, 3.508409280E+00
+
+
+
+ 2.715185610E+00, 2.062527430E-03, -9.988257710E-07, 2.300530080E-10,
+ -2.036477160E-14, -1.415187240E+04, 7.818687720E+00
+
+
+
+ linear
+ 98.100
+ 3.650
+ 0.000
+ 1.950
+ 1.800
+
+
+
+
+
+ C:1 O:2
+ L 7/88
+
+
+
+ 2.356773520E+00, 8.984596770E-03, -7.123562690E-06, 2.459190220E-09,
+ -1.436995480E-13, -4.837196970E+04, 9.901052220E+00
+
+
+
+ 3.857460290E+00, 4.414370260E-03, -2.214814040E-06, 5.234901880E-10,
+ -4.720841640E-14, -4.875916600E+04, 2.271638060E+00
+
+
+
+ linear
+ 244.000
+ 3.763
+ 0.000
+ 2.650
+ 2.100
+
+
+
+
+
+ H:1 C:1 O:1
+ L12/89
+
+
+
+ 4.221185840E+00, -3.243925320E-03, 1.377994460E-05, -1.331440930E-08,
+ 4.337688650E-12, 3.839564960E+03, 3.394372430E+00
+
+
+
+ 2.772174380E+00, 4.956955260E-03, -2.484456130E-06, 5.891617780E-10,
+ -5.335087110E-14, 4.011918150E+03, 9.798344920E+00
+
+
+
+ nonlinear
+ 498.000
+ 3.590
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:2 C:1 O:1
+ L 8/88
+
+
+
+ 4.793723150E+00, -9.908333690E-03, 3.732200080E-05, -3.792852610E-08,
+ 1.317726520E-11, -1.430895670E+04, 6.028129000E-01
+
+
+
+ 1.760690080E+00, 9.200000820E-03, -4.422588130E-06, 1.006412120E-09,
+ -8.838556400E-14, -1.399583230E+04, 1.365632300E+01
+
+
+
+ nonlinear
+ 498.000
+ 3.590
+ 0.000
+ 0.000
+ 2.000
+
+
+
+
+
+ H:3 C:1 O:1
+ GUNL93
+
+
+
+ 3.863889180E+00, 5.596723040E-03, 5.932717910E-06, -1.045320120E-08,
+ 4.369672780E-12, -3.193913670E+03, 5.473022430E+00
+
+
+
+ 3.692665690E+00, 8.645767970E-03, -3.751011200E-06, 7.872346360E-10,
+ -6.485542010E-14, -3.242506270E+03, 5.810432150E+00
+
+
+
+ nonlinear
+ 417.000
+ 3.690
+ 1.700
+ 0.000
+ 2.000
+
+
+
+
+
+ H:3 C:1 O:1
+ 121686
+
+
+
+ 2.106204000E+00, 7.216595000E-03, 5.338472000E-06, -7.377636000E-09,
+ 2.075610000E-12, 9.786011000E+02, 1.315217700E+01
+
+
+
+ 3.770799000E+00, 7.871497000E-03, -2.656384000E-06, 3.944431000E-10,
+ -2.112616000E-14, 1.278325200E+02, 2.929575000E+00
+
+
+
+ nonlinear
+ 417.000
+ 3.690
+ 1.700
+ 0.000
+ 2.000
+
+
+
+
+
+ H:4 C:1 O:1
+ L 8/88
+
+
+
+ 5.715395820E+00, -1.523091290E-02, 6.524411550E-05, -7.108068890E-08,
+ 2.613526980E-11, -2.564276560E+04, -1.504098230E+00
+
+
+
+ 1.789707910E+00, 1.409382920E-02, -6.365008350E-06, 1.381710850E-09,
+ -1.170602200E-13, -2.537487470E+04, 1.450236230E+01
+
+
+
+ nonlinear
+ 481.800
+ 3.626
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:1 C:2
+ L 1/91
+
+
+
+ 2.889657330E+00, 1.340996110E-02, -2.847695010E-05, 2.947910450E-08,
+ -1.093315110E-11, 6.683939320E+04, 6.222964380E+00
+
+
+
+ 3.167806520E+00, 4.752219020E-03, -1.837870770E-06, 3.041902520E-10,
+ -1.772327700E-14, 6.712106500E+04, 6.635894750E+00
+
+
+
+ linear
+ 209.000
+ 4.100
+ 0.000
+ 0.000
+ 2.500
+
+
+
+
+
+ H:2 C:2
+ L 1/91
+
+
+
+ 8.086810940E-01, 2.336156290E-02, -3.551718150E-05, 2.801524370E-08,
+ -8.500729740E-12, 2.642898070E+04, 1.393970510E+01
+
+
+
+ 4.147569640E+00, 5.961666640E-03, -2.372948520E-06, 4.674121710E-10,
+ -3.612352130E-14, 2.593599920E+04, -1.230281210E+00
+
+
+
+ linear
+ 209.000
+ 4.100
+ 0.000
+ 0.000
+ 2.500
+
+
+
+
+
+ H:3 C:2
+ L 2/92
+
+
+
+ 3.212466450E+00, 1.514791620E-03, 2.592094120E-05, -3.576578470E-08,
+ 1.471508730E-11, 3.485984680E+04, 8.510540250E+00
+
+
+
+ 3.016724000E+00, 1.033022920E-02, -4.680823490E-06, 1.017632880E-09,
+ -8.626070410E-14, 3.461287390E+04, 7.787323780E+00
+
+
+
+ nonlinear
+ 209.000
+ 4.100
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:4 C:2
+ L 1/91
+
+
+
+ 3.959201480E+00, -7.570522470E-03, 5.709902920E-05, -6.915887530E-08,
+ 2.698843730E-11, 5.089775930E+03, 4.097330960E+00
+
+
+
+ 2.036111160E+00, 1.464541510E-02, -6.710779150E-06, 1.472229230E-09,
+ -1.257060610E-13, 4.939886140E+03, 1.030536930E+01
+
+
+
+ nonlinear
+ 280.800
+ 3.971
+ 0.000
+ 0.000
+ 1.500
+
+
+
+
+
+ H:5 C:2
+ L12/92
+
+
+
+ 4.306465680E+00, -4.186588920E-03, 4.971428070E-05, -5.991266060E-08,
+ 2.305090040E-11, 1.284162650E+04, 4.707209240E+00
+
+
+
+ 1.954656420E+00, 1.739727220E-02, -7.982066680E-06, 1.752176890E-09,
+ -1.496415760E-13, 1.285752000E+04, 1.346243430E+01
+
+
+
+ nonlinear
+ 252.300
+ 4.302
+ 0.000
+ 0.000
+ 1.500
+
+
+
+
+
+ H:6 C:2
+ L 8/88
+
+
+
+ 4.291424920E+00, -5.501542700E-03, 5.994382880E-05, -7.084662850E-08,
+ 2.686857710E-11, -1.152220550E+04, 2.666823160E+00
+
+
+
+ 1.071881500E+00, 2.168526770E-02, -1.002560670E-05, 2.214120010E-09,
+ -1.900028900E-13, -1.142639320E+04, 1.511561070E+01
+
+
+
+ nonlinear
+ 252.300
+ 4.302
+ 0.000
+ 0.000
+ 1.500
+
+
+
+
+
+ H:1 C:2 O:1
+ SRIC91
+
+
+
+ 2.251721400E+00, 1.765502100E-02, -2.372910100E-05, 1.727575900E-08,
+ -5.066481100E-12, 2.005944900E+04, 1.249041700E+01
+
+
+
+ 5.628205800E+00, 4.085340100E-03, -1.593454700E-06, 2.862605200E-10,
+ -1.940783200E-14, 1.932721500E+04, -3.930259500E+00
+
+
+
+ nonlinear
+ 150.000
+ 2.500
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:2 C:2 O:1
+ L 5/90
+
+
+
+ 2.135836300E+00, 1.811887210E-02, -1.739474740E-05, 9.343975680E-09,
+ -2.014576150E-12, -7.042918040E+03, 1.221564800E+01
+
+
+
+ 4.511297320E+00, 9.003597450E-03, -4.169396350E-06, 9.233458820E-10,
+ -7.948382010E-14, -7.551053110E+03, 6.322472050E-01
+
+
+
+ nonlinear
+ 436.000
+ 3.970
+ 0.000
+ 0.000
+ 2.000
+
+
+
+
+
+ H:2 C:2 O:1
+ SRI91
+
+
+
+ 1.242373300E+00, 3.107220100E-02, -5.086686400E-05, 4.313713100E-08,
+ -1.401459400E-11, 8.031614300E+03, 1.387431900E+01
+
+
+
+ 5.923829100E+00, 6.792360000E-03, -2.565856400E-06, 4.498784100E-10,
+ -2.994010100E-14, 7.264626000E+03, -7.601774200E+00
+
+
+
+ nonlinear
+ 436.000
+ 3.970
+ 0.000
+ 0.000
+ 2.000
+
+
+
+
+
+ N:1
+ L 6/88
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, 5.610463700E+04, 4.193908700E+00
+
+
+
+ 2.415942900E+00, 1.748906500E-04, -1.190236900E-07, 3.022624500E-11,
+ -2.036098200E-15, 5.613377300E+04, 4.649609600E+00
+
+
+
+ atom
+ 71.400
+ 3.298
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:1 N:1
+ And94
+
+
+
+ 3.492908500E+00, 3.117919800E-04, -1.489048400E-06, 2.481644200E-09,
+ -1.035696700E-12, 4.188062900E+04, 1.848327800E+00
+
+
+
+ 2.783692800E+00, 1.329843000E-03, -4.247804700E-07, 7.834850100E-11,
+ -5.504447000E-15, 4.212084800E+04, 5.740779900E+00
+
+
+
+ linear
+ 80.000
+ 2.650
+ 0.000
+ 0.000
+ 4.000
+
+
+
+
+
+ H:2 N:1
+ And89
+
+
+
+ 4.204002900E+00, -2.106138500E-03, 7.106834800E-06, -5.611519700E-09,
+ 1.644071700E-12, 2.188591000E+04, -1.418424800E-01
+
+
+
+ 2.834742100E+00, 3.207308200E-03, -9.339080400E-07, 1.370295300E-10,
+ -7.920614400E-15, 2.217195700E+04, 6.520416300E+00
+
+
+
+ nonlinear
+ 80.000
+ 2.650
+ 0.000
+ 2.260
+ 4.000
+
+
+
+
+
+ H:3 N:1
+ J 6/77
+
+
+
+ 4.286027400E+00, -4.660523000E-03, 2.171851300E-05, -2.280888700E-08,
+ 8.263804600E-12, -6.741728500E+03, -6.253727700E-01
+
+
+
+ 2.634452100E+00, 5.666256000E-03, -1.727867600E-06, 2.386716100E-10,
+ -1.257878600E-14, -6.544695800E+03, 6.566292800E+00
+
+
+
+ nonlinear
+ 481.000
+ 2.920
+ 1.470
+ 0.000
+ 10.000
+
+
+
+
+
+ H:1 N:2
+ T07/93
+
+
+
+ 4.344692700E+00, -4.849707200E-03, 2.005945900E-05, -2.172646400E-08,
+ 7.946953900E-12, 2.879197300E+04, 2.977941000E+00
+
+
+
+ 3.766754400E+00, 2.891508200E-03, -1.041662000E-06, 1.684259400E-10,
+ -1.009189600E-14, 2.865069700E+04, 4.470506700E+00
+
+
+
+ nonlinear
+ 71.400
+ 3.798
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ O:1 N:1
+ RUS 78
+
+
+
+ 4.218476300E+00, -4.638976000E-03, 1.104102200E-05, -9.336135400E-09,
+ 2.803577000E-12, 9.844623000E+03, 2.280846400E+00
+
+
+
+ 3.260605600E+00, 1.191104300E-03, -4.291704800E-07, 6.945766900E-11,
+ -4.033609900E-15, 9.920974600E+03, 6.369302700E+00
+
+
+
+ linear
+ 97.530
+ 3.621
+ 0.000
+ 1.760
+ 4.000
+
+
+
+
+
+ O:2 N:1
+ L 7/88
+
+
+
+ 3.944031200E+00, -1.585429000E-03, 1.665781200E-05, -2.047542600E-08,
+ 7.835056400E-12, 2.896617900E+03, 6.311991700E+00
+
+
+
+ 4.884754200E+00, 2.172395600E-03, -8.280690600E-07, 1.574751000E-10,
+ -1.051089500E-14, 2.316498300E+03, -1.174169500E-01
+
+
+
+ nonlinear
+ 200.000
+ 3.500
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ O:1 N:2
+ L 7/88
+
+
+
+ 2.257150200E+00, 1.130472800E-02, -1.367131900E-05, 9.681980600E-09,
+ -2.930718200E-12, 8.741774400E+03, 1.075799200E+01
+
+
+
+ 4.823072900E+00, 2.627025100E-03, -9.585087400E-07, 1.600071200E-10,
+ -9.775230300E-15, 8.073404800E+03, -2.201720700E+00
+
+
+
+ linear
+ 232.400
+ 3.828
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:1 O:1 N:1
+ And93
+
+
+
+ 4.533491600E+00, -5.669617100E-03, 1.847320700E-05, -1.713709400E-08,
+ 5.545457300E-12, 1.154829700E+04, 1.749841700E+00
+
+
+
+ 2.979250900E+00, 3.494405900E-03, -7.854977800E-07, 5.747959400E-11,
+ -1.933591600E-16, 1.175058200E+04, 8.606372800E+00
+
+
+
+ nonlinear
+ 116.700
+ 3.492
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ C:1 N:1
+ HBH92
+
+
+
+ 3.612935100E+00, -9.555132700E-04, 2.144297700E-06, -3.151632300E-10,
+ -4.643035600E-13, 5.170834000E+04, 3.980499500E+00
+
+
+
+ 3.745980500E+00, 4.345077500E-05, 2.970598400E-07, -6.865180600E-11,
+ 4.413417300E-15, 5.153618800E+04, 2.786760100E+00
+
+
+
+ linear
+ 75.000
+ 3.856
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:1 C:1 N:1
+ L 7/88
+
+
+
+ 2.258988600E+00, 1.005117000E-02, -1.335176300E-05, 1.009234900E-08,
+ -3.008902800E-12, 1.521585300E+04, 8.916441900E+00
+
+
+
+ 3.802239200E+00, 3.146422800E-03, -1.063218500E-06, 1.661975700E-10,
+ -9.799757000E-15, 1.491051200E+04, 1.575460100E+00
+
+
+
+ linear
+ 569.000
+ 3.630
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:2 C:1 N:1
+ 41687
+
+
+
+ 2.851661000E+00, 5.695233100E-03, 1.071140000E-06, -1.622612000E-09,
+ -2.351108100E-13, 2.863782000E+04, 8.992751100E+00
+
+
+
+ 5.209703000E+00, 2.969291100E-03, -2.855589100E-07, -1.635550000E-10,
+ 3.043258900E-14, 2.767710900E+04, -4.444478000E+00
+
+
+
+ linear
+ 569.000
+ 3.630
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:1 C:1 N:2
+ SRI/94
+
+
+
+ 2.524319400E+00, 1.596061900E-02, -1.881635400E-05, 1.212554000E-08,
+ -3.235737800E-12, 5.426198400E+04, 1.167587000E+01
+
+
+
+ 5.894636200E+00, 3.989595900E-03, -1.598238000E-06, 2.924939500E-10,
+ -2.009468600E-14, 5.345294100E+04, -5.103050200E+00
+
+
+
+ nonlinear
+ 150.000
+ 2.500
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:1 C:1 O:1 N:1
+ BDEA94
+
+
+
+ 2.647279890E+00, 1.275053420E-02, -1.047942360E-05, 4.414328360E-09,
+ -7.575214660E-13, 1.929902520E+04, 1.073329720E+01
+
+
+
+ 6.598604560E+00, 3.027786260E-03, -1.077043460E-06, 1.716665280E-10,
+ -1.014393910E-14, 1.796613390E+04, -1.033065990E+01
+
+
+
+ nonlinear
+ 232.400
+ 3.828
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:1 C:1 O:1 N:1
+ BDEA94
+
+
+
+ 3.786049520E+00, 6.886679220E-03, -3.214878640E-06, 5.171957670E-10,
+ 1.193607880E-14, -2.826984000E+03, 5.632921620E+00
+
+
+
+ 5.897848850E+00, 3.167893930E-03, -1.118010640E-06, 1.772431440E-10,
+ -1.043391770E-14, -3.706533310E+03, -6.181678250E+00
+
+
+
+ nonlinear
+ 232.400
+ 3.828
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:1 C:1 O:1 N:1
+ BDEA94
+
+
+
+ 3.630963170E+00, 7.302823570E-03, -2.280500030E-06, -6.612712980E-10,
+ 3.622357520E-13, -1.558736360E+04, 6.194577270E+00
+
+
+
+ 6.223951340E+00, 3.178640040E-03, -1.093787550E-06, 1.707351630E-10,
+ -9.950219550E-15, -1.665993440E+04, -8.382247410E+00
+
+
+
+ nonlinear
+ 232.400
+ 3.828
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ C:1 O:1 N:1
+ EA 93
+
+
+
+ 2.826930800E+00, 8.805168800E-03, -8.386613400E-06, 4.801696400E-09,
+ -1.331359500E-12, 1.468247700E+04, 9.550464600E+00
+
+
+
+ 5.152184500E+00, 2.305176100E-03, -8.803315300E-07, 1.478909800E-10,
+ -9.097799600E-15, 1.400412300E+04, -2.544266000E+00
+
+
+
+ linear
+ 232.400
+ 3.828
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ N:2
+ 121286
+
+
+
+ 3.298677000E+00, 1.408240400E-03, -3.963222000E-06, 5.641515000E-09,
+ -2.444854000E-12, -1.020899900E+03, 3.950372000E+00
+
+
+
+ 2.926640000E+00, 1.487976800E-03, -5.684760000E-07, 1.009703800E-10,
+ -6.753351000E-15, -9.227977000E+02, 5.980528000E+00
+
+
+
+ linear
+ 97.530
+ 3.621
+ 0.000
+ 1.760
+ 4.000
+
+
+
+
+
+ Ar:1
+ 120186
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, -7.453750000E+02, 4.366000000E+00
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, -7.453750000E+02, 4.366000000E+00
+
+
+
+ atom
+ 136.500
+ 3.330
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+
+
+ 2 O + M [=] O2 + M
+
+
+ 1.200000E+11
+ -1
+ 0.000000
+
+ AR:0.83 C2H6:3 CH4:2 CO:1.75 CO2:3.6 H2:2.4 H2O:15.4
+
+ O:2.0
+ O2:1.0
+
+
+
+
+ O + H + M [=] OH + M
+
+
+ 5.000000E+11
+ -1
+ 0.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ H:1 O:1.0
+ OH:1.0
+
+
+
+
+ O + H2 [=] H + OH
+
+
+ 5.000000E+01
+ 2.67
+ 6290.000000
+
+
+ H2:1 O:1.0
+ H:1.0 OH:1
+
+
+
+
+ O + HO2 [=] OH + O2
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ HO2:1 O:1.0
+ O2:1 OH:1.0
+
+
+
+
+ O + H2O2 [=] OH + HO2
+
+
+ 9.630000E+03
+ 2
+ 4000.000000
+
+
+ H2O2:1 O:1.0
+ HO2:1 OH:1.0
+
+
+
+
+ O + CH [=] H + CO
+
+
+ 5.700000E+10
+ 0
+ 0.000000
+
+
+ CH:1 O:1.0
+ H:1.0 CO:1
+
+
+
+
+ O + CH2 [=] H + HCO
+
+
+ 8.000000E+10
+ 0
+ 0.000000
+
+
+ CH2:1 O:1.0
+ H:1.0 HCO:1
+
+
+
+
+ O + CH2(S) [=] H2 + CO
+
+
+ 1.500000E+10
+ 0
+ 0.000000
+
+
+ CH2(S):1 O:1.0
+ H2:1.0 CO:1
+
+
+
+
+ O + CH2(S) [=] H + HCO
+
+
+ 1.500000E+10
+ 0
+ 0.000000
+
+
+ CH2(S):1 O:1.0
+ H:1.0 HCO:1
+
+
+
+
+ O + CH3 [=] H + CH2O
+
+
+ 8.430000E+10
+ 0
+ 0.000000
+
+
+ CH3:1 O:1.0
+ CH2O:1 H:1.0
+
+
+
+
+ O + CH4 [=] OH + CH3
+
+
+ 1.020000E+06
+ 1.5
+ 8600.000000
+
+
+ CH4:1 O:1.0
+ CH3:1 OH:1.0
+
+
+
+
+ O + CO + M [=] CO2 + M
+
+
+ 6.020000E+08
+ 0
+ 3000.000000
+
+ AR:0.5 C2H6:3 CH4:2 CO:1.5 CO2:3.5 H2:2 H2O:6 O2:6
+
+ CO:1 O:1.0
+ CO2:1.0
+
+
+
+
+ O + HCO [=] OH + CO
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ HCO:1 O:1.0
+ CO:1 OH:1.0
+
+
+
+
+ O + HCO [=] H + CO2
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ HCO:1 O:1.0
+ H:1.0 CO2:1
+
+
+
+
+ O + CH2O [=] OH + HCO
+
+
+ 3.900000E+10
+ 0
+ 3540.000000
+
+
+ CH2O:1 O:1.0
+ HCO:1 OH:1.0
+
+
+
+
+ O + CH2OH [=] OH + CH2O
+
+
+ 1.000000E+10
+ 0
+ 0.000000
+
+
+ CH2OH:1 O:1.0
+ CH2O:1 OH:1.0
+
+
+
+
+ O + CH3O [=] OH + CH2O
+
+
+ 1.000000E+10
+ 0
+ 0.000000
+
+
+ CH3O:1 O:1.0
+ CH2O:1 OH:1.0
+
+
+
+
+ O + CH3OH [=] OH + CH2OH
+
+
+ 3.880000E+02
+ 2.5
+ 3100.000000
+
+
+ CH3OH:1 O:1.0
+ CH2OH:1 OH:1.0
+
+
+
+
+ O + CH3OH [=] OH + CH3O
+
+
+ 1.300000E+02
+ 2.5
+ 5000.000000
+
+
+ CH3OH:1 O:1.0
+ CH3O:1 OH:1.0
+
+
+
+
+ O + C2H [=] CH + CO
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ C2H:1 O:1.0
+ CH:1.0 CO:1
+
+
+
+
+ O + C2H2 [=] H + HCCO
+
+
+ 1.020000E+04
+ 2
+ 1900.000000
+
+
+ C2H2:1 O:1.0
+ H:1.0 HCCO:1
+
+
+
+
+ O + C2H2 [=] OH + C2H
+
+
+ 4.600000E+16
+ -1.41
+ 28950.000000
+
+
+ C2H2:1 O:1.0
+ C2H:1 OH:1.0
+
+
+
+
+ O + C2H2 [=] CO + CH2
+
+
+ 1.020000E+04
+ 2
+ 1900.000000
+
+
+ C2H2:1 O:1.0
+ CH2:1 CO:1.0
+
+
+
+
+ O + C2H3 [=] H + CH2CO
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ C2H3:1 O:1.0
+ H:1.0 CH2CO:1
+
+
+
+
+ O + C2H4 [=] CH3 + HCO
+
+
+ 1.920000E+04
+ 1.83
+ 220.000000
+
+
+ C2H4:1 O:1.0
+ CH3:1.0 HCO:1
+
+
+
+
+ O + C2H5 [=] CH3 + CH2O
+
+
+ 1.320000E+11
+ 0
+ 0.000000
+
+
+ C2H5:1 O:1.0
+ CH2O:1 CH3:1.0
+
+
+
+
+ O + C2H6 [=] OH + C2H5
+
+
+ 8.980000E+04
+ 1.92
+ 5690.000000
+
+
+ C2H6:1 O:1.0
+ C2H5:1 OH:1.0
+
+
+
+
+ O + HCCO [=] H + 2 CO
+
+
+ 1.000000E+11
+ 0
+ 0.000000
+
+
+ HCCO:1 O:1.0
+ H:1.0 CO:2.0
+
+
+
+
+ O + CH2CO [=] OH + HCCO
+
+
+ 1.000000E+10
+ 0
+ 8000.000000
+
+
+ CH2CO:1 O:1.0
+ HCCO:1 OH:1.0
+
+
+
+
+ O + CH2CO [=] CH2 + CO2
+
+
+ 1.750000E+09
+ 0
+ 1350.000000
+
+
+ CH2CO:1 O:1.0
+ CH2:1.0 CO2:1
+
+
+
+
+ O2 + CO [=] O + CO2
+
+
+ 2.500000E+09
+ 0
+ 47800.000000
+
+
+ CO:1 O2:1.0
+ CO2:1 O:1.0
+
+
+
+
+ O2 + CH2O [=] HO2 + HCO
+
+
+ 1.000000E+11
+ 0
+ 40000.000000
+
+
+ CH2O:1 O2:1.0
+ HO2:1.0 HCO:1
+
+
+
+
+ H + O2 + M [=] HO2 + M
+
+
+ 2.800000E+12
+ -0.86
+ 0.000000
+
+ AR:0 C2H6:1.5 CO:0.75 CO2:1.5 H2O:0 N2:0 O2:0
+
+ H:1.0 O2:1
+ HO2:1.0
+
+
+
+
+ H + 2 O2 [=] HO2 + O2
+
+
+ 3.000000E+14
+ -1.72
+ 0.000000
+
+
+ H:1.0 O2:2.0
+ HO2:1.0 O2:1
+
+
+
+
+ H + O2 + H2O [=] HO2 + H2O
+
+
+ 9.380000E+12
+ -0.76
+ 0.000000
+
+
+ H:1.0 H2O:1 O2:1
+ H2O:1 HO2:1.0
+
+
+
+
+ H + O2 + N2 [=] HO2 + N2
+
+
+ 3.750000E+14
+ -1.72
+ 0.000000
+
+
+ H:1.0 N2:1 O2:1
+ N2:1 HO2:1.0
+
+
+
+
+ H + O2 + AR [=] HO2 + AR
+
+
+ 7.000000E+11
+ -0.8
+ 0.000000
+
+
+ H:1.0 AR:1 O2:1
+ AR:1 HO2:1.0
+
+
+
+
+ H + O2 [=] O + OH
+
+
+ 8.300000E+10
+ 0
+ 14413.000000
+
+
+ H:1.0 O2:1
+ O:1.0 OH:1
+
+
+
+
+ 2 H + M [=] H2 + M
+
+
+ 1.000000E+12
+ -1
+ 0.000000
+
+ AR:0.63 C2H6:3 CH4:2 CO2:0 H2:0 H2O:0
+
+ H:2.0
+ H2:1.0
+
+
+
+
+ 2 H + H2 [=] 2 H2
+
+
+ 9.000000E+10
+ -0.6
+ 0.000000
+
+
+ H2:1 H:2.0
+ H2:2.0
+
+
+
+
+ 2 H + H2O [=] H2 + H2O
+
+
+ 6.000000E+13
+ -1.25
+ 0.000000
+
+
+ H:2.0 H2O:1
+ H2:1.0 H2O:1
+
+
+
+
+ 2 H + CO2 [=] H2 + CO2
+
+
+ 5.500000E+14
+ -2
+ 0.000000
+
+
+ H:2.0 CO2:1
+ H2:1.0 CO2:1
+
+
+
+
+ H + OH + M [=] H2O + M
+
+
+ 2.200000E+16
+ -2
+ 0.000000
+
+ AR:0.38 C2H6:3 CH4:2 H2:0.73 H2O:3.65
+
+ H:1.0 OH:1
+ H2O:1.0
+
+
+
+
+ H + HO2 [=] O + H2O
+
+
+ 3.970000E+09
+ 0
+ 671.000000
+
+
+ H:1.0 HO2:1
+ H2O:1 O:1.0
+
+
+
+
+ H + HO2 [=] O2 + H2
+
+
+ 2.800000E+10
+ 0
+ 1068.000000
+
+
+ H:1.0 HO2:1
+ H2:1 O2:1.0
+
+
+
+
+ H + HO2 [=] 2 OH
+
+
+ 1.340000E+11
+ 0
+ 635.000000
+
+
+ H:1.0 HO2:1
+ OH:2.0
+
+
+
+
+ H + H2O2 [=] HO2 + H2
+
+
+ 1.210000E+04
+ 2
+ 5200.000000
+
+
+ H:1.0 H2O2:1
+ H2:1 HO2:1.0
+
+
+
+
+ H + H2O2 [=] OH + H2O
+
+
+ 1.000000E+10
+ 0
+ 3600.000000
+
+
+ H:1.0 H2O2:1
+ H2O:1 OH:1.0
+
+
+
+
+ H + CH [=] C + H2
+
+
+ 1.100000E+11
+ 0
+ 0.000000
+
+
+ H:1.0 CH:1
+ H2:1 C:1.0
+
+
+
+
+ H + CH2 (+ M) [=] CH3 (+ M)
+
+
+ 2.500000E+13
+ -0.8
+ 0.000000
+
+
+ 3.200000E+21
+ -3.14
+ 1230.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.68 78 1995 5590
+
+ H:1.0 CH2:1
+ CH3:1.0
+
+
+
+
+ H + CH2(S) [=] CH + H2
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 CH2(S):1
+ H2:1 CH:1.0
+
+
+
+
+ H + CH3 (+ M) [=] CH4 (+ M)
+
+
+ 1.270000E+13
+ -0.63
+ 383.000000
+
+
+ 2.477000E+27
+ -4.76
+ 2440.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.783 74 2941 6964
+
+ H:1.0 CH3:1
+ CH4:1.0
+
+
+
+
+ H + CH4 [=] CH3 + H2
+
+
+ 6.600000E+05
+ 1.62
+ 10840.000000
+
+
+ H:1.0 CH4:1
+ H2:1 CH3:1.0
+
+
+
+
+ H + HCO (+ M) [=] CH2O (+ M)
+
+
+ 1.090000E+09
+ 0.48
+ -260.000000
+
+
+ 1.350000E+18
+ -2.57
+ 1425.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.7824 271 2755 6570
+
+ H:1.0 HCO:1
+ CH2O:1.0
+
+
+
+
+ H + HCO [=] H2 + CO
+
+
+ 7.340000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 HCO:1
+ H2:1.0 CO:1
+
+
+
+
+ H + CH2O (+ M) [=] CH2OH (+ M)
+
+
+ 5.400000E+08
+ 0.454
+ 3600.000000
+
+
+ 1.270000E+26
+ -4.82
+ 6530.000000
+
+ C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.7187 103 1291 4160
+
+ CH2O:1 H:1.0
+ CH2OH:1.0
+
+
+
+
+ H + CH2O (+ M) [=] CH3O (+ M)
+
+
+ 5.400000E+08
+ 0.454
+ 2600.000000
+
+
+ 2.200000E+24
+ -4.8
+ 5560.000000
+
+ C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.758 94 1555 4200
+
+ CH2O:1 H:1.0
+ CH3O:1.0
+
+
+
+
+ H + CH2O [=] HCO + H2
+
+
+ 2.300000E+07
+ 1.05
+ 3275.000000
+
+
+ CH2O:1 H:1.0
+ H2:1 HCO:1.0
+
+
+
+
+ H + CH2OH (+ M) [=] CH3OH (+ M)
+
+
+ 1.800000E+10
+ 0
+ 0.000000
+
+
+ 3.000000E+25
+ -4.8
+ 3300.000000
+
+ C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.7679 338 1812 5081
+
+ H:1.0 CH2OH:1
+ CH3OH:1.0
+
+
+
+
+ H + CH2OH [=] H2 + CH2O
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 CH2OH:1
+ H2:1.0 CH2O:1
+
+
+
+
+ H + CH2OH [=] OH + CH3
+
+
+ 1.200000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 CH2OH:1
+ CH3:1 OH:1.0
+
+
+
+
+ H + CH2OH [=] CH2(S) + H2O
+
+
+ 6.000000E+09
+ 0
+ 0.000000
+
+
+ H:1.0 CH2OH:1
+ CH2(S):1.0 H2O:1
+
+
+
+
+ H + CH3O (+ M) [=] CH3OH (+ M)
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ 8.600000E+22
+ -4
+ 3025.000000
+
+ C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.8902 144 2838 45569
+
+ H:1.0 CH3O:1
+ CH3OH:1.0
+
+
+
+
+ H + CH3O [=] H + CH2OH
+
+
+ 3.400000E+03
+ 1.6
+ 0.000000
+
+
+ H:1.0 CH3O:1
+ H:1.0 CH2OH:1
+
+
+
+
+ H + CH3O [=] H2 + CH2O
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 CH3O:1
+ H2:1.0 CH2O:1
+
+
+
+
+ H + CH3O [=] OH + CH3
+
+
+ 3.200000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 CH3O:1
+ CH3:1 OH:1.0
+
+
+
+
+ H + CH3O [=] CH2(S) + H2O
+
+
+ 1.600000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 CH3O:1
+ CH2(S):1.0 H2O:1
+
+
+
+
+ H + CH3OH [=] CH2OH + H2
+
+
+ 1.700000E+04
+ 2.1
+ 4870.000000
+
+
+ CH3OH:1 H:1.0
+ H2:1 CH2OH:1.0
+
+
+
+
+ H + CH3OH [=] CH3O + H2
+
+
+ 4.200000E+03
+ 2.1
+ 4870.000000
+
+
+ CH3OH:1 H:1.0
+ H2:1 CH3O:1.0
+
+
+
+
+ H + C2H (+ M) [=] C2H2 (+ M)
+
+
+ 1.000000E+14
+ -1
+ 0.000000
+
+
+ 3.750000E+27
+ -4.8
+ 1900.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.6464 132 1315 5566
+
+ H:1.0 C2H:1
+ C2H2:1.0
+
+
+
+
+ H + C2H2 (+ M) [=] C2H3 (+ M)
+
+
+ 5.600000E+09
+ 0
+ 2400.000000
+
+
+ 3.800000E+34
+ -7.27
+ 7220.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.7507 98.5 1302 4167
+
+ H:1.0 C2H2:1
+ C2H3:1.0
+
+
+
+
+ H + C2H3 (+ M) [=] C2H4 (+ M)
+
+
+ 6.080000E+09
+ 0.27
+ 280.000000
+
+
+ 1.400000E+24
+ -3.86
+ 3320.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.782 207.5 2663 6095
+
+ H:1.0 C2H3:1
+ C2H4:1.0
+
+
+
+
+ H + C2H3 [=] H2 + C2H2
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 C2H3:1
+ H2:1.0 C2H2:1
+
+
+
+
+ H + C2H4 (+ M) [=] C2H5 (+ M)
+
+
+ 1.080000E+09
+ 0.454
+ 1820.000000
+
+
+ 1.200000E+36
+ -7.62
+ 6970.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.9753 210 984 4374
+
+ H:1.0 C2H4:1
+ C2H5:1.0
+
+
+
+
+ H + C2H4 [=] C2H3 + H2
+
+
+ 1.325000E+03
+ 2.53
+ 12240.000000
+
+
+ H:1.0 C2H4:1
+ H2:1 C2H3:1.0
+
+
+
+
+ H + C2H5 (+ M) [=] C2H6 (+ M)
+
+
+ 5.210000E+14
+ -0.99
+ 1580.000000
+
+
+ 1.990000E+35
+ -7.08
+ 6685.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.8422 125 2219 6882
+
+ H:1.0 C2H5:1
+ C2H6:1.0
+
+
+
+
+ H + C2H5 [=] H2 + C2H4
+
+
+ 2.000000E+09
+ 0
+ 0.000000
+
+
+ H:1.0 C2H5:1
+ H2:1.0 C2H4:1
+
+
+
+
+ H + C2H6 [=] C2H5 + H2
+
+
+ 1.150000E+05
+ 1.9
+ 7530.000000
+
+
+ H:1.0 C2H6:1
+ H2:1 C2H5:1.0
+
+
+
+
+ H + HCCO [=] CH2(S) + CO
+
+
+ 1.000000E+11
+ 0
+ 0.000000
+
+
+ H:1.0 HCCO:1
+ CH2(S):1.0 CO:1
+
+
+
+
+ H + CH2CO [=] HCCO + H2
+
+
+ 5.000000E+10
+ 0
+ 8000.000000
+
+
+ H:1.0 CH2CO:1
+ H2:1 HCCO:1.0
+
+
+
+
+ H + CH2CO [=] CH3 + CO
+
+
+ 1.130000E+10
+ 0
+ 3428.000000
+
+
+ H:1.0 CH2CO:1
+ CH3:1.0 CO:1
+
+
+
+
+ H + HCCOH [=] H + CH2CO
+
+
+ 1.000000E+10
+ 0
+ 0.000000
+
+
+ H:1.0 HCCOH:1
+ H:1.0 CH2CO:1
+
+
+
+
+ H2 + CO (+ M) [=] CH2O (+ M)
+
+
+ 4.300000E+04
+ 1.5
+ 79600.000000
+
+
+ 5.070000E+21
+ -3.42
+ 84350.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.932 197 1540 10300
+
+ H2:1.0 CO:1
+ CH2O:1.0
+
+
+
+
+ OH + H2 [=] H + H2O
+
+
+ 2.160000E+05
+ 1.51
+ 3430.000000
+
+
+ H2:1 OH:1.0
+ H:1.0 H2O:1
+
+
+
+
+ 2 OH (+ M) [=] H2O2 (+ M)
+
+
+ 7.400000E+10
+ -0.37
+ 0.000000
+
+
+ 2.300000E+12
+ -0.9
+ -1700.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.7346 94 1756 5182
+
+ OH:2.0
+ H2O2:1.0
+
+
+
+
+ 2 OH [=] O + H2O
+
+
+ 3.570000E+01
+ 2.4
+ -2110.000000
+
+
+ OH:2.0
+ H2O:1 O:1.0
+
+
+
+
+ OH + HO2 [=] O2 + H2O
+
+
+ 2.900000E+10
+ 0
+ -500.000000
+
+
+ HO2:1 OH:1.0
+ H2O:1 O2:1.0
+
+
+
+
+ OH + H2O2 [=] HO2 + H2O
+
+
+ 1.750000E+09
+ 0
+ 320.000000
+
+
+ H2O2:1 OH:1.0
+ H2O:1 HO2:1.0
+
+
+
+
+ OH + H2O2 [=] HO2 + H2O
+
+
+ 5.800000E+11
+ 0
+ 9560.000000
+
+
+ H2O2:1 OH:1.0
+ H2O:1 HO2:1.0
+
+
+
+
+ OH + C [=] H + CO
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ C:1 OH:1.0
+ H:1.0 CO:1
+
+
+
+
+ OH + CH [=] H + HCO
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ CH:1 OH:1.0
+ H:1.0 HCO:1
+
+
+
+
+ OH + CH2 [=] H + CH2O
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ CH2:1 OH:1.0
+ CH2O:1 H:1.0
+
+
+
+
+ OH + CH2 [=] CH + H2O
+
+
+ 1.130000E+04
+ 2
+ 3000.000000
+
+
+ CH2:1 OH:1.0
+ H2O:1 CH:1.0
+
+
+
+
+ OH + CH2(S) [=] H + CH2O
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ CH2(S):1 OH:1.0
+ CH2O:1 H:1.0
+
+
+
+
+ OH + CH3 (+ M) [=] CH3OH (+ M)
+
+
+ 6.300000E+10
+ 0
+ 0.000000
+
+
+ 2.700000E+32
+ -6.3
+ 3100.000000
+
+ C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.2105 83.5 5398 8370
+
+ CH3:1 OH:1.0
+ CH3OH:1.0
+
+
+
+
+ OH + CH3 [=] CH2 + H2O
+
+
+ 5.600000E+04
+ 1.6
+ 5420.000000
+
+
+ CH3:1 OH:1.0
+ CH2:1.0 H2O:1
+
+
+
+
+ OH + CH3 [=] CH2(S) + H2O
+
+
+ 2.501000E+10
+ 0
+ 0.000000
+
+
+ CH3:1 OH:1.0
+ CH2(S):1.0 H2O:1
+
+
+
+
+ OH + CH4 [=] CH3 + H2O
+
+
+ 1.000000E+05
+ 1.6
+ 3120.000000
+
+
+ CH4:1 OH:1.0
+ H2O:1 CH3:1.0
+
+
+
+
+ OH + CO [=] H + CO2
+
+
+ 4.760000E+04
+ 1.228
+ 70.000000
+
+
+ CO:1 OH:1.0
+ H:1.0 CO2:1
+
+
+
+
+ OH + HCO [=] H2O + CO
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ HCO:1 OH:1.0
+ H2O:1.0 CO:1
+
+
+
+
+ OH + CH2O [=] HCO + H2O
+
+
+ 3.430000E+06
+ 1.18
+ -447.000000
+
+
+ CH2O:1 OH:1.0
+ H2O:1 HCO:1.0
+
+
+
+
+ OH + CH2OH [=] H2O + CH2O
+
+
+ 5.000000E+09
+ 0
+ 0.000000
+
+
+ CH2OH:1 OH:1.0
+ CH2O:1 H2O:1.0
+
+
+
+
+ OH + CH3O [=] H2O + CH2O
+
+
+ 5.000000E+09
+ 0
+ 0.000000
+
+
+ CH3O:1 OH:1.0
+ CH2O:1 H2O:1.0
+
+
+
+
+ OH + CH3OH [=] CH2OH + H2O
+
+
+ 1.440000E+03
+ 2
+ -840.000000
+
+
+ CH3OH:1 OH:1.0
+ CH2OH:1.0 H2O:1
+
+
+
+
+ OH + CH3OH [=] CH3O + H2O
+
+
+ 6.300000E+03
+ 2
+ 1500.000000
+
+
+ CH3OH:1 OH:1.0
+ H2O:1 CH3O:1.0
+
+
+
+
+ OH + C2H [=] H + HCCO
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ C2H:1 OH:1.0
+ H:1.0 HCCO:1
+
+
+
+
+ OH + C2H2 [=] H + CH2CO
+
+
+ 2.180000E-07
+ 4.5
+ -1000.000000
+
+
+ C2H2:1 OH:1.0
+ H:1.0 CH2CO:1
+
+
+
+
+ OH + C2H2 [=] H + HCCOH
+
+
+ 5.040000E+02
+ 2.3
+ 13500.000000
+
+
+ C2H2:1 OH:1.0
+ H:1.0 HCCOH:1
+
+
+
+
+ OH + C2H2 [=] C2H + H2O
+
+
+ 3.370000E+04
+ 2
+ 14000.000000
+
+
+ C2H2:1 OH:1.0
+ C2H:1.0 H2O:1
+
+
+
+
+ OH + C2H2 [=] CH3 + CO
+
+
+ 4.830000E-07
+ 4
+ -2000.000000
+
+
+ C2H2:1 OH:1.0
+ CH3:1.0 CO:1
+
+
+
+
+ OH + C2H3 [=] H2O + C2H2
+
+
+ 5.000000E+09
+ 0
+ 0.000000
+
+
+ C2H3:1 OH:1.0
+ H2O:1.0 C2H2:1
+
+
+
+
+ OH + C2H4 [=] C2H3 + H2O
+
+
+ 3.600000E+03
+ 2
+ 2500.000000
+
+
+ C2H4:1 OH:1.0
+ H2O:1 C2H3:1.0
+
+
+
+
+ OH + C2H6 [=] C2H5 + H2O
+
+
+ 3.540000E+03
+ 2.12
+ 870.000000
+
+
+ C2H6:1 OH:1.0
+ C2H5:1.0 H2O:1
+
+
+
+
+ OH + CH2CO [=] HCCO + H2O
+
+
+ 7.500000E+09
+ 0
+ 2000.000000
+
+
+ CH2CO:1 OH:1.0
+ H2O:1 HCCO:1.0
+
+
+
+
+ 2 HO2 [=] O2 + H2O2
+
+
+ 1.300000E+08
+ 0
+ -1630.000000
+
+
+ HO2:2.0
+ O2:1.0 H2O2:1
+
+
+
+
+ 2 HO2 [=] O2 + H2O2
+
+
+ 4.200000E+11
+ 0
+ 12000.000000
+
+
+ HO2:2.0
+ O2:1.0 H2O2:1
+
+
+
+
+ HO2 + CH2 [=] OH + CH2O
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ CH2:1 HO2:1.0
+ CH2O:1 OH:1.0
+
+
+
+
+ HO2 + CH3 [=] O2 + CH4
+
+
+ 1.000000E+09
+ 0
+ 0.000000
+
+
+ CH3:1 HO2:1.0
+ CH4:1 O2:1.0
+
+
+
+
+ HO2 + CH3 [=] OH + CH3O
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ CH3:1 HO2:1.0
+ CH3O:1 OH:1.0
+
+
+
+
+ HO2 + CO [=] OH + CO2
+
+
+ 1.500000E+11
+ 0
+ 23600.000000
+
+
+ CO:1 HO2:1.0
+ CO2:1 OH:1.0
+
+
+
+
+ HO2 + CH2O [=] HCO + H2O2
+
+
+ 1.000000E+09
+ 0
+ 8000.000000
+
+
+ CH2O:1 HO2:1.0
+ HCO:1.0 H2O2:1
+
+
+
+
+ C + O2 [=] O + CO
+
+
+ 5.800000E+10
+ 0
+ 576.000000
+
+
+ C:1.0 O2:1
+ CO:1 O:1.0
+
+
+
+
+ C + CH2 [=] H + C2H
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ C:1.0 CH2:1
+ H:1.0 C2H:1
+
+
+
+
+ C + CH3 [=] H + C2H2
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ C:1.0 CH3:1
+ H:1.0 C2H2:1
+
+
+
+
+ CH + O2 [=] O + HCO
+
+
+ 3.300000E+10
+ 0
+ 0.000000
+
+
+ CH:1.0 O2:1
+ HCO:1 O:1.0
+
+
+
+
+ CH + H2 [=] H + CH2
+
+
+ 1.107000E+05
+ 1.79
+ 1670.000000
+
+
+ H2:1 CH:1.0
+ H:1.0 CH2:1
+
+
+
+
+ CH + H2O [=] H + CH2O
+
+
+ 1.713000E+10
+ 0
+ -755.000000
+
+
+ H2O:1 CH:1.0
+ CH2O:1 H:1.0
+
+
+
+
+ CH + CH2 [=] H + C2H2
+
+
+ 4.000000E+10
+ 0
+ 0.000000
+
+
+ CH2:1 CH:1.0
+ H:1.0 C2H2:1
+
+
+
+
+ CH + CH3 [=] H + C2H3
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ CH3:1 CH:1.0
+ H:1.0 C2H3:1
+
+
+
+
+ CH + CH4 [=] H + C2H4
+
+
+ 6.000000E+10
+ 0
+ 0.000000
+
+
+ CH:1.0 CH4:1
+ H:1.0 C2H4:1
+
+
+
+
+ CH + CO (+ M) [=] HCCO (+ M)
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ 2.690000E+22
+ -3.74
+ 1936.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.5757 237 1652 5069
+
+ CH:1.0 CO:1
+ HCCO:1.0
+
+
+
+
+ CH + CO2 [=] HCO + CO
+
+
+ 3.400000E+09
+ 0
+ 690.000000
+
+
+ CH:1.0 CO2:1
+ CO:1 HCO:1.0
+
+
+
+
+ CH + CH2O [=] H + CH2CO
+
+
+ 9.460000E+10
+ 0
+ -515.000000
+
+
+ CH2O:1 CH:1.0
+ H:1.0 CH2CO:1
+
+
+
+
+ CH + HCCO [=] CO + C2H2
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ CH:1.0 HCCO:1
+ CO:1.0 C2H2:1
+
+
+
+
+ CH2 + O2 [=] OH + HCO
+
+
+ 1.320000E+10
+ 0
+ 1500.000000
+
+
+ CH2:1.0 O2:1
+ HCO:1 OH:1.0
+
+
+
+
+ CH2 + H2 [=] H + CH3
+
+
+ 5.000000E+02
+ 2
+ 7230.000000
+
+
+ H2:1 CH2:1.0
+ H:1.0 CH3:1
+
+
+
+
+ 2 CH2 [=] H2 + C2H2
+
+
+ 3.200000E+10
+ 0
+ 0.000000
+
+
+ CH2:2.0
+ H2:1.0 C2H2:1
+
+
+
+
+ CH2 + CH3 [=] H + C2H4
+
+
+ 4.000000E+10
+ 0
+ 0.000000
+
+
+ CH2:1.0 CH3:1
+ H:1.0 C2H4:1
+
+
+
+
+ CH2 + CH4 [=] 2 CH3
+
+
+ 2.460000E+03
+ 2
+ 8270.000000
+
+
+ CH2:1.0 CH4:1
+ CH3:2.0
+
+
+
+
+ CH2 + CO (+ M) [=] CH2CO (+ M)
+
+
+ 8.100000E+08
+ 0.5
+ 4510.000000
+
+
+ 2.690000E+27
+ -5.11
+ 7095.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.5907 275 1226 5185
+
+ CH2:1.0 CO:1
+ CH2CO:1.0
+
+
+
+
+ CH2 + HCCO [=] C2H3 + CO
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ CH2:1.0 HCCO:1
+ CO:1 C2H3:1.0
+
+
+
+
+ CH2(S) + N2 [=] CH2 + N2
+
+
+ 1.500000E+10
+ 0
+ 600.000000
+
+
+ CH2(S):1.0 N2:1
+ CH2:1.0 N2:1
+
+
+
+
+ CH2(S) + AR [=] CH2 + AR
+
+
+ 9.000000E+09
+ 0
+ 600.000000
+
+
+ CH2(S):1.0 AR:1
+ CH2:1.0 AR:1
+
+
+
+
+ CH2(S) + O2 [=] H + OH + CO
+
+
+ 2.800000E+10
+ 0
+ 0.000000
+
+
+ CH2(S):1.0 O2:1
+ H:1.0 CO:1 OH:1
+
+
+
+
+ CH2(S) + O2 [=] CO + H2O
+
+
+ 1.200000E+10
+ 0
+ 0.000000
+
+
+ CH2(S):1.0 O2:1
+ H2O:1 CO:1.0
+
+
+
+
+ CH2(S) + H2 [=] CH3 + H
+
+
+ 7.000000E+10
+ 0
+ 0.000000
+
+
+ H2:1 CH2(S):1.0
+ H:1 CH3:1.0
+
+
+
+
+ CH2(S) + H2O (+ M) [=] CH3OH (+ M)
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ 2.700000E+32
+ -6.3
+ 3100.000000
+
+ C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.1507 134 2383 7265
+
+ CH2(S):1.0 H2O:1
+ CH3OH:1.0
+
+
+
+
+ CH2(S) + H2O [=] CH2 + H2O
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ CH2(S):1.0 H2O:1
+ CH2:1.0 H2O:1
+
+
+
+
+ CH2(S) + CH3 [=] H + C2H4
+
+
+ 1.200000E+10
+ 0
+ -570.000000
+
+
+ CH2(S):1.0 CH3:1
+ H:1.0 C2H4:1
+
+
+
+
+ CH2(S) + CH4 [=] 2 CH3
+
+
+ 1.600000E+10
+ 0
+ -570.000000
+
+
+ CH2(S):1.0 CH4:1
+ CH3:2.0
+
+
+
+
+ CH2(S) + CO [=] CH2 + CO
+
+
+ 9.000000E+09
+ 0
+ 0.000000
+
+
+ CH2(S):1.0 CO:1
+ CH2:1.0 CO:1
+
+
+
+
+ CH2(S) + CO2 [=] CH2 + CO2
+
+
+ 7.000000E+09
+ 0
+ 0.000000
+
+
+ CH2(S):1.0 CO2:1
+ CH2:1.0 CO2:1
+
+
+
+
+ CH2(S) + CO2 [=] CO + CH2O
+
+
+ 1.400000E+10
+ 0
+ 0.000000
+
+
+ CH2(S):1.0 CO2:1
+ CH2O:1 CO:1.0
+
+
+
+
+ CH2(S) + C2H6 [=] CH3 + C2H5
+
+
+ 4.000000E+10
+ 0
+ -550.000000
+
+
+ CH2(S):1.0 C2H6:1
+ C2H5:1 CH3:1.0
+
+
+
+
+ CH3 + O2 [=] O + CH3O
+
+
+ 2.675000E+10
+ 0
+ 28800.000000
+
+
+ CH3:1.0 O2:1
+ CH3O:1 O:1.0
+
+
+
+
+ CH3 + O2 [=] OH + CH2O
+
+
+ 3.600000E+07
+ 0
+ 8940.000000
+
+
+ CH3:1.0 O2:1
+ CH2O:1 OH:1.0
+
+
+
+
+ CH3 + H2O2 [=] HO2 + CH4
+
+
+ 2.450000E+01
+ 2.47
+ 5180.000000
+
+
+ CH3:1.0 H2O2:1
+ CH4:1 HO2:1.0
+
+
+
+
+ 2 CH3 (+ M) [=] C2H6 (+ M)
+
+
+ 2.120000E+13
+ -0.97
+ 620.000000
+
+
+ 1.770000E+44
+ -9.67
+ 6220.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.5325 151 1038 4970
+
+ CH3:2.0
+ C2H6:1.0
+
+
+
+
+ 2 CH3 [=] H + C2H5
+
+
+ 4.990000E+09
+ 0.1
+ 10600.000000
+
+
+ CH3:2.0
+ H:1.0 C2H5:1
+
+
+
+
+ CH3 + HCO [=] CH4 + CO
+
+
+ 2.648000E+10
+ 0
+ 0.000000
+
+
+ CH3:1.0 HCO:1
+ CO:1 CH4:1.0
+
+
+
+
+ CH3 + CH2O [=] HCO + CH4
+
+
+ 3.320000E+00
+ 2.81
+ 5860.000000
+
+
+ CH2O:1 CH3:1.0
+ CH4:1 HCO:1.0
+
+
+
+
+ CH3 + CH3OH [=] CH2OH + CH4
+
+
+ 3.000000E+04
+ 1.5
+ 9940.000000
+
+
+ CH3OH:1 CH3:1.0
+ CH2OH:1.0 CH4:1
+
+
+
+
+ CH3 + CH3OH [=] CH3O + CH4
+
+
+ 1.000000E+04
+ 1.5
+ 9940.000000
+
+
+ CH3OH:1 CH3:1.0
+ CH3O:1.0 CH4:1
+
+
+
+
+ CH3 + C2H4 [=] C2H3 + CH4
+
+
+ 2.270000E+02
+ 2
+ 9200.000000
+
+
+ CH3:1.0 C2H4:1
+ CH4:1 C2H3:1.0
+
+
+
+
+ CH3 + C2H6 [=] C2H5 + CH4
+
+
+ 6.140000E+03
+ 1.74
+ 10450.000000
+
+
+ C2H6:1 CH3:1.0
+ C2H5:1.0 CH4:1
+
+
+
+
+ HCO + H2O [=] H + CO + H2O
+
+
+ 2.244000E+15
+ -1
+ 17000.000000
+
+
+ H2O:1 HCO:1.0
+ H:1.0 H2O:1 CO:1
+
+
+
+
+ HCO + M [=] H + CO + M
+
+
+ 1.870000E+14
+ -1
+ 17000.000000
+
+ C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:0
+
+ HCO:1.0
+ H:1.0 CO:1
+
+
+
+
+ HCO + O2 [=] HO2 + CO
+
+
+ 7.600000E+09
+ 0
+ 400.000000
+
+
+ HCO:1.0 O2:1
+ CO:1 HO2:1.0
+
+
+
+
+ CH2OH + O2 [=] HO2 + CH2O
+
+
+ 1.800000E+10
+ 0
+ 900.000000
+
+
+ CH2OH:1.0 O2:1
+ CH2O:1 HO2:1.0
+
+
+
+
+ CH3O + O2 [=] HO2 + CH2O
+
+
+ 4.280000E-16
+ 7.6
+ -3530.000000
+
+
+ CH3O:1.0 O2:1
+ CH2O:1 HO2:1.0
+
+
+
+
+ C2H + O2 [=] HCO + CO
+
+
+ 5.000000E+10
+ 0
+ 1500.000000
+
+
+ C2H:1.0 O2:1
+ CO:1 HCO:1.0
+
+
+
+
+ C2H + H2 [=] H + C2H2
+
+
+ 4.070000E+02
+ 2.4
+ 200.000000
+
+
+ H2:1 C2H:1.0
+ H:1.0 C2H2:1
+
+
+
+
+ C2H3 + O2 [=] HCO + CH2O
+
+
+ 3.980000E+09
+ 0
+ -240.000000
+
+
+ C2H3:1.0 O2:1
+ CH2O:1 HCO:1.0
+
+
+
+
+ C2H4 (+ M) [=] H2 + C2H2 (+ M)
+
+
+ 8.000000E+12
+ 0.44
+ 88770.000000
+
+
+ 7.000000E+47
+ -9.31
+ 99860.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.7345 180 1035 5417
+
+ C2H4:1.0
+ H2:1.0 C2H2:1
+
+
+
+
+ C2H5 + O2 [=] HO2 + C2H4
+
+
+ 8.400000E+08
+ 0
+ 3875.000000
+
+
+ C2H5:1.0 O2:1
+ C2H4:1 HO2:1.0
+
+
+
+
+ HCCO + O2 [=] OH + 2 CO
+
+
+ 1.600000E+09
+ 0
+ 854.000000
+
+
+ HCCO:1.0 O2:1
+ CO:2.0 OH:1.0
+
+
+
+
+ 2 HCCO [=] 2 CO + C2H2
+
+
+ 1.000000E+10
+ 0
+ 0.000000
+
+
+ HCCO:2.0
+ CO:2.0 C2H2:1
+
+
+
+
+ N + NO [=] N2 + O
+
+
+ 3.500000E+10
+ 0
+ 330.000000
+
+
+ NO:1 N:1.0
+ N2:1.0 O:1
+
+
+
+
+ N + O2 [=] NO + O
+
+
+ 2.650000E+09
+ 0
+ 6400.000000
+
+
+ O2:1 N:1.0
+ O:1 NO:1.0
+
+
+
+
+ N + OH [=] NO + H
+
+
+ 7.333000E+10
+ 0
+ 1120.000000
+
+
+ OH:1 N:1.0
+ H:1 NO:1.0
+
+
+
+
+ N2O + O [=] N2 + O2
+
+
+ 1.400000E+09
+ 0
+ 10810.000000
+
+
+ N2O:1.0 O:1
+ N2:1.0 O2:1
+
+
+
+
+ N2O + O [=] 2 NO
+
+
+ 2.900000E+10
+ 0
+ 23150.000000
+
+
+ N2O:1.0 O:1
+ NO:2.0
+
+
+
+
+ N2O + H [=] N2 + OH
+
+
+ 4.400000E+11
+ 0
+ 18880.000000
+
+
+ H:1 N2O:1.0
+ N2:1.0 OH:1
+
+
+
+
+ N2O + OH [=] N2 + HO2
+
+
+ 2.000000E+09
+ 0
+ 21060.000000
+
+
+ N2O:1.0 OH:1
+ N2:1.0 HO2:1
+
+
+
+
+ N2O (+ M) [=] N2 + O (+ M)
+
+
+ 1.300000E+11
+ 0
+ 59620.000000
+
+
+ 6.200000E+11
+ 0
+ 56100.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+
+ N2O:1.0
+ N2:1.0 O:1
+
+
+
+
+ HO2 + NO [=] NO2 + OH
+
+
+ 2.110000E+09
+ 0
+ -480.000000
+
+
+ HO2:1.0 NO:1
+ NO2:1.0 OH:1
+
+
+
+
+ NO + O + M [=] NO2 + M
+
+
+ 1.060000E+14
+ -1.41
+ 0.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ O:1 NO:1.0
+ NO2:1.0
+
+
+
+
+ NO2 + O [=] NO + O2
+
+
+ 3.900000E+09
+ 0
+ -240.000000
+
+
+ O:1 NO2:1.0
+ O2:1 NO:1.0
+
+
+
+
+ NO2 + H [=] NO + OH
+
+
+ 1.320000E+11
+ 0
+ 360.000000
+
+
+ H:1 NO2:1.0
+ OH:1 NO:1.0
+
+
+
+
+ NH + O [=] NO + H
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ NH:1.0 O:1
+ H:1 NO:1.0
+
+
+
+
+ NH + H [=] N + H2
+
+
+ 3.200000E+10
+ 0
+ 330.000000
+
+
+ NH:1.0 H:1
+ H2:1 N:1.0
+
+
+
+
+ NH + OH [=] HNO + H
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ NH:1.0 OH:1
+ H:1 HNO:1.0
+
+
+
+
+ NH + OH [=] N + H2O
+
+
+ 2.000000E+06
+ 1.2
+ 0.000000
+
+
+ NH:1.0 OH:1
+ H2O:1 N:1.0
+
+
+
+
+ NH + O2 [=] HNO + O
+
+
+ 4.610000E+02
+ 2
+ 6500.000000
+
+
+ NH:1.0 O2:1
+ O:1 HNO:1.0
+
+
+
+
+ NH + O2 [=] NO + OH
+
+
+ 1.280000E+03
+ 1.5
+ 100.000000
+
+
+ NH:1.0 O2:1
+ OH:1 NO:1.0
+
+
+
+
+ NH + N [=] N2 + H
+
+
+ 1.500000E+10
+ 0
+ 0.000000
+
+
+ NH:1.0 N:1
+ H:1 N2:1.0
+
+
+
+
+ NH + H2O [=] HNO + H2
+
+
+ 2.000000E+10
+ 0
+ 13850.000000
+
+
+ NH:1.0 H2O:1
+ H2:1 HNO:1.0
+
+
+
+
+ NH + NO [=] N2 + OH
+
+
+ 2.160000E+10
+ -0.23
+ 0.000000
+
+
+ NH:1.0 NO:1
+ N2:1.0 OH:1
+
+
+
+
+ NH + NO [=] N2O + H
+
+
+ 4.160000E+11
+ -0.45
+ 0.000000
+
+
+ NH:1.0 NO:1
+ H:1 N2O:1.0
+
+
+
+
+ NH2 + O [=] OH + NH
+
+
+ 7.000000E+09
+ 0
+ 0.000000
+
+
+ O:1 NH2:1.0
+ NH:1 OH:1.0
+
+
+
+
+ NH2 + O [=] H + HNO
+
+
+ 4.600000E+10
+ 0
+ 0.000000
+
+
+ O:1 NH2:1.0
+ H:1.0 HNO:1
+
+
+
+
+ NH2 + H [=] NH + H2
+
+
+ 4.000000E+10
+ 0
+ 3650.000000
+
+
+ H:1 NH2:1.0
+ NH:1.0 H2:1
+
+
+
+
+ NH2 + OH [=] NH + H2O
+
+
+ 9.000000E+04
+ 1.5
+ -460.000000
+
+
+ OH:1 NH2:1.0
+ NH:1.0 H2O:1
+
+
+
+
+ NNH [=] N2 + H
+
+
+ 3.300000E+08
+ 0
+ 0.000000
+
+
+ NNH:1.0
+ H:1 N2:1.0
+
+
+
+
+ NNH + M [=] N2 + H + M
+
+
+ 1.300000E+11
+ -0.11
+ 4980.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ NNH:1.0
+ H:1 N2:1.0
+
+
+
+
+ NNH + O2 [=] HO2 + N2
+
+
+ 5.000000E+09
+ 0
+ 0.000000
+
+
+ O2:1 NNH:1.0
+ N2:1 HO2:1.0
+
+
+
+
+ NNH + O [=] OH + N2
+
+
+ 2.500000E+10
+ 0
+ 0.000000
+
+
+ O:1 NNH:1.0
+ N2:1 OH:1.0
+
+
+
+
+ NNH + O [=] NH + NO
+
+
+ 7.000000E+10
+ 0
+ 0.000000
+
+
+ O:1 NNH:1.0
+ NH:1.0 NO:1
+
+
+
+
+ NNH + H [=] H2 + N2
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ H:1 NNH:1.0
+ H2:1.0 N2:1
+
+
+
+
+ NNH + OH [=] H2O + N2
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ OH:1 NNH:1.0
+ H2O:1.0 N2:1
+
+
+
+
+ NNH + CH3 [=] CH4 + N2
+
+
+ 2.500000E+10
+ 0
+ 0.000000
+
+
+ CH3:1 NNH:1.0
+ N2:1 CH4:1.0
+
+
+
+
+ H + NO + M [=] HNO + M
+
+
+ 8.950000E+13
+ -1.32
+ 740.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ H:1.0 NO:1
+ HNO:1.0
+
+
+
+
+ HNO + O [=] NO + OH
+
+
+ 2.500000E+10
+ 0
+ 0.000000
+
+
+ O:1 HNO:1.0
+ OH:1 NO:1.0
+
+
+
+
+ HNO + H [=] H2 + NO
+
+
+ 4.500000E+08
+ 0.72
+ 660.000000
+
+
+ H:1 HNO:1.0
+ H2:1.0 NO:1
+
+
+
+
+ HNO + OH [=] NO + H2O
+
+
+ 1.300000E+04
+ 1.9
+ -950.000000
+
+
+ HNO:1.0 OH:1
+ H2O:1 NO:1.0
+
+
+
+
+ HNO + O2 [=] HO2 + NO
+
+
+ 1.000000E+10
+ 0
+ 13000.000000
+
+
+ O2:1 HNO:1.0
+ HO2:1.0 NO:1
+
+
+
+
+ CN + O [=] CO + N
+
+
+ 7.700000E+10
+ 0
+ 0.000000
+
+
+ CN:1.0 O:1
+ CO:1.0 N:1
+
+
+
+
+ CN + OH [=] NCO + H
+
+
+ 4.000000E+10
+ 0
+ 0.000000
+
+
+ CN:1.0 OH:1
+ H:1 NCO:1.0
+
+
+
+
+ CN + H2O [=] HCN + OH
+
+
+ 8.000000E+09
+ 0
+ 7460.000000
+
+
+ H2O:1 CN:1.0
+ HCN:1.0 OH:1
+
+
+
+
+ CN + O2 [=] NCO + O
+
+
+ 6.140000E+09
+ 0
+ -440.000000
+
+
+ CN:1.0 O2:1
+ O:1 NCO:1.0
+
+
+
+
+ CN + H2 [=] HCN + H
+
+
+ 2.100000E+10
+ 0
+ 4710.000000
+
+
+ H2:1 CN:1.0
+ H:1 HCN:1.0
+
+
+
+
+ NCO + O [=] NO + CO
+
+
+ 2.350000E+10
+ 0
+ 0.000000
+
+
+ O:1 NCO:1.0
+ CO:1 NO:1.0
+
+
+
+
+ NCO + H [=] NH + CO
+
+
+ 5.400000E+10
+ 0
+ 0.000000
+
+
+ H:1 NCO:1.0
+ NH:1.0 CO:1
+
+
+
+
+ NCO + OH [=] NO + H + CO
+
+
+ 2.500000E+09
+ 0
+ 0.000000
+
+
+ OH:1 NCO:1.0
+ H:1 CO:1 NO:1.0
+
+
+
+
+ NCO + N [=] N2 + CO
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ N:1 NCO:1.0
+ N2:1.0 CO:1
+
+
+
+
+ NCO + O2 [=] NO + CO2
+
+
+ 2.000000E+09
+ 0
+ 20000.000000
+
+
+ O2:1 NCO:1.0
+ CO2:1 NO:1.0
+
+
+
+
+ NCO + M [=] N + CO + M
+
+
+ 8.800000E+13
+ -0.5
+ 48000.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ NCO:1.0
+ CO:1 N:1.0
+
+
+
+
+ NCO + NO [=] N2O + CO
+
+
+ 2.850000E+14
+ -1.52
+ 740.000000
+
+
+ NO:1 NCO:1.0
+ CO:1 N2O:1.0
+
+
+
+
+ NCO + NO [=] N2 + CO2
+
+
+ 5.700000E+15
+ -2
+ 800.000000
+
+
+ NO:1 NCO:1.0
+ N2:1.0 CO2:1
+
+
+
+
+ HCN + M [=] H + CN + M
+
+
+ 1.040000E+26
+ -3.3
+ 126600.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ HCN:1.0
+ H:1.0 CN:1
+
+
+
+
+ HCN + O [=] NCO + H
+
+
+ 1.107000E+01
+ 2.64
+ 4980.000000
+
+
+ HCN:1.0 O:1
+ H:1 NCO:1.0
+
+
+
+
+ HCN + O [=] NH + CO
+
+
+ 2.767000E+00
+ 2.64
+ 4980.000000
+
+
+ HCN:1.0 O:1
+ NH:1.0 CO:1
+
+
+
+
+ HCN + O [=] CN + OH
+
+
+ 2.134000E+06
+ 1.58
+ 26600.000000
+
+
+ HCN:1.0 O:1
+ CN:1.0 OH:1
+
+
+
+
+ HCN + OH [=] HOCN + H
+
+
+ 1.100000E+03
+ 2.03
+ 13370.000000
+
+
+ HCN:1.0 OH:1
+ HOCN:1.0 H:1
+
+
+
+
+ HCN + OH [=] HNCO + H
+
+
+ 4.400000E+00
+ 2.26
+ 6400.000000
+
+
+ HCN:1.0 OH:1
+ HNCO:1.0 H:1
+
+
+
+
+ HCN + OH [=] NH2 + CO
+
+
+ 1.600000E-01
+ 2.56
+ 9000.000000
+
+
+ HCN:1.0 OH:1
+ CO:1 NH2:1.0
+
+
+
+
+ H + HCN + M [=] H2CN + M
+
+
+ 1.400000E+20
+ -3.4
+ 1900.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ H:1.0 HCN:1
+ H2CN:1.0
+
+
+
+
+ H2CN + N [=] N2 + CH2
+
+
+ 6.000000E+10
+ 0
+ 400.000000
+
+
+ H2CN:1.0 N:1
+ N2:1.0 CH2:1
+
+
+
+
+ C + N2 [=] CN + N
+
+
+ 6.300000E+10
+ 0
+ 46020.000000
+
+
+ C:1.0 N2:1
+ CN:1.0 N:1
+
+
+
+
+ CH + N2 [=] HCN + N
+
+
+ 2.857000E+05
+ 1.1
+ 20400.000000
+
+
+ N2:1 CH:1.0
+ HCN:1.0 N:1
+
+
+
+
+ CH + N2 (+ M) [=] HCNN (+ M)
+
+
+ 3.100000E+09
+ 0.15
+ 0.000000
+
+
+ 1.300000E+19
+ -3.16
+ 740.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+ 0.667 235 2117 4536
+
+ N2:1 CH:1.0
+ HCNN:1.0
+
+
+
+
+ CH2 + N2 [=] HCN + NH
+
+
+ 1.000000E+10
+ 0
+ 74000.000000
+
+
+ CH2:1.0 N2:1
+ NH:1 HCN:1.0
+
+
+
+
+ CH2(S) + N2 [=] NH + HCN
+
+
+ 1.000000E+08
+ 0
+ 65000.000000
+
+
+ CH2(S):1.0 N2:1
+ NH:1.0 HCN:1
+
+
+
+
+ C + NO [=] CN + O
+
+
+ 1.900000E+10
+ 0
+ 0.000000
+
+
+ C:1.0 NO:1
+ CN:1.0 O:1
+
+
+
+
+ C + NO [=] CO + N
+
+
+ 2.900000E+10
+ 0
+ 0.000000
+
+
+ C:1.0 NO:1
+ CO:1.0 N:1
+
+
+
+
+ CH + NO [=] HCN + O
+
+
+ 5.000000E+10
+ 0
+ 0.000000
+
+
+ CH:1.0 NO:1
+ HCN:1.0 O:1
+
+
+
+
+ CH + NO [=] H + NCO
+
+
+ 2.000000E+10
+ 0
+ 0.000000
+
+
+ CH:1.0 NO:1
+ H:1.0 NCO:1
+
+
+
+
+ CH + NO [=] N + HCO
+
+
+ 3.000000E+10
+ 0
+ 0.000000
+
+
+ CH:1.0 NO:1
+ HCO:1 N:1.0
+
+
+
+
+ CH2 + NO [=] H + HNCO
+
+
+ 3.100000E+14
+ -1.38
+ 1270.000000
+
+
+ CH2:1.0 NO:1
+ HNCO:1 H:1.0
+
+
+
+
+ CH2 + NO [=] OH + HCN
+
+
+ 2.900000E+11
+ -0.69
+ 760.000000
+
+
+ CH2:1.0 NO:1
+ HCN:1 OH:1.0
+
+
+
+
+ CH2 + NO [=] H + HCNO
+
+
+ 3.800000E+10
+ -0.36
+ 580.000000
+
+
+ CH2:1.0 NO:1
+ H:1.0 HCNO:1
+
+
+
+
+ CH2(S) + NO [=] H + HNCO
+
+
+ 3.100000E+14
+ -1.38
+ 1270.000000
+
+
+ CH2(S):1.0 NO:1
+ HNCO:1 H:1.0
+
+
+
+
+ CH2(S) + NO [=] OH + HCN
+
+
+ 2.900000E+11
+ -0.69
+ 760.000000
+
+
+ CH2(S):1.0 NO:1
+ HCN:1 OH:1.0
+
+
+
+
+ CH2(S) + NO [=] H + HCNO
+
+
+ 3.800000E+10
+ -0.36
+ 580.000000
+
+
+ CH2(S):1.0 NO:1
+ H:1.0 HCNO:1
+
+
+
+
+ CH3 + NO [=] HCN + H2O
+
+
+ 9.600000E+10
+ 0
+ 28800.000000
+
+
+ CH3:1.0 NO:1
+ H2O:1 HCN:1.0
+
+
+
+
+ CH3 + NO [=] H2CN + OH
+
+
+ 1.000000E+09
+ 0
+ 21750.000000
+
+
+ CH3:1.0 NO:1
+ H2CN:1.0 OH:1
+
+
+
+
+ HCNN + O [=] CO + H + N2
+
+
+ 2.200000E+10
+ 0
+ 0.000000
+
+
+ O:1 HCNN:1.0
+ H:1 N2:1 CO:1.0
+
+
+
+
+ HCNN + O [=] HCN + NO
+
+
+ 2.000000E+09
+ 0
+ 0.000000
+
+
+ O:1 HCNN:1.0
+ HCN:1.0 NO:1
+
+
+
+
+ HCNN + O2 [=] O + HCO + N2
+
+
+ 1.200000E+10
+ 0
+ 0.000000
+
+
+ O2:1 HCNN:1.0
+ N2:1 HCO:1 O:1.0
+
+
+
+
+ HCNN + OH [=] H + HCO + N2
+
+
+ 1.200000E+10
+ 0
+ 0.000000
+
+
+ OH:1 HCNN:1.0
+ H:1.0 N2:1 HCO:1
+
+
+
+
+ HCNN + H [=] CH2 + N2
+
+
+ 1.000000E+11
+ 0
+ 0.000000
+
+
+ H:1 HCNN:1.0
+ CH2:1.0 N2:1
+
+
+
+
+ HNCO + O [=] NH + CO2
+
+
+ 9.800000E+04
+ 1.41
+ 8500.000000
+
+
+ HNCO:1.0 O:1
+ NH:1.0 CO2:1
+
+
+
+
+ HNCO + O [=] HNO + CO
+
+
+ 1.500000E+05
+ 1.57
+ 44000.000000
+
+
+ HNCO:1.0 O:1
+ CO:1 HNO:1.0
+
+
+
+
+ HNCO + O [=] NCO + OH
+
+
+ 2.200000E+03
+ 2.11
+ 11400.000000
+
+
+ HNCO:1.0 O:1
+ OH:1 NCO:1.0
+
+
+
+
+ HNCO + H [=] NH2 + CO
+
+
+ 2.250000E+04
+ 1.7
+ 3800.000000
+
+
+ HNCO:1.0 H:1
+ CO:1 NH2:1.0
+
+
+
+
+ HNCO + H [=] H2 + NCO
+
+
+ 1.050000E+02
+ 2.5
+ 13300.000000
+
+
+ HNCO:1.0 H:1
+ H2:1.0 NCO:1
+
+
+
+
+ HNCO + OH [=] NCO + H2O
+
+
+ 4.650000E+09
+ 0
+ 6850.000000
+
+
+ HNCO:1.0 OH:1
+ H2O:1 NCO:1.0
+
+
+
+
+ HNCO + OH [=] NH2 + CO2
+
+
+ 1.550000E+09
+ 0
+ 6850.000000
+
+
+ HNCO:1.0 OH:1
+ CO2:1 NH2:1.0
+
+
+
+
+ HNCO + M [=] NH + CO + M
+
+
+ 1.180000E+13
+ 0
+ 84720.000000
+
+ AR:0.7 C2H6:3 CH4:2 CO:1.5 CO2:2 H2:2 H2O:6
+
+ HNCO:1.0
+ NH:1.0 CO:1
+
+
+
+
+ HCNO + H [=] H + HNCO
+
+
+ 2.100000E+12
+ -0.69
+ 2850.000000
+
+
+ H:1 HCNO:1.0
+ HNCO:1 H:1.0
+
+
+
+
+ HCNO + H [=] OH + HCN
+
+
+ 2.700000E+08
+ 0.18
+ 2120.000000
+
+
+ H:1 HCNO:1.0
+ HCN:1 OH:1.0
+
+
+
+
+ HCNO + H [=] NH2 + CO
+
+
+ 1.700000E+11
+ -0.75
+ 2890.000000
+
+
+ H:1 HCNO:1.0
+ CO:1 NH2:1.0
+
+
+
+
+ HOCN + H [=] H + HNCO
+
+
+ 2.000000E+04
+ 2
+ 2000.000000
+
+
+ HOCN:1.0 H:1
+ HNCO:1 H:1.0
+
+
+
+
+ HCCO + NO [=] HCNO + CO
+
+
+ 2.350000E+10
+ 0
+ 0.000000
+
+
+ HCCO:1.0 NO:1
+ CO:1 HCNO:1.0
+
+
+
+
+ CH3 + N [=] H2CN + H
+
+
+ 6.100000E+11
+ -0.31
+ 290.000000
+
+
+ CH3:1.0 N:1
+ H:1 H2CN:1.0
+
+
+
+
+ CH3 + N [=] HCN + H2
+
+
+ 3.700000E+09
+ 0.15
+ -90.000000
+
+
+ CH3:1.0 N:1
+ H2:1 HCN:1.0
+
+
+
+
+ NH3 + H [=] NH2 + H2
+
+
+ 5.400000E+02
+ 2.4
+ 9915.000000
+
+
+ H:1 NH3:1.0
+ H2:1 NH2:1.0
+
+
+
+
+ NH3 + OH [=] NH2 + H2O
+
+
+ 5.000000E+04
+ 1.6
+ 955.000000
+
+
+ NH3:1.0 OH:1
+ H2O:1 NH2:1.0
+
+
+
+
+ NH3 + O [=] NH2 + OH
+
+
+ 9.400000E+03
+ 1.94
+ 6460.000000
+
+
+ O:1 NH3:1.0
+ OH:1 NH2:1.0
+
+
+
diff --git a/demos/PFR/Gas/Gas_PFR.yaml b/demos/PFR/Gas/Gas_PFR.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4e30a7f6099b18580f274571967b16c8e5c3596f
--- /dev/null
+++ b/demos/PFR/Gas/Gas_PFR.yaml
@@ -0,0 +1,36 @@
+Cantera:
+ GroupName: h2-burke
+ InputFile: h2-burke.xml
+ReactionInGas: True
+InitialConditions:
+- value: 1000
+ variable: T
+- value: 101325
+ variable: p
+- value: 0.295774648
+ variable: X_H2
+- value: 0.147887324
+ variable: X_O2
+- value: 0.556338028
+ variable: X_N2
+- value: 0.5
+ variable: u
+Output:
+ dualtime_interval: 1
+ time_interval: 1
+ Fields:
+ - name: ds
+ - name: p
+TimeIntegrator:
+ dsInitial: 1e-10
+ GESAT_Max: 1e2
+ GESAT_Ramp: 1.1
+ GESAT_Safety: 0.1
+ end_time: 8e-4
+ timestep: 1e-7
+ tolerance: 1e-5
+ReactorParameters:
+ ReactorType: PFR
+ ReactorShape: Cylinder
+ Radius: 0.001
+ Height: 0.001
diff --git a/demos/PFR/Gas/h2-burke.xml b/demos/PFR/Gas/h2-burke.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f0622bda10be051c5c71f67f6e10ac7ebf614c2c
--- /dev/null
+++ b/demos/PFR/Gas/h2-burke.xml
@@ -0,0 +1,708 @@
+
+
+
+
+
+
+ H O N Ar He C
+
+ H H2 O OH H2O O2 HO2 H2O2 N2 AR
+ HE
+
+
+ 300.0
+ 101325.0
+
+
+
+
+
+
+
+
+
+
+
+ H:1
+ 120186
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, 2.547163000E+04, -4.601176000E-01
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, 2.547163000E+04, -4.601176000E-01
+
+
+
+ atom
+ 145.000
+ 2.050
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:2
+ 121286
+
+
+
+ 3.298124000E+00, 8.249442000E-04, -8.143015000E-07, -9.475434000E-11,
+ 4.134872000E-13, -1.012521000E+03, -3.294094000E+00
+
+
+
+ 2.991423000E+00, 7.000644000E-04, -5.633829000E-08, -9.231578000E-12,
+ 1.582752000E-15, -8.350340000E+02, -1.355110000E+00
+
+
+
+ linear
+ 38.000
+ 2.920
+ 0.000
+ 0.790
+ 280.000
+
+
+
+
+
+ O:1
+ 120186
+
+
+
+ 2.946429000E+00, -1.638166000E-03, 2.421032000E-06, -1.602843000E-09,
+ 3.890696000E-13, 2.914764000E+04, 2.963995000E+00
+
+
+
+ 2.542060000E+00, -2.755062000E-05, -3.102803000E-09, 4.551067000E-12,
+ -4.368052000E-16, 2.923080000E+04, 4.920308000E+00
+
+
+
+ atom
+ 80.000
+ 2.750
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:1 O:1
+ S 9/01
+
+
+
+ 4.125305610E+00, -3.225449390E-03, 6.527646910E-06, -5.798536430E-09,
+ 2.062373790E-12, 3.346309130E+03, -6.904329600E-01
+
+
+
+ 2.864728860E+00, 1.056504480E-03, -2.590827580E-07, 3.052186740E-11,
+ -1.331958760E-15, 3.683628750E+03, 5.701640730E+00
+
+
+
+ linear
+ 80.000
+ 2.750
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ H:2 O:1
+ 20387
+
+
+
+ 3.386842000E+00, 3.474982000E-03, -6.354696000E-06, 6.968581000E-09,
+ -2.506588000E-12, -3.020811000E+04, 2.590233000E+00
+
+
+
+ 2.672146000E+00, 3.056293000E-03, -8.730260000E-07, 1.200996000E-10,
+ -6.391618000E-15, -2.989921000E+04, 6.862817000E+00
+
+
+
+ nonlinear
+ 572.400
+ 2.605
+ 1.844
+ 0.000
+ 4.000
+
+
+
+
+
+ O:2
+ 121386
+
+
+
+ 3.212936000E+00, 1.127486000E-03, -5.756150000E-07, 1.313877000E-09,
+ -8.768554000E-13, -1.005249000E+03, 6.034738000E+00
+
+
+
+ 3.697578000E+00, 6.135197000E-04, -1.258842000E-07, 1.775281000E-11,
+ -1.136435000E-15, -1.233930000E+03, 3.189166000E+00
+
+
+
+ linear
+ 107.400
+ 3.458
+ 0.000
+ 1.600
+ 3.800
+
+
+
+
+
+ H:1 O:2
+ L 5/89
+
+
+
+ 4.301798010E+00, -4.749120510E-03, 2.115828910E-05, -2.427638940E-08,
+ 9.292251240E-12, 2.948080400E+02, 3.716662450E+00
+
+
+
+ 4.017210900E+00, 2.239820130E-03, -6.336581500E-07, 1.142463700E-10,
+ -1.079085350E-14, 1.118567130E+02, 3.785102150E+00
+
+
+
+ nonlinear
+ 107.400
+ 3.458
+ 0.000
+ 0.000
+ 1.000
+
+
+
+
+
+ H:2 O:2
+ 120186
+
+
+
+ 3.388754000E+00, 6.569226000E-03, -1.485013000E-07, -4.625806000E-09,
+ 2.471515000E-12, -1.766315000E+04, 6.785363000E+00
+
+
+
+ 4.573167000E+00, 4.336136000E-03, -1.474689000E-06, 2.348904000E-10,
+ -1.431654000E-14, -1.800696000E+04, 5.011370000E-01
+
+
+
+ nonlinear
+ 107.400
+ 3.458
+ 0.000
+ 0.000
+ 3.800
+
+
+
+
+
+ N:2
+ 121286
+
+
+
+ 3.298677000E+00, 1.408240000E-03, -3.963222000E-06, 5.641515000E-09,
+ -2.444855000E-12, -1.020900000E+03, 3.950372000E+00
+
+
+
+ 2.926640000E+00, 1.487977000E-03, -5.684761000E-07, 1.009704000E-10,
+ -6.753351000E-15, -9.227977000E+02, 5.980528000E+00
+
+
+
+ linear
+ 97.530
+ 3.621
+ 0.000
+ 1.760
+ 4.000
+
+
+
+
+
+ Ar:1
+ 120186
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, -7.453750000E+02, 4.366001000E+00
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, -7.453750000E+02, 4.366001000E+00
+
+
+
+ atom
+ 136.500
+ 3.330
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+ He:1
+ 120186
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, -7.453750000E+02, 9.153488000E-01
+
+
+
+ 2.500000000E+00, 0.000000000E+00, 0.000000000E+00, 0.000000000E+00,
+ 0.000000000E+00, -7.453750000E+02, 9.153489000E-01
+
+
+
+ atom
+ 10.200
+ 2.576
+ 0.000
+ 0.000
+ 0.000
+
+
+
+
+
+
+
+ H + O2 [=] O + OH
+
+
+ 1.040000E+11
+ 0
+ 15286.000000
+
+
+ H:1.0 O2:1
+ O:1.0 OH:1
+
+
+
+
+ O + H2 [=] H + OH
+
+
+ 3.818000E+09
+ 0
+ 7948.000000
+
+
+ H2:1 O:1.0
+ H:1.0 OH:1
+
+
+
+
+ O + H2 [=] H + OH
+
+
+ 8.792000E+11
+ 0
+ 19170.000000
+
+
+ H2:1 O:1.0
+ H:1.0 OH:1
+
+
+
+
+ H2 + OH [=] H2O + H
+
+
+ 2.160000E+05
+ 1.51
+ 3430.000000
+
+
+ H2:1.0 OH:1
+ H:1 H2O:1.0
+
+
+
+
+ OH + OH [=] O + H2O
+
+
+ 3.340000E+01
+ 2.42
+ -1930.000000
+
+
+ OH:2.0
+ H2O:1 O:1.0
+
+
+
+
+ H2 + M [=] H + H + M
+
+
+ 4.577000E+16
+ -1.4
+ 104380.000000
+
+ AR:0 H2:2.5 H2O:12 HE:0
+
+ H2:1.0
+ H:2.0
+
+
+
+
+ H2 + AR [=] H + H + AR
+
+
+ 5.840000E+15
+ -1.1
+ 104380.000000
+
+
+ H2:1.0 AR:1
+ H:2.0 AR:1
+
+
+
+
+ H2 + HE [=] H + H + HE
+
+
+ 5.840000E+15
+ -1.1
+ 104380.000000
+
+
+ H2:1.0 HE:1
+ H:2.0 HE:1
+
+
+
+
+ O + O + M [=] O2 + M
+
+
+ 6.165000E+09
+ -0.5
+ 0.000000
+
+ AR:0 H2:2.5 H2O:12 HE:0
+
+ O:2.0
+ O2:1.0
+
+
+
+
+ O + O + AR [=] O2 + AR
+
+
+ 1.886000E+07
+ 0
+ -1788.000000
+
+
+ AR:1 O:2.0
+ AR:1 O2:1.0
+
+
+
+
+ O + O + HE [=] O2 + HE
+
+
+ 1.886000E+07
+ 0
+ -1788.000000
+
+
+ O:2.0 HE:1
+ O2:1.0 HE:1
+
+
+
+
+ O + H + M [=] OH + M
+
+
+ 4.714000E+12
+ -1
+ 0.000000
+
+ AR:0.75 H2:2.5 H2O:12 HE:0.75
+
+ H:1 O:1.0
+ OH:1.0
+
+
+
+
+ H2O + M [=] H + OH + M
+
+
+ 6.064000E+24
+ -3.322
+ 120790.000000
+
+ H2:3 H2O:0 HE:1.1 N2:2 O2:1.5
+
+ H2O:1.0
+ H:1.0 OH:1
+
+
+
+
+ H2O + H2O [=] H + OH + H2O
+
+
+ 1.006000E+23
+ -2.44
+ 120180.000000
+
+
+ H2O:2.0
+ H:1.0 H2O:1 OH:1
+
+
+
+
+ H + O2 (+ M) [=] HO2 (+ M)
+
+
+ 4.650840E+09
+ 0.44
+ 0.000000
+
+
+ 6.366000E+14
+ -1.72
+ 524.800000
+
+ AR:0.67 H2:2 H2O:14 HE:0.8 O2:0.78
+ 0.5 1e-30 1e+30
+
+ H:1.0 O2:1
+ HO2:1.0
+
+
+
+
+ HO2 + H [=] H2 + O2
+
+
+ 2.750000E+03
+ 2.09
+ -1451.000000
+
+
+ H:1 HO2:1.0
+ H2:1.0 O2:1
+
+
+
+
+ HO2 + H [=] OH + OH
+
+
+ 7.079000E+10
+ 0
+ 295.000000
+
+
+ H:1 HO2:1.0
+ OH:2.0
+
+
+
+
+ HO2 + O [=] O2 + OH
+
+
+ 2.850000E+07
+ 1
+ -723.930000
+
+
+ HO2:1.0 O:1
+ O2:1.0 OH:1
+
+
+
+
+ HO2 + OH [=] H2O + O2
+
+
+ 2.890000E+10
+ 0
+ -497.000000
+
+
+ HO2:1.0 OH:1
+ H2O:1.0 O2:1
+
+
+
+
+ HO2 + HO2 [=] H2O2 + O2
+
+
+ 4.200000E+11
+ 0
+ 11982.000000
+
+
+ HO2:2.0
+ H2O2:1.0 O2:1
+
+
+
+
+ HO2 + HO2 [=] H2O2 + O2
+
+
+ 1.300000E+08
+ 0
+ -1629.300000
+
+
+ HO2:2.0
+ H2O2:1.0 O2:1
+
+
+
+
+ H2O2 (+ M) [=] OH + OH (+ M)
+
+
+ 2.000000E+12
+ 0.9
+ 48749.000000
+
+
+ 2.490000E+21
+ -2.3
+ 48749.000000
+
+ H2:3.7 H2O:7.5 H2O2:7.7 HE:0.65 N2:1.5 O2:1.2
+ 0.43 1e-30 1e+30
+
+ H2O2:1.0
+ OH:2.0
+
+
+
+
+ H2O2 + H [=] H2O + OH
+
+
+ 2.410000E+10
+ 0
+ 3970.000000
+
+
+ H:1 H2O2:1.0
+ H2O:1.0 OH:1
+
+
+
+
+ H2O2 + H [=] HO2 + H2
+
+
+ 4.820000E+10
+ 0
+ 7950.000000
+
+
+ H:1 H2O2:1.0
+ H2:1 HO2:1.0
+
+
+
+
+ H2O2 + O [=] OH + HO2
+
+
+ 9.550000E+03
+ 2
+ 3970.000000
+
+
+ H2O2:1.0 O:1
+ HO2:1 OH:1.0
+
+
+
+
+ H2O2 + OH [=] HO2 + H2O
+
+
+ 1.740000E+09
+ 0
+ 318.000000
+
+
+ H2O2:1.0 OH:1
+ H2O:1 HO2:1.0
+
+
+
+
+ H2O2 + OH [=] HO2 + H2O
+
+
+ 7.590000E+10
+ 0
+ 7270.000000
+
+
+ H2O2:1.0 OH:1
+ H2O:1 HO2:1.0
+
+
+
diff --git a/demos/ParticleHeatUp/ParticleHeatUp.yaml b/demos/ParticleHeatUp/ParticleHeatUp.yaml
index 0734fab8b7fd911dab3e2f757cb4cee05bea581a..dd6233914acce697b163fdc753daa07bf96af33b 100644
--- a/demos/ParticleHeatUp/ParticleHeatUp.yaml
+++ b/demos/ParticleHeatUp/ParticleHeatUp.yaml
@@ -38,7 +38,7 @@ TimeIntegrator:
# timestep: 1e-6
tolerance: 1e-8
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 0.1
Particles:
ParticleType: Solid
@@ -49,27 +49,20 @@ Particles:
variable: rho_part_init
- value: 4200
variable: cp_part_init
-# - value: 0
-# variable: moist_mass_coal_init
InflowConditions:
- value: 1000
variable: T_part_inflow
- value: 1000
variable: rho_part_inflow
- NumberOfParticles: 6
- NumberOfParticlesInflow: 12
+ ParticleLoading: 6
+ ParticleLoadingInflow: 12
Size:
Distribution: Uniform
Upper: 10e-5
Lower: 5e-5
-# Distribution: Identity
-# Value: 1e-4
-# Distribution: UserDefinedList
-# Values: [1e-4, 1e-5]
-# Numbers: [1, 2]
ParticleParameters:
RadiationWithWall: OFF
EmissivityPart: 0.01
RadiationTemperature: 1200
FlowParameters:
- KolmogorovScale: 1e-7
+ ReynoldsNumber: 2e4
diff --git a/demos/diff_mechanisms/methane.yaml b/demos/diff_mechanisms/methane.yaml
index aa782cacc3b5c10afb58b4c981db30250e6131e1..b023abb4a45a1a458eadc5ebc8793a0359e16a71 100644
--- a/demos/diff_mechanisms/methane.yaml
+++ b/demos/diff_mechanisms/methane.yaml
@@ -34,6 +34,5 @@ Output:
Fields:
- name: T_inflow
- name: p_inflow
-Restart: False
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
diff --git a/demos/diff_mechanisms/syngas.yaml b/demos/diff_mechanisms/syngas.yaml
index 3ad37247a09facc206bda989bd3a81f40c92ff3f..12aed2df9c0175faf546422902eeb1b0e69cc008 100644
--- a/demos/diff_mechanisms/syngas.yaml
+++ b/demos/diff_mechanisms/syngas.yaml
@@ -38,6 +38,5 @@ Output:
Fields:
- name: T_inflow
- name: p_inflow
-Restart: False
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
diff --git a/rtests/inputs/steady_cp_ad_closed__1pt.yaml b/rtests/inputs/steady_cp_ad_closed__1pt.yaml
index ff7f6a081e87f3daeb46201d7b49d5e965d5838b..0312c2136932fd57931c1bad0986ca9c794b163c 100644
--- a/rtests/inputs/steady_cp_ad_closed__1pt.yaml
+++ b/rtests/inputs/steady_cp_ad_closed__1pt.yaml
@@ -49,5 +49,5 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
diff --git a/rtests/inputs/steady_cp_ad_open__1pt.yaml b/rtests/inputs/steady_cp_ad_open__1pt.yaml
index e58b21e373699096575690b8145d91b168fa64a0..0bb4a45c95fe245bc0a92f6aa98d5ab79fa1c707 100644
--- a/rtests/inputs/steady_cp_ad_open__1pt.yaml
+++ b/rtests/inputs/steady_cp_ad_open__1pt.yaml
@@ -33,4 +33,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantPressure
\ No newline at end of file
+ ReactorType: PSRConstantPressure
\ No newline at end of file
diff --git a/rtests/inputs/steady_cp_conv_open__1pt.yaml b/rtests/inputs/steady_cp_conv_open__1pt.yaml
index 6dfcf88b4bb28a96c39d75222d967af02bea37f3..7aa87c9477417ea613040e9cf0d77ce1a58fb421 100644
--- a/rtests/inputs/steady_cp_conv_open__1pt.yaml
+++ b/rtests/inputs/steady_cp_conv_open__1pt.yaml
@@ -24,7 +24,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/steady_cp_conv_open__Tsurroundvar.yaml b/rtests/inputs/steady_cp_conv_open__Tsurroundvar.yaml
index a9dc406255d49e92c7e694adb0edb2a203e5844d..8f0817946d28b08ca9701ecabd20246a807646ca 100644
--- a/rtests/inputs/steady_cp_conv_open__Tsurroundvar.yaml
+++ b/rtests/inputs/steady_cp_conv_open__Tsurroundvar.yaml
@@ -24,7 +24,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/steady_cp_conv_open__hConvecvar.yaml b/rtests/inputs/steady_cp_conv_open__hConvecvar.yaml
index db055787d73382ccac7aa83ad9c59989808c76e0..e6ce2bead48a3909d9f9713d129a71279bd6f1ea 100644
--- a/rtests/inputs/steady_cp_conv_open__hConvecvar.yaml
+++ b/rtests/inputs/steady_cp_conv_open__hConvecvar.yaml
@@ -24,7 +24,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient:
diff --git a/rtests/inputs/steady_cv_ad_closed__1pt.yaml b/rtests/inputs/steady_cv_ad_closed__1pt.yaml
index 8f47c0e4024ff362be4fddbabd137eeaa59a7063..5df550d87c20f4a57f418175940ee594fd38f4ff 100644
--- a/rtests/inputs/steady_cv_ad_closed__1pt.yaml
+++ b/rtests/inputs/steady_cv_ad_closed__1pt.yaml
@@ -51,5 +51,5 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
diff --git a/rtests/inputs/steady_cv_ad_closed__Tpzvar.yaml b/rtests/inputs/steady_cv_ad_closed__Tpzvar.yaml
index 2e2dd43c4523a203278876d4d7874055fbcb2f4f..5a46ca46016fe3dbdd4374edc24312c163c2a060 100644
--- a/rtests/inputs/steady_cv_ad_closed__Tpzvar.yaml
+++ b/rtests/inputs/steady_cv_ad_closed__Tpzvar.yaml
@@ -44,4 +44,4 @@ TimeIntegrator:
tolerance: 1.e-9
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_ad_closed__Tvar.yaml b/rtests/inputs/steady_cv_ad_closed__Tvar.yaml
index 2f516a52cdf5ae7b3e62001e2e03536d1449de53..916ba22015d5a860f9cd388e1fdb632b754bcf94 100644
--- a/rtests/inputs/steady_cv_ad_closed__Tvar.yaml
+++ b/rtests/inputs/steady_cv_ad_closed__Tvar.yaml
@@ -38,4 +38,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_ad_closed__pvar.yaml b/rtests/inputs/steady_cv_ad_closed__pvar.yaml
index ae2f38f8da165ab7cadd0b86e160b1497733a6a0..ad802563d1f117f5c67d19a01bd8733bd90e964a 100644
--- a/rtests/inputs/steady_cv_ad_closed__pvar.yaml
+++ b/rtests/inputs/steady_cv_ad_closed__pvar.yaml
@@ -38,5 +38,5 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
diff --git a/rtests/inputs/steady_cv_ad_closed__zvar.yaml b/rtests/inputs/steady_cv_ad_closed__zvar.yaml
index 63441b938bca8bd4979259225fa03cae76e5b548..689139c3cd510849354d0eb5650d122fa8d3d9e0 100644
--- a/rtests/inputs/steady_cv_ad_closed__zvar.yaml
+++ b/rtests/inputs/steady_cv_ad_closed__zvar.yaml
@@ -38,4 +38,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_ad_open__1pt.yaml b/rtests/inputs/steady_cv_ad_open__1pt.yaml
index 786e555f79bde36360d20fb92f1c97a0dc7dd9d9..8c215770cd03fb39b2276d0f1f60cd2c6ab1c0e9 100644
--- a/rtests/inputs/steady_cv_ad_open__1pt.yaml
+++ b/rtests/inputs/steady_cv_ad_open__1pt.yaml
@@ -35,4 +35,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_ad_open__Tpzvar.yaml b/rtests/inputs/steady_cv_ad_open__Tpzvar.yaml
index c640d253515342b480da3637e60badc4408cabff..afae1eb760d9efad3dee1becb43c189630813d89 100644
--- a/rtests/inputs/steady_cv_ad_open__Tpzvar.yaml
+++ b/rtests/inputs/steady_cv_ad_open__Tpzvar.yaml
@@ -44,4 +44,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_ad_open__Tvar.yaml b/rtests/inputs/steady_cv_ad_open__Tvar.yaml
index 365f4564132abad084a37dbeb729e41e07294836..57a65fcee4aba831a6cb65be5a787c923c968655 100644
--- a/rtests/inputs/steady_cv_ad_open__Tvar.yaml
+++ b/rtests/inputs/steady_cv_ad_open__Tvar.yaml
@@ -38,4 +38,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_ad_open__pvar.yaml b/rtests/inputs/steady_cv_ad_open__pvar.yaml
index 68555eda509b4afb16a93763bb2f255957fd0071..f986953a7a0de17ed9d776dfe712a943effebd22 100644
--- a/rtests/inputs/steady_cv_ad_open__pvar.yaml
+++ b/rtests/inputs/steady_cv_ad_open__pvar.yaml
@@ -38,4 +38,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_ad_open__zvar.yaml b/rtests/inputs/steady_cv_ad_open__zvar.yaml
index fb4a06878ce36d47ea9f6d5c37e9a060f66e3522..616aaaa981b43edd31f620d39e2f3731880251d3 100644
--- a/rtests/inputs/steady_cv_ad_open__zvar.yaml
+++ b/rtests/inputs/steady_cv_ad_open__zvar.yaml
@@ -38,4 +38,4 @@ TimeIntegrator:
tolerance: 1.e-12
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/steady_cv_conv_open__1pt.yaml b/rtests/inputs/steady_cv_conv_open__1pt.yaml
index 4aaea5df00bb516d9dce60c676bed8c023b98325..a389505217960a575f9f5f32b4ab10d93cc64ace 100644
--- a/rtests/inputs/steady_cv_conv_open__1pt.yaml
+++ b/rtests/inputs/steady_cv_conv_open__1pt.yaml
@@ -24,7 +24,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/steady_cv_conv_open__Tpzvar.yaml b/rtests/inputs/steady_cv_conv_open__Tpzvar.yaml
index 542d0a287ca13a90f5a3059d77b4ef86886aca88..50d6ed2694c7844fe833744f42cb52abb03b9a2d 100644
--- a/rtests/inputs/steady_cv_conv_open__Tpzvar.yaml
+++ b/rtests/inputs/steady_cv_conv_open__Tpzvar.yaml
@@ -33,7 +33,7 @@ InflowConditions:
composition: unreacted
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/steady_cv_conv_open__Tsurroundvar.yaml b/rtests/inputs/steady_cv_conv_open__Tsurroundvar.yaml
index 65cdf3c61a49bfd98ca5e510b1b45f5e307df4fc..a7f0ba4af86035aa5491d462b914217a5708e240 100644
--- a/rtests/inputs/steady_cv_conv_open__Tsurroundvar.yaml
+++ b/rtests/inputs/steady_cv_conv_open__Tsurroundvar.yaml
@@ -24,7 +24,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/steady_cv_conv_open__Tvar.yaml b/rtests/inputs/steady_cv_conv_open__Tvar.yaml
index bb1ef298b9a13bcf86923c67aa7751c9f5eaf604..a071a5dd7f9e77c99444d707e9c0f498aeebcf8f 100644
--- a/rtests/inputs/steady_cv_conv_open__Tvar.yaml
+++ b/rtests/inputs/steady_cv_conv_open__Tvar.yaml
@@ -27,7 +27,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/steady_cv_conv_open__hConvecvar.yaml b/rtests/inputs/steady_cv_conv_open__hConvecvar.yaml
index 5c1540d4d3b1399e09ce5bbdef1dea747c75e8c8..d2bb12269cffa8943222f14ab333ab9ec5471eb9 100644
--- a/rtests/inputs/steady_cv_conv_open__hConvecvar.yaml
+++ b/rtests/inputs/steady_cv_conv_open__hConvecvar.yaml
@@ -24,7 +24,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient:
diff --git a/rtests/inputs/steady_cv_conv_open__pvar.yaml b/rtests/inputs/steady_cv_conv_open__pvar.yaml
index b44b8da4165a0a7ab78c91b47ca9d20840002bf7..0ea1b427e193011334fd6eaf83aacec67c54d8aa 100644
--- a/rtests/inputs/steady_cv_conv_open__pvar.yaml
+++ b/rtests/inputs/steady_cv_conv_open__pvar.yaml
@@ -27,7 +27,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/steady_cv_conv_open__zvar.yaml b/rtests/inputs/steady_cv_conv_open__zvar.yaml
index 3109cdfa5094dea8f1469f1dbdac2996064f32d7..75c980801e3dd00343514b7546a6e63678d8716a 100644
--- a/rtests/inputs/steady_cv_conv_open__zvar.yaml
+++ b/rtests/inputs/steady_cv_conv_open__zvar.yaml
@@ -27,7 +27,7 @@ InflowConditions:
composition: unreacted
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cp_ad_closed__1pt.yaml b/rtests/inputs/transient_cp_ad_closed__1pt.yaml
index ce74677aa29964414c2909d723ff8efd581dce6d..c77283bb9821d0ffbe264e7f947f1b80d2adfc44 100644
--- a/rtests/inputs/transient_cp_ad_closed__1pt.yaml
+++ b/rtests/inputs/transient_cp_ad_closed__1pt.yaml
@@ -51,4 +51,4 @@ TimeIntegrator:
end_time: 1.e-4
ReactorParameters:
- ReactorType: ConstantPressure
\ No newline at end of file
+ ReactorType: PSRConstantPressure
\ No newline at end of file
diff --git a/rtests/inputs/transient_cp_ad_open__1pt.yaml b/rtests/inputs/transient_cp_ad_open__1pt.yaml
index 4c582fc6134410ea5ffea06ba62d6a05e11f0979..c8940992ce2de008cbf32902bae2d5311ae49993 100644
--- a/rtests/inputs/transient_cp_ad_open__1pt.yaml
+++ b/rtests/inputs/transient_cp_ad_open__1pt.yaml
@@ -51,4 +51,4 @@ TimeIntegrator:
end_time: 1.e-2
ReactorParameters:
- ReactorType: ConstantPressure
\ No newline at end of file
+ ReactorType: PSRConstantPressure
\ No newline at end of file
diff --git a/rtests/inputs/transient_cp_conv_open__1pt.yaml b/rtests/inputs/transient_cp_conv_open__1pt.yaml
index 8a61459f9cb6edaeca088118e3c3e7a73fef72b8..8b701b35cbd91acbbfe668d208c7ff0983b24fc8 100644
--- a/rtests/inputs/transient_cp_conv_open__1pt.yaml
+++ b/rtests/inputs/transient_cp_conv_open__1pt.yaml
@@ -40,7 +40,7 @@ InitialConditions:
variable: X_N2
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cp_conv_open__Tsurroundvar.yaml b/rtests/inputs/transient_cp_conv_open__Tsurroundvar.yaml
index d0f25989bffbdf46c6ad2542e907ff7ac3278926..e321862d14085987d75c15b4cdf02323d3880ad5 100644
--- a/rtests/inputs/transient_cp_conv_open__Tsurroundvar.yaml
+++ b/rtests/inputs/transient_cp_conv_open__Tsurroundvar.yaml
@@ -40,7 +40,7 @@ InitialConditions:
variable: X_N2
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cp_conv_open__hConvecvar.yaml b/rtests/inputs/transient_cp_conv_open__hConvecvar.yaml
index 9594694e914c7abe0cb7f081c2b12f451e848f87..8f1af3a4d6be6f46f9c80ed5120003da0c177462 100644
--- a/rtests/inputs/transient_cp_conv_open__hConvecvar.yaml
+++ b/rtests/inputs/transient_cp_conv_open__hConvecvar.yaml
@@ -40,7 +40,7 @@ InitialConditions:
variable: X_N2
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient:
diff --git a/rtests/inputs/transient_cp_liquid_particle.yaml b/rtests/inputs/transient_cp_liquid_particle.yaml
index 316c6f54b3d383f049d0bd92fa78935ee3944d00..5e350fdc29932c74ca5dfd6893b6bffe520e49e0 100644
--- a/rtests/inputs/transient_cp_liquid_particle.yaml
+++ b/rtests/inputs/transient_cp_liquid_particle.yaml
@@ -28,7 +28,7 @@ TimeIntegrator:
timestep: 1e-4
tolerance: 1e-8
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 0.1
Particles:
ParticleType: Liquid
diff --git a/rtests/inputs/transient_cp_particle_heatup.yaml b/rtests/inputs/transient_cp_particle_heatup.yaml
index 6e905943c9ed8557112b9a6bcaf3e06eafcbff08..86fc92ac618d65bea0a82ec312f5e6a5138c71f3 100644
--- a/rtests/inputs/transient_cp_particle_heatup.yaml
+++ b/rtests/inputs/transient_cp_particle_heatup.yaml
@@ -28,7 +28,7 @@ TimeIntegrator:
timestep: 8e-4
tolerance: 1e-8
ReactorParameters:
- ReactorType: ConstantPressure
+ ReactorType: PSRConstantPressure
Radius: 0.1
Particles:
ParticleType: Solid
diff --git a/rtests/inputs/transient_cv_ad_closed__1pt.yaml b/rtests/inputs/transient_cv_ad_closed__1pt.yaml
index 754a4e5ef7f7589ddf15612559bea9a8477665cc..ea7cbd09e43a5cce242deb6d250eff314c7aa7cb 100644
--- a/rtests/inputs/transient_cv_ad_closed__1pt.yaml
+++ b/rtests/inputs/transient_cv_ad_closed__1pt.yaml
@@ -53,4 +53,4 @@ TimeIntegrator:
end_time: 1.e-4
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_closed__Tpzvar.yaml b/rtests/inputs/transient_cv_ad_closed__Tpzvar.yaml
index d02855b4c6069b714f3fdfcbd68c60793921ff8d..6975da26294c3ba01f3018f45351751222c23c7b 100644
--- a/rtests/inputs/transient_cv_ad_closed__Tpzvar.yaml
+++ b/rtests/inputs/transient_cv_ad_closed__Tpzvar.yaml
@@ -46,4 +46,4 @@ TimeIntegrator:
end_time: 1.e-4
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_closed__Tvar.yaml b/rtests/inputs/transient_cv_ad_closed__Tvar.yaml
index 553136a0331859ad3b1a6e3ca9351e20c6ac3230..43a89d3bc827772e00a2348ae0a0e0abfd2ec915 100644
--- a/rtests/inputs/transient_cv_ad_closed__Tvar.yaml
+++ b/rtests/inputs/transient_cv_ad_closed__Tvar.yaml
@@ -40,4 +40,4 @@ TimeIntegrator:
end_time: 1.e-4
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_closed__pvar.yaml b/rtests/inputs/transient_cv_ad_closed__pvar.yaml
index ccbefa099a08513409e5b4b70dd1dd257e1307bb..6ff54965dceb740232a9f8ae34fac63563fd3618 100644
--- a/rtests/inputs/transient_cv_ad_closed__pvar.yaml
+++ b/rtests/inputs/transient_cv_ad_closed__pvar.yaml
@@ -40,4 +40,4 @@ TimeIntegrator:
end_time: 1.e-4
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_closed__zvar.yaml b/rtests/inputs/transient_cv_ad_closed__zvar.yaml
index cde62924746efccec8585487237dac98ff723122..6d82cb6816d64caf211454da239c89e7d07b4bf5 100644
--- a/rtests/inputs/transient_cv_ad_closed__zvar.yaml
+++ b/rtests/inputs/transient_cv_ad_closed__zvar.yaml
@@ -40,4 +40,4 @@ TimeIntegrator:
end_time: 1.e-4
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_open__1pt.yaml b/rtests/inputs/transient_cv_ad_open__1pt.yaml
index 52f878db56da2512c676388b33a027c993bc55a7..285ccaec308e461b2f7fb3a2de09e9d9dfb3a793 100644
--- a/rtests/inputs/transient_cv_ad_open__1pt.yaml
+++ b/rtests/inputs/transient_cv_ad_open__1pt.yaml
@@ -53,4 +53,4 @@ TimeIntegrator:
end_time: 1.e-2
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_open__Tpzvar.yaml b/rtests/inputs/transient_cv_ad_open__Tpzvar.yaml
index be62a828c3b2d3183245d2b9cadb61dfaf2c81df..74fccec28bdb45da5c27e233526657b069f076ea 100644
--- a/rtests/inputs/transient_cv_ad_open__Tpzvar.yaml
+++ b/rtests/inputs/transient_cv_ad_open__Tpzvar.yaml
@@ -46,4 +46,4 @@ TimeIntegrator:
end_time: 1.e-2
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_open__Tvar.yaml b/rtests/inputs/transient_cv_ad_open__Tvar.yaml
index 3acdcbc8b2b15db4921b74268bb62419710f475a..a628582ae67b2ac539bfba2d9db48a959aab992c 100644
--- a/rtests/inputs/transient_cv_ad_open__Tvar.yaml
+++ b/rtests/inputs/transient_cv_ad_open__Tvar.yaml
@@ -40,4 +40,4 @@ TimeIntegrator:
end_time: 1.e-2
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_open__pvar.yaml b/rtests/inputs/transient_cv_ad_open__pvar.yaml
index d238894d708a664fbcfefdde18ee895dc1be7e21..32fc461cbb04a2f19445430e0316e54326542b98 100644
--- a/rtests/inputs/transient_cv_ad_open__pvar.yaml
+++ b/rtests/inputs/transient_cv_ad_open__pvar.yaml
@@ -40,4 +40,4 @@ TimeIntegrator:
end_time: 1.e-2
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_ad_open__zvar.yaml b/rtests/inputs/transient_cv_ad_open__zvar.yaml
index 5a0702fe2d3a7cd555f090757b46291d97f70f50..9b8035f34415dde700798302037272e25a81e9d3 100644
--- a/rtests/inputs/transient_cv_ad_open__zvar.yaml
+++ b/rtests/inputs/transient_cv_ad_open__zvar.yaml
@@ -40,4 +40,4 @@ TimeIntegrator:
end_time: 1.e-2
ReactorParameters:
- ReactorType: ConstantVolume
\ No newline at end of file
+ ReactorType: PSRConstantVolume
\ No newline at end of file
diff --git a/rtests/inputs/transient_cv_conv_open__1pt.yaml b/rtests/inputs/transient_cv_conv_open__1pt.yaml
index bab3037c1e753d73b4b47787ac68eb00463706ef..75d83ce10b86b86da00b0009b8fda799ecc2e181 100644
--- a/rtests/inputs/transient_cv_conv_open__1pt.yaml
+++ b/rtests/inputs/transient_cv_conv_open__1pt.yaml
@@ -40,7 +40,7 @@ InitialConditions:
variable: X_N2
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cv_conv_open__Tpzvar.yaml b/rtests/inputs/transient_cv_conv_open__Tpzvar.yaml
index d775792d94bb8a92e09e45427abe83ff5c9c85e0..4b78f5192e5ecb047e4da693b216c0fec46ea150 100644
--- a/rtests/inputs/transient_cv_conv_open__Tpzvar.yaml
+++ b/rtests/inputs/transient_cv_conv_open__Tpzvar.yaml
@@ -33,7 +33,7 @@ InflowConditions:
composition: unreacted
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cv_conv_open__Tsurroundvar.yaml b/rtests/inputs/transient_cv_conv_open__Tsurroundvar.yaml
index a1cef5a0afdd9cb3130e700ebaa0573ddc420e7f..80ce1870644e9970c982c24d96f19454f3adaec6 100644
--- a/rtests/inputs/transient_cv_conv_open__Tsurroundvar.yaml
+++ b/rtests/inputs/transient_cv_conv_open__Tsurroundvar.yaml
@@ -40,7 +40,7 @@ InitialConditions:
variable: X_N2
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cv_conv_open__Tvar.yaml b/rtests/inputs/transient_cv_conv_open__Tvar.yaml
index 061ce1e342236fcc40ac7de45e54f164cb60e30a..febff517f583cdd989f7dc2bda869d2119e99af6 100644
--- a/rtests/inputs/transient_cv_conv_open__Tvar.yaml
+++ b/rtests/inputs/transient_cv_conv_open__Tvar.yaml
@@ -27,7 +27,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cv_conv_open__hConvecvar.yaml b/rtests/inputs/transient_cv_conv_open__hConvecvar.yaml
index 28865f02f7ddf879bfa3bc5f1bb3a1717cc22f60..ecfc9055e62b1e89682515743720ec4705840ae5 100644
--- a/rtests/inputs/transient_cv_conv_open__hConvecvar.yaml
+++ b/rtests/inputs/transient_cv_conv_open__hConvecvar.yaml
@@ -40,7 +40,7 @@ InitialConditions:
variable: X_N2
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient:
diff --git a/rtests/inputs/transient_cv_conv_open__pvar.yaml b/rtests/inputs/transient_cv_conv_open__pvar.yaml
index a6b6ef4a0eda1efaec7730923b2aa65d097c3913..a68d9099f99b32e6f1d2d8b2172397bb29fa01e1 100644
--- a/rtests/inputs/transient_cv_conv_open__pvar.yaml
+++ b/rtests/inputs/transient_cv_conv_open__pvar.yaml
@@ -27,7 +27,7 @@ InflowConditions:
variable: X_N2_inflow
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cv_conv_open__zvar.yaml b/rtests/inputs/transient_cv_conv_open__zvar.yaml
index 346b58ed086ac08f53a0f60d04bb32d53020db3e..f4eb7782a354bb50407d6a054c501964bee7af73 100644
--- a/rtests/inputs/transient_cv_conv_open__zvar.yaml
+++ b/rtests/inputs/transient_cv_conv_open__zvar.yaml
@@ -27,7 +27,7 @@ InflowConditions:
composition: unreacted
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 1.e-3
HeatTransferParameter:
HeatTransferCoefficient: 1.e1
diff --git a/rtests/inputs/transient_cv_liquid_particle.yaml b/rtests/inputs/transient_cv_liquid_particle.yaml
index 002eaa02018128e74a9d9159d2587a5c17987e16..ef071b2dcebf1d2255f2a294fea3148c752a19d2 100644
--- a/rtests/inputs/transient_cv_liquid_particle.yaml
+++ b/rtests/inputs/transient_cv_liquid_particle.yaml
@@ -28,7 +28,7 @@ TimeIntegrator:
timestep: 1e-4
tolerance: 1e-8
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 0.1
Particles:
ParticleType: Liquid
diff --git a/rtests/inputs/transient_cv_particle_heatup.yaml b/rtests/inputs/transient_cv_particle_heatup.yaml
index 2c64046e6fbbb281bda7728427cf0bc8bb2ce164..bf20c089ebb4ed4c7b21bcdf79ce48164971da70 100644
--- a/rtests/inputs/transient_cv_particle_heatup.yaml
+++ b/rtests/inputs/transient_cv_particle_heatup.yaml
@@ -28,7 +28,7 @@ TimeIntegrator:
timestep: 8e-4
tolerance: 1e-8
ReactorParameters:
- ReactorType: ConstantVolume
+ ReactorType: PSRConstantVolume
Radius: 0.1
Particles:
ParticleType: Solid
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 43aa9af0369dde655be775c5f0bcc88088ca8e80..2caa6c95c3880ba414dc2192ee5e38080591bd6e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,5 +1,6 @@
add_subdirectory( parser )
add_subdirectory( particles )
+add_subdirectory( PlugFlowReactor )
set( TPL_INCLUDES ${TPL_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/parser/yaml/include )
set( TPL_LIBRARIES ${TPL_LIBRARIES} yaml-cpp )
@@ -15,6 +16,7 @@ add_executable( zodiac
Main.cpp
ReactorEnsembleUtil.cpp
RestartFieldWriter.cpp
+ InitialInflowConditionsWriter.cpp
${PARSER_SRC}
)
target_link_libraries( zodiac ${TPL_LIBRARIES} )
diff --git a/src/ConvectiveHeatTransferRate.h b/src/ConvectiveHeatTransferRate.h
index a3f4944f4efa0d333175d93f5860e3217081c764..ff991d71bdb663823fadc19c01167f3705092cbe 100644
--- a/src/ConvectiveHeatTransferRate.h
+++ b/src/ConvectiveHeatTransferRate.h
@@ -48,6 +48,10 @@ namespace ReactorEnsembleUtil{
* \f]
* Here, \f$ k \f$ is the convective coefficient between gas phase and surroundings,
* \f$ T_{\inf} \f$ is the surroundings temperature.
+ * \f$ \frac{A}{V}\f$ is the area/volume ratio of the reactor.
+ * For spherical reactor, \f$ \frac{A}{V}=\frac{3}{r}\f$, with \f$r\f$ represents the reacotr radius.
+ * For cylinder reactor, \f$ \frac{A}{V}=\frac{2}{r}\f$, (only surrounding surface is considered)
+ * with \f$r\f$ and \f$h\f$ represent radius of the circular end of the cylinder and height of the cylinder.
*
* The sensitivity is given as
* \f[
@@ -129,31 +133,34 @@ namespace ReactorEnsembleUtil{
*
* The convective heat transfer term under constant pressure condition is give as
* \f[
- * Q_{cov} = \frac{3 k }{\rho r } (T_{\inf} - T)
+ * Q_{cov} = k \frac{A}{\rho V} (T_{\inf} - T)
* \f]
* Here, \f$ k \f$ is the convective coefficient between gas phase and surroundings,
- * \f$ r \f$ is the reactor radius,
* \f$ T_{\inf} \f$ is the surroundings temperature.
+ * \f$ \frac{A}{V}\f$ is the area/volume ratio of the reactor.
+ * For spherical reactor, \f$ \frac{A}{V}=\frac{3}{r}\f$, with \f$r\f$ represents the reacotr radius.
+ * For cylinder reactor, \f$ \frac{A}{V}=\frac{2}{r}\f$, (only surrounding surface is considered)
+ * with \f$r\f$ and \f$h\f$ represent radius of the circular end of the cylinder and height of the cylinder.
*
* The sensitivity is given as
* \f[
- * \frac{\partial Q_{cov}}{\partial \phi} = \frac{3}{r} (\frac{\partial k}{\partial \phi}\frac{T_{\inf}-T}{\rho}
+ * \frac{\partial Q_{cov}}{\partial \phi} = \frac{A}{V} (\frac{\partial k}{\partial \phi}\frac{T_{\inf}-T}{\rho}
* + \frac{k}{\rho}(\frac{\partial T_{\inf}}{\partial \phi}-\frac{\partial T}{\partial \phi})
* - \frac{k}{\rho^2}\frac{\partial \rho}{\partial \phi}(T_{\inf}-T))
* \f]
*/
template
class ConvectionHeatRateCP : public Expr::Expression {
- const double radiusReactor_;
+ const double surfaceAreaPerVolume_;
DECLARE_FIELDS( FieldT, temp_, rho_, convCoeff_, convTemp_);
ConvectionHeatRateCP( const Expr::Tag tempTag,
const Expr::Tag rhoTag,
const Expr::Tag convectionCoeffTag,
const Expr::Tag convectionTempTag,
- const double radiusReactor)
+ const double surfaceAreaPerVolume)
: Expr::Expression(),
- radiusReactor_( radiusReactor){
+ surfaceAreaPerVolume_( surfaceAreaPerVolume){
this->set_gpu_runnable( true );
temp_ = this->template create_field_request( tempTag );
rho_ = this->template create_field_request( rhoTag );
@@ -164,7 +171,7 @@ namespace ReactorEnsembleUtil{
public:
class Builder : public Expr::ExpressionBuilder {
const Expr::Tag tempTag_, rhoTag_, convectionCoeffTag_, convectionTempTag_;
- const double radiusReactor_;
+ const double surfaceAreaPerVolume_;
public:
/**
* @brief The mechanism for building a ConvectionHeatRateCP object
@@ -174,25 +181,136 @@ namespace ReactorEnsembleUtil{
* @param rhoTag Gas phase density
* @param convectionCoeffTag Convective heat transfer coefficient between gas phase and surroundings
* @param convectionTempTag Surroundings temperature
- * @param radiusReactor Reactor radius
+ * @param surfaceAreaPerVolume Ratio between surface area and volume of reactor
*/
Builder( const Expr::Tag heatRateTag,
const Expr::Tag tempTag,
const Expr::Tag rhoTag,
const Expr::Tag convectionCoeffTag,
const Expr::Tag convectionTempTag,
- const double radiusReactor)
+ const double surfaceAreaPerVolume)
+ : Expr::ExpressionBuilder( heatRateTag ),
+ tempTag_( tempTag ),
+ rhoTag_( rhoTag ),
+ convectionCoeffTag_( convectionCoeffTag ),
+ convectionTempTag_( convectionTempTag ),
+ surfaceAreaPerVolume_( surfaceAreaPerVolume ){}
+
+ ~Builder(){}
+
+ Expr::ExpressionBase* build() const{
+ return new ConvectionHeatRateCP( tempTag_, rhoTag_, convectionCoeffTag_, convectionTempTag_, surfaceAreaPerVolume_ );
+ }
+ };
+
+ void evaluate(){
+ using namespace SpatialOps;
+ const FieldT& temp = temp_->field_ref();
+ const FieldT& rho = rho_->field_ref();
+ const FieldT& convCoeff = convCoeff_->field_ref();
+ const FieldT& convTemp = convTemp_->field_ref();
+ this->value() <<= convCoeff * surfaceAreaPerVolume_ /rho * (convTemp - temp);
+ }
+
+ void sensitivity( const Expr::Tag& sensVarTag ){
+ FieldT & dfdv = this->sensitivity_result( sensVarTag );
+ const FieldT& temp = temp_->field_ref();
+ const FieldT& rho = rho_->field_ref();
+ const FieldT& convCoeff = convCoeff_->field_ref();
+ const FieldT& convTemp = convTemp_->field_ref();
+ const FieldT& dTdv = temp_->sens_field_ref( sensVarTag );
+ const FieldT& drhodv = rho_->sens_field_ref( sensVarTag );
+ const FieldT& dconvCoeffdv = convCoeff_->sens_field_ref( sensVarTag );
+ const FieldT& dconvTempdv = convTemp_->sens_field_ref( sensVarTag );
+ dfdv <<= surfaceAreaPerVolume_ * ((dconvCoeffdv/rho-convCoeff/square(rho)*drhodv) * (convTemp - temp)
+ + convCoeff/rho * (dconvTempdv-dTdv));
+ }
+ };
+
+
+ /**
+ * @class ConvectionHeatRatePFR
+ * @ingroup ReactorEnsembleUtil
+ * @brief Getting the convective heat transfer term between gas phase and surroundings
+ * in gas phase enthalpy equation for plug flow reactor
+ * @author Hang
+ *
+ * The convective heat transfer term in enthalpy equation for plug flow reactor is give as
+ * \f[
+ * Q_{cov} = k \frac{A}{\rho V u} (T_{\inf} - T)
+ * \f]
+ * Here, \f$ k \f$ is the convective coefficient between gas phase and surroundings,
+ * \f$ T_{\inf} \f$ is the surroundings temperature.
+ * \f$ \frac{A}{V}\f$ is the area/volume ratio of the reactor.
+ * \f$ u\f$ is the gas phase velocity in the reactor.
+ * For spherical reactor, \f$ \frac{A}{V}=\frac{3}{r}\f$, with \f$r\f$ represents the reacotr radius.
+ * For cylinder reactor, \f$ \frac{A}{V}=\frac{2}{r}\f$, (only surrounding surface is considered)
+ * with \f$r\f$ represents radius of the circular end of the cylinder.
+ *
+ * The sensitivity is given as
+ * \f[
+ * \frac{\partial Q_{cov}}{\partial \phi} = \frac{A}{V} (\frac{\partial k}{\partial \phi}\frac{T_{\inf}-T}{\rho u}
+ * + \frac{k}{\rho u}(\frac{\partial T_{\inf}}{\partial \phi}-\frac{\partial T}{\partial \phi})
+ * - \frac{k}{\rho^2 u}\frac{\partial \rho}{\partial \phi}(T_{\inf}-T)
+ * - \frac{k}{\rho u^2}\frac{\partial u}{\partial \phi}(T_{\inf}-T))
+ * \f]
+ */
+ template
+ class ConvectionHeatRatePFR : public Expr::Expression {
+ const double surfaceAreaPerVolume_;
+ DECLARE_FIELDS( FieldT, temp_, rho_, convCoeff_, convTemp_, u_);
+
+ ConvectionHeatRatePFR( const Expr::Tag tempTag,
+ const Expr::Tag rhoTag,
+ const Expr::Tag convectionCoeffTag,
+ const Expr::Tag convectionTempTag,
+ const Expr::Tag uTag,
+ const double surfaceAreaPerVolume)
+ : Expr::Expression(),
+ surfaceAreaPerVolume_( surfaceAreaPerVolume){
+ this->set_gpu_runnable( true );
+ temp_ = this->template create_field_request( tempTag );
+ rho_ = this->template create_field_request( rhoTag );
+ convCoeff_ = this->template create_field_request( convectionCoeffTag );
+ convTemp_ = this->template create_field_request( convectionTempTag );
+ u_ = this->template create_field_request( uTag );
+ }
+
+ public:
+ class Builder : public Expr::ExpressionBuilder {
+ const Expr::Tag tempTag_, rhoTag_, convectionCoeffTag_, convectionTempTag_, uTag_;
+ const double surfaceAreaPerVolume_;
+ public:
+ /**
+ * @brief The mechanism for building a ConvectionHeatRateCP object
+ * @tparam FieldT
+ * @param heatRateTag Convective heat transfer term in gas phase enthalpy equation under constant pressure condition
+ * @param tempTag Gas phase temperature
+ * @param rhoTag Gas phase density
+ * @param convectionCoeffTag Convective heat transfer coefficient between gas phase and surroundings
+ * @param convectionTempTag Surroundings temperature
+ * @param uTag Velocity of gas phase
+ * @param surfaceAreaPerVolume Ratio between surface area and volume of reactor
+ */
+ Builder( const Expr::Tag heatRateTag,
+ const Expr::Tag tempTag,
+ const Expr::Tag rhoTag,
+ const Expr::Tag convectionCoeffTag,
+ const Expr::Tag convectionTempTag,
+ const Expr::Tag uTag,
+ const double surfaceAreaPerVolume)
: Expr::ExpressionBuilder( heatRateTag ),
tempTag_( tempTag ),
rhoTag_( rhoTag ),
convectionCoeffTag_( convectionCoeffTag ),
convectionTempTag_( convectionTempTag ),
- radiusReactor_( radiusReactor ){}
+ uTag_( uTag ),
+ surfaceAreaPerVolume_( surfaceAreaPerVolume ){}
~Builder(){}
Expr::ExpressionBase* build() const{
- return new ConvectionHeatRateCP( tempTag_, rhoTag_, convectionCoeffTag_, convectionTempTag_, radiusReactor_ );
+ return new ConvectionHeatRatePFR( tempTag_, rhoTag_, convectionCoeffTag_, convectionTempTag_, uTag_, surfaceAreaPerVolume_ );
}
};
@@ -202,7 +320,8 @@ namespace ReactorEnsembleUtil{
const FieldT& rho = rho_->field_ref();
const FieldT& convCoeff = convCoeff_->field_ref();
const FieldT& convTemp = convTemp_->field_ref();
- this->value() <<= 3.0 * convCoeff / ( radiusReactor_ * rho ) * (convTemp - temp);
+ const FieldT& u = u_->field_ref();
+ this->value() <<= convCoeff * surfaceAreaPerVolume_ /rho/u * (convTemp - temp);
}
void sensitivity( const Expr::Tag& sensVarTag ){
@@ -211,12 +330,14 @@ namespace ReactorEnsembleUtil{
const FieldT& rho = rho_->field_ref();
const FieldT& convCoeff = convCoeff_->field_ref();
const FieldT& convTemp = convTemp_->field_ref();
+ const FieldT& u = u_->field_ref();
const FieldT& dTdv = temp_->sens_field_ref( sensVarTag );
const FieldT& drhodv = rho_->sens_field_ref( sensVarTag );
const FieldT& dconvCoeffdv = convCoeff_->sens_field_ref( sensVarTag );
const FieldT& dconvTempdv = convTemp_->sens_field_ref( sensVarTag );
- dfdv <<= 3.0/radiusReactor_ * ((dconvCoeffdv/rho-convCoeff/square(rho)*drhodv) * (convTemp - temp)
- + convCoeff/rho * (dconvTempdv-dTdv));
+ const FieldT& dudv = u_->sens_field_ref( sensVarTag );
+ dfdv <<= surfaceAreaPerVolume_ * ((dconvCoeffdv/rho/u-convCoeff/square(rho)/u*drhodv-convCoeff/square(u)/rho*dudv) * (convTemp - temp)
+ + convCoeff/rho/u * (dconvTempdv-dTdv));
}
};
diff --git a/src/InitialInflowConditionsWriter.cpp b/src/InitialInflowConditionsWriter.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d6f5aa2a601b4b90306bb5475eeb668ab47fdf74
--- /dev/null
+++ b/src/InitialInflowConditionsWriter.cpp
@@ -0,0 +1,123 @@
+#include "InitialInflowConditionsWriter.h"
+#include "FieldTypes.h"
+#include "ReactorEnsembleUtil.h"
+
+#include
+#include
+
+
+typedef read_from_file ::Builder readT;
+
+//-------------------------------------------------------------------
+
+InitialInflowConditionsWriter::InitialInflowConditionsWriter( const YAML::Node parser,
+ Expr::FieldManagerList& fml,
+ std::set& initRoots,
+ Expr::ExpressionFactory& initFactory)
+ : parser_(parser),
+ fml_(fml),
+ initRoots_(initRoots),
+ initFactory_(initFactory)
+{}
+
+//-------------------------------------------------------------------
+
+InitialInflowConditionsWriter::~InitialInflowConditionsWriter()
+{}
+
+//-------------------------------------------------------------------
+void
+InitialInflowConditionsWriter::set_init_inflow_fields_from_file()
+{
+ const std::string reactorType = parser_["ReactorParameters"]["ReactorType"].as();
+ const YAML::Node& fieldsOutput = parser_["Output"]["Fields"];
+ const std::string dataFile = parser_["InitialInflowData"]["FileName"].as();
+ const int nspec = CanteraObjects::number_species();
+
+ boost::filesystem::ifstream dataStream( dataFile );
+ if( !dataStream.good() ){
+ std::ostringstream msg;
+ msg << "Could not open file " << dataFile << " for reading" << std::endl;
+ throw std::runtime_error( msg.str() );
+ }
+ std::vector DataVector;
+ std::string line;
+ while(std::getline(dataStream, line)){
+ DataVector.push_back(line);
+ }
+
+ if(reactorType!="PFR"){
+ const YAML::Node inflow = parser_["InflowConditions"];
+ BOOST_FOREACH( const YAML::Node& inflow_Spec, inflow ){
+ const std::string variable = inflow_Spec["variable"].as();
+ const Expr::Tag tag( variable, Expr::STATE_N );
+ const YAML::Node& val = inflow_Spec["value"];
+
+ if( val.size() <= 1 ){
+ long double ld;
+ if (val.as()=="FromDataBase"){
+ std::string alias = variable;
+ BOOST_FOREACH( const YAML::Node& f, fieldsOutput ){
+ const std::string name = f["name"].as();
+ if(name == variable){
+ alias = f["alias"].as(name);
+ }
+ }
+ initRoots_.insert(initFactory_.register_expression( new readT(tag, alias, DataVector)));
+ }
+ }
+ }
+ const std::string InflowSpecies = parser_["InitialInflowData"]["InflowSpeciesSetting"].as("FromInputFile");
+ if(InflowSpecies == "FromDataBase"){
+ BOOST_FOREACH( const std::string& sp_inflow, CanteraObjects::species_names() ){
+ if( sp_inflow == CanteraObjects::species_name( nspec - 1 )) continue;
+ const Expr::Tag tag( "X_"+sp_inflow+"_inflow", Expr::STATE_N );
+ std::string alias = "X_"+sp_inflow+"_inflow";
+ BOOST_FOREACH( const YAML::Node& f, fieldsOutput ){
+ const std::string name = f["name"].as();
+ if(name == "X_"+sp_inflow){
+ alias = f["alias"].as(name);
+ }
+ }
+ initRoots_.insert(initFactory_.register_expression( new readT(tag, alias, DataVector)));
+ }
+ }
+ }
+ if(parser_["InitialConditions"]){
+ const YAML::Node initial = parser_["InitialConditions"];
+ BOOST_FOREACH( const YAML::Node& ic_Spec, initial ){
+ const std::string variable = ic_Spec["variable"].as();
+ const Expr::Tag tag( variable, Expr::STATE_N );
+ const YAML::Node& val = ic_Spec["value"];
+
+ if( val.size() <= 1 ){
+ long double ld;
+ if (val.as()=="FromDataBase"){
+ std::string alias = variable;
+ BOOST_FOREACH( const YAML::Node& f, fieldsOutput ){
+ const std::string name = f["name"].as();
+ if(name == variable){
+ alias = f["alias"].as(name);
+ }
+ }
+ initRoots_.insert(initFactory_.register_expression( new readT(tag, alias, DataVector)));
+ }
+ }
+ }
+ const std::string InitialSpecies = parser_["InitialInflowData"]["InitialSpeciesSetting"].as("FromInputFile");
+ if(InitialSpecies == "FromDataBase"){
+ BOOST_FOREACH( const std::string& sp_ic, CanteraObjects::species_names() ){
+ if( sp_ic == CanteraObjects::species_name( nspec - 1 )) continue;
+ const Expr::Tag tag( "X_"+sp_ic, Expr::STATE_N );
+ std::string alias = "X_"+sp_ic;
+ BOOST_FOREACH( const YAML::Node& f, fieldsOutput ){
+ const std::string name = f["name"].as();
+ if(name == "X_"+sp_ic){
+ alias = f["alias"].as(name);
+ }
+ }
+ initRoots_.insert(initFactory_.register_expression( new readT(tag, alias, DataVector)));
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/InitialInflowConditionsWriter.h b/src/InitialInflowConditionsWriter.h
new file mode 100644
index 0000000000000000000000000000000000000000..73c8f1263e77818c49bbccbc07530d86ff53f50d
--- /dev/null
+++ b/src/InitialInflowConditionsWriter.h
@@ -0,0 +1,124 @@
+#ifndef INITIAL_INFLOW_CONDITIONS_WRITER_H
+#define INITIAL_INFLOW_CONDITIONS_WRITER_H
+
+#include
+#include
+#include "parser/ParseInputFile.h"
+
+/**
+ * @class InitialInflowConditionsWriter
+ * @author Hang Zhou
+ *
+ * @brief Setting initial and inflow conditions based on database.
+ * When having grid variable, like surrounding temperature for heat transfer,
+ * we can use this class to set responding initial or inflow conditions from the database,
+ * instead of setting them as constant for all grids from input file.
+ */
+
+class InitialInflowConditionsWriter
+{
+ const YAML::Node parser_;
+ Expr::FieldManagerList& fml_;
+ std::set& initRoots_;
+ Expr::ExpressionFactory& initFactory_;
+
+public:
+ /**
+ * @param parser yaml node read from input file
+ * @param fml the FieldManagerList that holds all of the fields that will be considered for output.
+ * @param initRoots initial root
+ * @param initFactory initial factory
+ */
+ explicit InitialInflowConditionsWriter( const YAML::Node parser,
+ Expr::FieldManagerList& fml,
+ std::set& initRoots,
+ Expr::ExpressionFactory& initFactory);
+
+ ~InitialInflowConditionsWriter();
+
+
+ /**
+ * @brief register inflow and initial fields based on database.
+ */
+ void
+ set_init_inflow_fields_from_file();
+};
+
+template< typename FieldT >
+class read_from_file : public Expr::Expression
+{
+ const std::string alias_;
+ std::vector dataVector_;
+
+ read_from_file( const std::string alias,
+ const std::vector DataVector)
+ : Expr::Expression(),
+ alias_( alias),
+ dataVector_(DataVector)
+ {
+ this->set_gpu_runnable(true);
+ }
+
+public:
+ class Builder : public Expr::ExpressionBuilder
+ {
+ const std::string alias_;
+ std::vector dataVector_;
+ public:
+ /**
+ * @brief The mechanism for building a read_from_file object
+ * @tparam FieldT
+ * @param fieldTag field that needs to be registered
+ * @param alias alias of the field
+ * @param DataVector vector including all data
+ */
+ Builder( const Expr::Tag fieldTag,
+ const std::string alias,
+ const std::vector DataVector)
+ : Expr::ExpressionBuilder( fieldTag ),
+ alias_( alias ),
+ dataVector_( DataVector )
+ {}
+ ~Builder(){}
+ Expr::ExpressionBase* build() const{
+ return new read_from_file( alias_, dataVector_ );
+ }
+ };
+
+
+ void evaluate()
+ {
+ using namespace SpatialOps;
+ FieldT& field = this->value();
+ for (const auto& line : dataVector_) {
+ std::istringstream iss(line);
+ std::vector result{ std::istream_iterator(iss), {} }; //split line by space
+
+ if(result[0] == alias_){
+ typename FieldT::iterator ifld = field.begin();
+ int i =1;
+ for( ;ifld != field.end();++ifld, ++i ){
+ *ifld = std::stof(result[i]);
+ }
+ break;
+ }
+ else{
+ if(&line == &dataVector_.back()){
+ if(alias_.substr( 0, 2 ) == "X_" || alias_.substr( 0, 2 ) == "Y_"){
+ std::cout << "Could not find data for " << alias_ << " in the database file. It is set to be zero." << std::endl;
+ field <<= 0.0;
+ }
+ else{
+ std::ostringstream msg;
+ msg << "Must give data for " << alias_ << " in the database file." << std::endl;
+ throw std::runtime_error( msg.str());
+ }
+ }
+ }
+
+ }
+ }
+
+};
+
+#endif //INITIAL_INFLOW_CONDITIONS_WRITER_H
diff --git a/src/Main.cpp b/src/Main.cpp
index 676e6c18684519471a4e0f6dfa7f2c08be61bb65..1c9b59cbab68d4715b53127bd744395018a6b4ca 100644
--- a/src/Main.cpp
+++ b/src/Main.cpp
@@ -53,6 +53,8 @@ namespace po = boost::program_options;
#include "TransformationMatrixExpressions.h"
#include "RestartFieldWriter.h"
+#include "InitialInflowConditionsWriter.h"
+#include
#define ASSEMBLER(MatrixT, FieldT, name) \
boost::shared_ptr > name = boost::make_shared >( #name );
@@ -152,7 +154,9 @@ int main( int iarg, char* carg[] )
Expr::ExpressionFactory initFactory;
std::set initRoots;
- const bool isRestart = parser["restart"];
+ const bool isRestart = parser["Restart"];
+ const std::string reactorType = parser["ReactorParameters"]["ReactorType"].as();
+ int EquIndex = 0;
const GridPtr grid = parse_initial_inflow_conditions( parser, initFactory, initRoots, isRestart );
@@ -164,6 +168,7 @@ int main( int iarg, char* carg[] )
const ReactorEnsembleUtil::ReactorEnsembleTags tagsE( Expr::STATE_NONE );
const ReactorEnsembleUtil::ReactorEnsembleTags tagsN( Expr::STATE_N );
+ const PlugFlowReactorInterface::PlugFlowReactorTags tagsEpfr( Expr::STATE_NONE );
typedef pokitt::ChemicalSourceJacobian ChemJacT;
@@ -173,6 +178,9 @@ int main( int iarg, char* carg[] )
typedef SingleValueField SVFT;
Expr::TagList primitiveTags, kinRhsTags;
+ if(reactorType=="PFR"){
+ primitiveTags.push_back( tagsEpfr.uTag );
+ }
primitiveTags.push_back( tagsE.rhoTag );
primitiveTags.push_back( tagsE.tempTag );
for( size_t i=0; ifactory() );
- if( parser["ReactorParameters"]["ReactorType"].as() == "ConstantVolume" ){
+ if(parser["InitialInflowData"]){
+ InitialInflowConditionsWriter* InitialInflowDatabase = new InitialInflowConditionsWriter( parser, fml, initRoots, initFactory);
+ InitialInflowDatabase->set_init_inflow_fields_from_file();
+ }
+
+ if( reactorType == "PSRConstantVolume" ){
kinRhsTags.push_back( tagsE.rhoKinRhsTag );
kinRhsTags.push_back( tagsE.rhoEgyKinRhsTag );
for( size_t i = 0;i < nspec - 1;++i ){
@@ -198,10 +211,10 @@ int main( int iarg, char* carg[] )
if(!isRestart){
ReactorEnsembleUtil::setup_cv( initRoots, initFactory, parser);
}
- ReactorEnsembleUtil::build_equation_system_cv( integrator, csj, parser );
+ ReactorEnsembleUtil::build_equation_system_cv( integrator, csj, parser, EquIndex );
}
- if( parser["ReactorParameters"]["ReactorType"].as() == "ConstantPressure" ){
+ if( reactorType == "PSRConstantPressure" ){
kinRhsTags.push_back( tagsE.presKinRhsTag );
kinRhsTags.push_back( tagsE.enthKinRhsTag );
for( size_t i = 0;i < nspec - 1;++i ){
@@ -211,11 +224,24 @@ int main( int iarg, char* carg[] )
if(!isRestart){
ReactorEnsembleUtil::setup_cp( initRoots, initFactory, parser);
}
- ReactorEnsembleUtil::build_equation_system_cp( integrator, csj, parser);
+ ReactorEnsembleUtil::build_equation_system_cp( integrator, csj, parser, EquIndex);
+ }
+
+ if( reactorType == "PFR" ){
+ kinRhsTags.push_back( tagsEpfr.uFullRhsTag );
+ kinRhsTags.push_back( tagsE.rhoFullRhsTag );
+ kinRhsTags.push_back( tagsE.enthFullRhsTag );
+ for( size_t i = 0;i < nspec - 1;++i ){
+ kinRhsTags.push_back( tagsE.yFullRhsTags[i] );
+ }
+
+ if(!isRestart){
+ PlugFlowReactorInterface::setup_pfr( initRoots, initFactory, parser);
+ }
+ PlugFlowReactorInterface::build_equation_system_pfr( integrator, csj, parser, EquIndex);
}
std::vector particleNumArray;
- int EquIndex = nspec;
Particles::ParticleSetup* particleSetup;
if(parser["Particles"]){
particleSetup = new Particles::ParticleSetup(particleNumArray, parser, initRoots, initFactory, integrator, primitiveTags, kinRhsTags, EquIndex, isRestart);
@@ -237,7 +263,7 @@ int main( int iarg, char* carg[] )
std::map primVarIdxMap;
std::map kinRhsIdxMap; // kinetic rhs indices
- if( parser["ReactorParameters"]["ReactorType"].as() == "ConstantVolume" ){
+ if( reactorType == "PSRConstantVolume" ){
primConsMap[tagsE.rhoTag] = tagsE.rhoTag;
primConsMap[tagsE.tempTag] = tagsE.rhoEgyTag;
for( size_t i=0; i() == "ConstantPressure" ){
+ if( reactorType == "PSRConstantPressure" ){
primConsMap[tagsE.rhoTag] = tagsE.presTag;
primConsMap[tagsE.tempTag] = tagsE.enthTag;
@@ -512,6 +538,99 @@ int main( int iarg, char* carg[] )
ReactorEnsembleUtil::initialize_cp( integrator, fml, patch, initTree, tagsE.dsTag, dsInit, dt, isRestart );
}
+ if( reactorType == "PFR" ){
+ primConsMap[tagsEpfr.uTag] = tagsEpfr.uTag;
+ primConsMap[tagsE.rhoTag] = tagsE.rhoTag;
+ primConsMap[tagsE.tempTag] = tagsE.enthTag;
+ for( size_t i = 0;i < nspec - 1;++i ){
+ primConsMap[tagsE.massTags[i]] = tagsE.massTags[i];
+ }
+ for( const auto& pc : primConsMap ){
+ primVarIdxMap[pc.first] = consVarIdxMap.at( pc.second );
+ }
+
+ kinRhsIdxMap[tagsEpfr.uFullRhsTag] = rhsIdxMap.at( tagsEpfr.uFullRhsTag );
+ kinRhsIdxMap[tagsE.rhoFullRhsTag] = rhsIdxMap.at( tagsE.rhoFullRhsTag );
+ kinRhsIdxMap[tagsE.enthFullRhsTag] = rhsIdxMap.at( tagsE.enthFullRhsTag );
+ for( auto i = 0;i < nspec - 1;++i ){
+ kinRhsIdxMap[tagsE.yFullRhsTags[i]] = rhsIdxMap.at( tagsE.yFullRhsTags[i] );
+ }
+
+ // state transformation matrix
+ auto make_state_transform = [&]()
+ {
+ ASSEMBLER( Expr::matrix::SparseMatrix, FT, dVdU )
+ // make some new tags in local scope to make things clearer
+ const Expr::Tag& u = tagsEpfr.uTag;
+ const Expr::Tag& T = tagsE.tempTag;
+ const Expr::Tag& rho = tagsE.rhoTag;
+ const Expr::Tag& h = tagsE.enthTag;
+ const Expr::TagList& Y = tagsE.massTags;
+
+ const auto& uPrimIdx = primVarIdxMap.at( u );
+ const auto& tempPrimIdx = primVarIdxMap.at( T );
+ const auto& rhoPrimIdx = primVarIdxMap.at( rho );
+ const auto& uConsIdx = consVarIdxMap.at( u );
+ const auto& rhoConsIdx = consVarIdxMap.at( rho );
+ const auto& enthConsIdx = consVarIdxMap.at( h );
+ dVdU->element( uPrimIdx, uConsIdx ) = 1.0;
+ dVdU->element( rhoPrimIdx, rhoConsIdx ) = 1.0;
+ dVdU->element( tempPrimIdx, enthConsIdx ) = tagsE.invCpTag;
+ for( auto i = 0;i < nspec - 1;++i ){
+ dVdU->element( primVarIdxMap.at( Y[i] ),
+ consVarIdxMap.at( Y[i] )) = 1.0;
+ dVdU->element( primVarIdxMap.at( T ),
+ consVarIdxMap.at( Y[i] )) = tagsE.enthOffsetTags[i];
+ }
+ dVdU->finalize();
+ return dVdU;
+ };
+
+ auto make_kinetics_jacobian = [&]()
+ {
+ ASSEMBLER( Expr::matrix::DenseSubMatrix, FT, dKdV )
+ for( const auto& K : kinRhsTags ){
+ for( const auto& V : primitiveTags ){
+ dKdV->element( kinRhsIdxMap.at( K ), primVarIdxMap.at( V )) = sensitivity( K, V );
+ }
+ }
+ dKdV->finalize();
+ return dKdV;
+ };
+
+ boost::shared_ptr > jacobian;
+ if(parser["Particles"]){
+ particleSetup->modify_idxmap(primVarIdxMap, consVarIdxMap, kinRhsIdxMap, rhsIdxMap);
+
+ integrator->set_jacobian( make_kinetics_jacobian() * (make_state_transform() + particleSetup->dvdu_part(primVarIdxMap, consVarIdxMap)) );
+
+ jacobian = make_kinetics_jacobian() * (make_state_transform() + particleSetup->dvdu_part(primVarIdxMap, consVarIdxMap));
+ }
+ else{
+ jacobian = make_kinetics_jacobian() * make_state_transform();
+ integrator->set_jacobian( make_kinetics_jacobian() * make_state_transform() );
+ }
+
+ typedef Expr::EigenvalueExpression::Builder ExplosiveEigT;
+ integrator->factory().register_expression( new ExplosiveEigT( tagsE.expEigTag,
+ jacobian,
+ EquIndex+1,
+ ExplosiveEigT::MOST_POS_REAL_PART ));
+ typedef ReactorEnsembleUtil::EigenvalueModifier::Builder GesatEigT;
+ integrator->factory().register_expression( new GesatEigT( tagsE.gesatEigTag,
+ tagsE.expEigTag,
+ dt ));
+
+ integrator->register_root_expression( new ExplosiveEigT( tagsE.reactEigTag,
+ make_kinetics_jacobian() * make_state_transform(),
+ EquIndex+1,
+ ExplosiveEigT::MOST_NEG_REAL_PART ));
+
+ integrator->register_root_expression( new pokitt::MassToMoleFracs::Builder( tagsE.moleTags, tagsE.massTags, tagsE.mmwTag ));
+ const double dsInit = parser["TimeIntegrator"]["dsInitial"].as(integratorParams.gesatMax);
+ PlugFlowReactorInterface::initialize_pfr( integrator, fml, patch, initTree, tagsE.dsTag, dsInit, dt, isRestart );
+ }
+
if(parser["Particles"]){
particleSetup->initialize_particle();
}
@@ -533,16 +652,20 @@ int main( int iarg, char* carg[] )
std::vector restartVars;
for( const auto& c : consVarIdxMap ){
restartVars.push_back(c.first.name());
- restartVars.push_back(c.first.name() + "_inflow");
+ if(reactorType != "PFR"){
+ restartVars.push_back( c.first.name() + "_inflow" );
+ }
}
restartVars.push_back(tagsE.tempTag.name());
- restartVars.push_back(tagsE.tempInflowTag.name());
- restartVars.push_back(tagsE.tauMixTag.name());
restartVars.push_back(tagsE.convecTempTag.name());
restartVars.push_back(tagsE.convecCoeffTag.name());
- if(parser["ReactorParameters"]["ReactorType"].as() == "ConstantPressure"){
+ if(reactorType == "PSRConstantPressure"){
restartVars.push_back(tagsE.rhoInflowTag.name());
}
+ if(reactorType != "PFR"){
+ restartVars.push_back(tagsE.tauMixTag.name());
+ restartVars.push_back(tagsE.tempInflowTag.name());
+ }
if(parser["Particles"]){
particleSetup->restart_var_particle(restartVars);
}
@@ -605,7 +728,7 @@ int main( int iarg, char* carg[] )
int restartStep;
std::string restartFile = "converged";
if( isRestart ){
- restartStep = parser["restart"]["step"].as();
+ restartStep = parser["Restart"]["Step"].as();
//transient simulation restarts from certain physical time step
if(parser["TimeIntegrator"]["end_time"]){
stepCount = restartStep;
@@ -637,11 +760,11 @@ int main( int iarg, char* carg[] )
restartDatabase->set_fields_from_file();
}
// rename the database based on ` restart_prefix` in the input file
- if(parser["restart"]["restart_prefix"].as(stepPrefix) == stepPrefix){
+ if(parser["Restart"]["Restart_prefix"].as(stepPrefix) == stepPrefix){
std::cout << "OVERWRITE previous database during restart!" << std::endl;
}
else{
- stepPrefix = parser["restart"]["restart_prefix"].as(stepPrefix);
+ stepPrefix = parser["Restart"]["Restart_prefix"].as(stepPrefix);
}
if(parser["TimeIntegrator"]["end_time"]){
@@ -694,13 +817,21 @@ int main( int iarg, char* carg[] )
<< ", min ds: " << std::scientific << std::setprecision( 1 ) << SpatialOps::nebo_min( fml.field_ref( tagsE.dsTag ))
<< ", max ds: " << std::scientific << std::setprecision( 1 ) << SpatialOps::nebo_max( fml.field_ref( tagsE.dsTag ))
<< std::endl;
+ if(reactorType == "PFR"){
+ const Particles::ParticleEnsembleTags tagsEpart( Expr::STATE_NONE, particleNumArray );
+ const PlugFlowReactorInterface::PlugFlowReactorTags tagsEpfr( Expr::STATE_NONE);
+ std::cout << ", u: " << std::scientific << std::setprecision( 1 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpfr.uTag ))
+ << ", dpdx: " << std::scientific << std::setprecision( 1 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpfr.dpdxTag ))
+ << std::endl;
+ }
if( parser["Particles"] ){
const Particles::ParticleEnsembleTags tagsEpart( Expr::STATE_NONE, particleNumArray );
std::cout << ", max Re: " << std::scientific << std::setprecision( 5 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpart.reynoldsNumberTags[0] ))
<< ", max cppart: " << std::scientific << std::setprecision( 5 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpart.partCpTags[0] ))
<< ", max Tpart: " << std::scientific << std::setprecision( 5 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpart.partTempTags[0] ))
<< ", max massEachPart: " << std::scientific << std::setprecision( 7 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpart.massEachPartTags[0] ))
- << ", max numPart: " << std::scientific << std::setprecision( 7 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpart.partNumTags[0] ))
+ << ", max massFracPart: " << std::scientific << std::setprecision( 7 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpart.partMassFracTags[0] ))
+ << ", max numFracPart: " << std::scientific << std::setprecision( 7 ) << SpatialOps::nebo_max( fml.field_ref( tagsEpart.partNumFracTags[0] ))
<< std::endl;
if( parser["Particles"]["ParticleType"].as() == "Coal" ){
const Coal::CoalEnsembleTags tagsEcoal( Expr::STATE_NONE, particleNumArray );
diff --git a/src/PlugFlowReactor/CMakeLists.txt b/src/PlugFlowReactor/CMakeLists.txt
new file mode 100755
index 0000000000000000000000000000000000000000..f956a58764f3426dedc2ee20296c299d22909bb3
--- /dev/null
+++ b/src/PlugFlowReactor/CMakeLists.txt
@@ -0,0 +1,10 @@
+set( src
+ PlugFlowReactorInterface.cpp
+ )
+
+# advertise this upward, appending the path information...
+get_filename_component( dir ${CMAKE_CURRENT_LIST_FILE} PATH )
+foreach( file ${src} )
+ list( APPEND SRCS ${dir}/${file} )
+endforeach()
+set( PARSER_SRC ${PARSER_SRC} ${SRCS} PARENT_SCOPE )
diff --git a/src/PlugFlowReactor/DpDx.h b/src/PlugFlowReactor/DpDx.h
new file mode 100644
index 0000000000000000000000000000000000000000..746e7d65b1d8a254089d8c1fd37a87eda5b6e437
--- /dev/null
+++ b/src/PlugFlowReactor/DpDx.h
@@ -0,0 +1,205 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2016-2017 The University of Utah
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/**
+ * @file DpDx.h
+ * @par Getting `Dp/Dx` term in continuity and momentum equation for plug flow reactor
+ * @authors Hang
+ */
+
+#ifndef DpDx_H_
+#define DpDx_H_
+
+#include
+
+namespace PFR{
+
+ /**
+ * @class DpDx
+ * @ingroup PFR
+ * @brief Getting `Dp/Dx` term in continuity and momentum equation for plug flow reactor
+ * @author Hang
+ *
+ * Ideal Gas EOS is used to get \f$\frac{Dp}{Dx}$\f. From ideal gas EOS, we can get \f$p=\frac{\rho RT}{M}\f$.
+ * \f[
+ * \frac{Dp}{Dx} = \frac{RT}{M}\frac{D\rho}{Dx}+\frac{\rho R}{M}\frac{DT}{Dx}-\frac{\rho R T}{M^2}\frac{DM}{Dx}
+ * \f]
+ * Also,
+ * \f[
+ * \frac{DT}{Dx} = \frac{1}{cp}\left(\frac{Dh}{Dx}-\sum_{i=1}^{n_s-1}(h_i-h_{n_s})\frac{DY_i}{Dx}\right)
+ * \f]
+ * \f[
+ * \frac{DM}{Dx} = -M^2 \sum_{i=1}^{n_s-1}(\frac{1}{M_i}-\frac{1}{M_{n_s}})\frac{DY_i}{Dx}
+ * \f]
+ * From continuity equation,
+ * \f[
+ * \frac{D\rho}{Dx}=\frac{1}{u^2}\frac{Dp}{Dx}+\frac{2S_m}{u}
+ * \f]
+ * From enthalpy equation,
+ * \f[
+ * \frac{Dh}{Dx}=\frac{Q+S_h-hS_m}{\rho u}+\frac{\frac{Dp}{Dx}}{\rho}
+ * \f]
+ * Substitute \f$\frac{DT}{Dx}\f$, \f$\frac{DM}{Dx}\f$, \f$\frac{D\rho}{Dx}\f$ and \f$\frac{Dp}{Dx}\f$ into \f$\frac{Dp}{Dx}\f$,
+ * \f[
+ * \frac{Dp}{Dx} = \frac{\frac{2S_mT}{u}+\frac{Q+S_h-hS_m}{ucp}-\sum_{i=1}^{n_s-1}\left(\frac{\rho}{cp}(h_i-h_{n_s})-\rho MT(\frac{1}{M_i}-\frac{1}{M_{n_s}})\right)\frac{DY_i}{Dx}}{\frac{M}{R}-\frac{T}{u^2}-\frac{1}{cp}}
+ * \f]
+ * Here, \f$n_s\f$ is the number of species.
+ * \f$\rho\f$, \f$u\f$, \f$T\f$ and \f$cp\f$ are the density, velocity, temperature and heat capacity of gas phase.
+ * \f$Q\f$ is the heat transfer term in enthalpy equation (J/m^3/s), including heat transfer between gas and surroundings and between particles and gas.
+ * \f$S_m\f$ and \f$S_h\f$ are the mass and energy source terms from particle to gas. They are not added here.
+ * They are added using `attach_dependency_to_expression` in each sub-models of particle reactions.
+ */
+ template< typename FieldT >
+ class DpDx : public Expr::Expression
+ {
+ const double gasConstant_;
+ const int nspec_;
+ DECLARE_FIELDS( FieldT, temp_, mmw_, rho_, cp_, u_, enthHeatRhs_ );
+ DECLARE_VECTOR_OF_FIELDS(FieldT, yiRhs_);
+ DECLARE_VECTOR_OF_FIELDS(FieldT, specEnth_);
+ DECLARE_VECTOR_OF_FIELDS(FieldT, specMw_);
+
+ DpDx( const Expr::Tag& uTag,
+ const Expr::Tag& tempTag,
+ const Expr::Tag& rhoTag,
+ const Expr::Tag& mmwTag,
+ const Expr::Tag& cpTag,
+ const Expr::Tag& enthHeatRhsTag,
+ const Expr::TagList& yiRhsTags,
+ const Expr::TagList& specEnthTags,
+ const Expr::TagList& specMwTags)
+ : Expr::Expression(),
+ gasConstant_( CanteraObjects::gas_constant() ),
+ nspec_(yiRhsTags.size())
+ {
+ this->set_gpu_runnable(true);
+ u_ = this->template create_field_request( uTag );
+ temp_ = this->template create_field_request( tempTag );
+ rho_ = this->template create_field_request( rhoTag );
+ mmw_ = this->template create_field_request( mmwTag );
+ cp_ = this->template create_field_request( cpTag );
+ enthHeatRhs_ = this->template create_field_request( enthHeatRhsTag );
+ this->template create_field_vector_request( yiRhsTags, yiRhs_ );
+ this->template create_field_vector_request( specEnthTags, specEnth_ );
+ this->template create_field_vector_request( specMwTags, specMw_ );
+ }
+
+ public:
+ class Builder : public Expr::ExpressionBuilder
+ {
+ const Expr::Tag tempTag_, mmwTag_, rhoTag_, cpTag_, uTag_, enthHeatRhsTag_ ;
+ const Expr::TagList yiRhsTags_, specEnthTags_, specMwTags_;
+ public:
+ /**
+ * @brief The mechanism for building a ConvectionHeatRateCV object
+ * @tparam FieldT
+ * @param dpdxTag Dp/Dx` term in continuity and momentum equation for plug flow reactor
+ * @param uTag Gas phase velocity
+ * @param tempTag Gas phase temperature
+ * @param rhoTag Gas phase density
+ * @param mmwTag Mixture molecular weight of gas phase
+ * @param cpTag Specific heat capacity of gas phase
+ * @param enthHeatRhsTag Heat RHS in enthalpy equation (has been divided by \f$\rho u\f$)
+ * @param yiRhsTags Full RHS of species equations
+ * @param specEnthTags species specific enthalpy
+ * @param specMwTags molecular weight of species
+ */
+ Builder( const Expr::Tag& dpdxTag,
+ const Expr::Tag& uTag,
+ const Expr::Tag& tempTag,
+ const Expr::Tag& rhoTag,
+ const Expr::Tag& mmwTag,
+ const Expr::Tag& cpTag,
+ const Expr::Tag& enthHeatRhsTag,
+ const Expr::TagList& yiRhsTags,
+ const Expr::TagList& specEnthTags,
+ const Expr::TagList& specMwTags)
+ : Expr::ExpressionBuilder( dpdxTag ),
+ uTag_( uTag ),
+ tempTag_( tempTag ),
+ rhoTag_( rhoTag ),
+ mmwTag_( mmwTag ),
+ cpTag_( cpTag ),
+ enthHeatRhsTag_( enthHeatRhsTag ),
+ yiRhsTags_( yiRhsTags ),
+ specEnthTags_( specEnthTags ),
+ specMwTags_( specMwTags )
+ {}
+ ~Builder(){}
+ Expr::ExpressionBase* build() const{
+ return new DpDx( uTag_, tempTag_, rhoTag_, mmwTag_, cpTag_, enthHeatRhsTag_, yiRhsTags_, specEnthTags_, specMwTags_ );
+ }
+ };
+
+
+ void evaluate()
+ {
+ using namespace SpatialOps;
+ FieldT& result = this->value();
+ const FieldT& u = u_ ->field_ref();
+ const FieldT& temp = temp_ ->field_ref();
+ const FieldT& rho = rho_ ->field_ref();
+ const FieldT& mmw = mmw_ ->field_ref();
+ const FieldT& cp = cp_ ->field_ref();
+ const FieldT& enthHeat = enthHeatRhs_ ->field_ref();
+ const FieldT& hn = specEnth_[nspec_-1]->field_ref();
+ const FieldT& mwn = specMw_[nspec_-1] ->field_ref();
+ result <<= enthHeat*rho/cp;
+ for( size_t i=0; ifield_ref();
+ const FieldT& hi = specEnth_[i]->field_ref();
+ const FieldT& mwi = specMw_[i] ->field_ref();
+ result <<= result - (rho/cp*(hi-hn)-rho*mmw*temp*(1/mwi-1/mwn))*yiRhs;
+ }
+ result <<= result / (mmw/gasConstant_-temp/square(u)-1/cp);
+ }
+
+ void sensitivity( const Expr::Tag& sensVarTag )
+ {
+ FieldT& dfdv = this->sensitivity_result( sensVarTag );
+ FieldT& result = this->value();
+ const FieldT& u = u_ ->field_ref(); const FieldT& dudv = u_ ->sens_field_ref(sensVarTag);
+ const FieldT& temp = temp_ ->field_ref(); const FieldT& dtempdv = temp_ ->sens_field_ref(sensVarTag);
+ const FieldT& rho = rho_ ->field_ref(); const FieldT& drhodv = rho_ ->sens_field_ref(sensVarTag);
+ const FieldT& mmw = mmw_ ->field_ref(); const FieldT& dmmwdv = mmw_ ->sens_field_ref(sensVarTag);
+ const FieldT& cp = cp_ ->field_ref(); const FieldT& dcpdv = cp_ ->sens_field_ref(sensVarTag);
+ const FieldT& enthHeat = enthHeatRhs_ ->field_ref(); const FieldT& denthHeatdv = enthHeatRhs_ ->sens_field_ref(sensVarTag);
+ const FieldT& hn = specEnth_[nspec_-1]->field_ref(); const FieldT& dhndv = specEnth_[nspec_-1]->sens_field_ref(sensVarTag);
+ const FieldT& mwn = specMw_[nspec_-1] ->field_ref(); const FieldT& dmwndv = specMw_[nspec_-1] ->sens_field_ref(sensVarTag);
+ dfdv <<= denthHeatdv*rho/cp + enthHeat*drhodv/cp - enthHeat*rho/square(cp)*dcpdv;
+ for( size_t i=0; ifield_ref(); const FieldT& dyiRhsdv = yiRhs_[i] ->sens_field_ref(sensVarTag);
+ const FieldT& hi = specEnth_[i]->field_ref(); const FieldT& dhidv = specEnth_[i]->sens_field_ref(sensVarTag);
+ const FieldT& mwi = specMw_[i] ->field_ref(); const FieldT& dmwidv = specMw_[i] ->sens_field_ref(sensVarTag);
+ dfdv <<= dfdv - (drhodv/cp*(hi-hn)-rho/square(cp)*dcpdv*(hi-hn)+rho/cp*(dhidv-dhndv) - (drhodv*mmw*temp+rho*dmmwdv*temp+rho*mmw*dtempdv)*(1/mwi-1/mwn)) *yiRhs
+ - (rho/cp*(hi-hn)-rho*mmw*temp*(1/mwi-1/mwn))*dyiRhsdv;
+ }
+ dfdv <<= dfdv / (mmw/gasConstant_-temp/square(u)-1/cp)
+ - result/(mmw/gasConstant_-temp/square(u)-1/cp)*(dmmwdv/gasConstant_-dtempdv/square(u)+2*temp/cube(u)*dudv+dcpdv/square(cp));
+ }
+ };
+
+} // namespace PFR
+
+#endif /* DpDx_H_ */
diff --git a/src/PlugFlowReactor/PFRTransformationMatrixExpressions.h b/src/PlugFlowReactor/PFRTransformationMatrixExpressions.h
new file mode 100644
index 0000000000000000000000000000000000000000..9972d14a4338a461c8cb489ff18ebe0a0806e790
--- /dev/null
+++ b/src/PlugFlowReactor/PFRTransformationMatrixExpressions.h
@@ -0,0 +1,126 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2016-2017 The University of Utah
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/**
+ * \file PFRTransformationMatrixExpressions.h
+ * \par Getting the expressions needed to build transformation matrix for plug flow reactor
+ * \authors Hang
+ */
+
+#ifndef PFRTRANSFORMATIONMATRIXEXPRESSIONS_H_
+#define PFRTRANSFORMATIONMATRIXEXPRESSIONS_H_
+
+#include
+
+namespace PFR{
+
+ /**
+ * @class SourceOverRhoU
+ * @ingroup PFR
+ * @brief Calculate the ratio between volumetric source term and (density * velocity).
+ * It is needed for the source term for plug flow reactor.
+ * @author Hang
+ *
+ * The result is given as
+ * \f[
+ * K = c \frac{\omega_i}{\rho u}
+ * \f]
+ *
+ * The sensitivity of this term \f$ \frac{\partial K}{\partial V} \f$ is
+ * \f[
+ * \frac{\partial K}{\partial \phi} = c \left(\frac{1}{\rho u} \frac{\partial \omega_i}{\partial \phi}
+ * - \frac{\omega_i}{\rho^2 u }\frac{\partial \rho}{\partial \phi}
+ * - \frac{\omega_i}{\rho u^2 }\frac{\partial u}{\partial \phi} \right)
+ * \f]
+ */
+
+ template
+ class SourceOverRhoU : public Expr::Expression {
+ DECLARE_FIELDS( FieldT, rho_, source_, u_);
+ const double coeff_;
+
+ SourceOverRhoU( const Expr::Tag sourceTag,
+ const Expr::Tag rhoTag,
+ const Expr::Tag uTag,
+ const double coefficient)
+ : Expr::Expression(),
+ coeff_(coefficient){
+ this->set_gpu_runnable( true );
+ rho_ = this->template create_field_request( rhoTag );
+ source_ = this->template create_field_request( sourceTag );
+ u_ = this->template create_field_request( uTag );
+ }
+
+ public:
+ class Builder : public Expr::ExpressionBuilder {
+ const Expr::Tag sourceTag_, rhoTag_, uTag_;
+ const double coeff_;
+ public:
+ /**
+ * @brief The mechanism for building a RatePFR object
+ * @tparam FieldT
+ * @param resultTag Result of RatePFR
+ * @param sourceTag volumetric source term
+ * @param rhoTag Density of gas phase
+ * @param uTag Velocity of gas phase
+ * @param coefficient coefficient in the expression. It is 1 or -1 for present case
+ */
+ Builder( const Expr::Tag resultTag,
+ const Expr::Tag sourceTag,
+ const Expr::Tag rhoTag,
+ const Expr::Tag uTag,
+ const double coefficient):
+ Expr::ExpressionBuilder( resultTag ),
+ sourceTag_( sourceTag ),
+ rhoTag_( rhoTag ),
+ uTag_( uTag ),
+ coeff_( coefficient ){}
+
+ ~Builder(){}
+
+ Expr::ExpressionBase* build() const{
+ return new SourceOverRhoU( sourceTag_, rhoTag_, uTag_, coeff_ );
+ }
+ };
+
+ void evaluate(){
+ using namespace SpatialOps;
+ this->value() <<= coeff_ * source_->field_ref() / rho_->field_ref() / u_->field_ref();
+ }
+
+ void sensitivity( const Expr::Tag& sensVarTag ){
+ FieldT & dfdv = this->sensitivity_result( sensVarTag );
+ const FieldT& source = source_->field_ref();
+ const FieldT& rho = rho_->field_ref();
+ const FieldT& u = u_->field_ref();
+ const FieldT& dsourcedv = source_->sens_field_ref( sensVarTag );
+ const FieldT& drhodv = rho_->sens_field_ref( sensVarTag );
+ const FieldT& dudv = u_->sens_field_ref( sensVarTag );
+ dfdv <<= coeff_ * (dsourcedv/rho/u - source/square(rho)/u*drhodv - source/rho/square(u)*dudv);
+ }
+ };
+}
+
+
+#endif /* PFRTRANSFORMATIONMATRIXEXPRESSIONS_H_ */
diff --git a/src/PlugFlowReactor/PlugFlowReactorInterface.cpp b/src/PlugFlowReactor/PlugFlowReactorInterface.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..1ccbad94cf8c4ebe04636f8da5449351d16677bb
--- /dev/null
+++ b/src/PlugFlowReactor/PlugFlowReactorInterface.cpp
@@ -0,0 +1,235 @@
+/*
+ * The MIT License
+ *
+ * Copyright (c) 2016-2017 The University of Utah
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include
+#include "ReactorEnsembleUtil.h"
+
+#include
+
+#include
+
+// PoKiTT
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "TransformationMatrixExpressions.h"
+#include "PFRTransformationMatrixExpressions.h"
+#include "PlugFlowReactorInterface.h"
+#include "DpDx.h"
+
+namespace PlugFlowReactorInterface{
+
+ typedef Expr::PlaceHolder ::Builder PlaceHolderT;
+ typedef Expr::LinearFunction::Builder LinearFunctionT;
+ typedef Expr::ConstantExpr ::Builder ConstantT;
+
+ typedef pokitt::SpeciesEnthalpy ::Builder SpecEnthT;
+ typedef pokitt::HeatCapacity_Cp ::Builder HeatCpT;
+ typedef pokitt::MixtureMolWeight ::Builder MixtureMWT;
+ typedef pokitt::Temperature ::Builder TemperatureT;
+ typedef pokitt::ReactionRates ::Builder RatesT;
+ typedef pokitt::Enthalpy ::Builder EnthalpyT;
+ typedef pokitt::SpeciesN ::Builder SpeciesNT;
+ typedef pokitt::Pressure ::Builder PressureT;
+ typedef pokitt::Density ::Builder DensityT;
+
+ typedef ReactorEnsembleUtil::DivisionExpression ::Builder DivideT;
+ typedef ReactorEnsembleUtil::YNRHS ::Builder YNRHST;
+ typedef ReactorEnsembleUtil::InverseExpression ::Builder InverseT;
+ typedef ReactorEnsembleUtil::SpeciesEnthOffsets ::Builder SpcEnthOffsetsT;
+
+ typedef PFR::SourceOverRhoU ::Builder SourceOverRhoUT;
+ typedef PFR::DpDx ::Builder DpDxT;
+
+ //---------------------------------------------------------------------------
+
+ PlugFlowReactorTags::
+ PlugFlowReactorTags( const Expr::Context& state )
+ : uTag ( Expr::Tag( "u" , state ) ),
+ dpdxTag ( Expr::Tag( "dpdx" , state ) ),
+ uFullRhsTag ( Expr::Tag( "u_full_rhs" , state ) ){}
+
+ //---------------------------------------------------------------------------
+
+ void setup_pfr( std::set& initRoots,
+ Expr::ExpressionFactory& initFactory,
+ const YAML::Node& parser ){
+
+ const ReactorEnsembleUtil::ReactorEnsembleTags tags( Expr::STATE_N );
+ const PlugFlowReactorInterface::PlugFlowReactorTags tagsPFR( Expr::STATE_N );
+
+ // initial state
+ initRoots.insert( initFactory.register_expression( new EnthalpyT( tags.enthTag, tags.tempTag, tags.massTags )));
+ initRoots.insert( initFactory.register_expression( new DensityT( tags.rhoTag, tags.tempTag, tags.presTag, tags.mmwTag )));
+
+ const int ns = CanteraObjects::number_species();
+ for( size_t i = 0;i < ns;++i ){
+ initRoots.insert( initFactory.register_expression( new SpecEnthT( tags.specEnthTags[i], tags.tempTag, i )));
+ }
+ }
+
+ //---------------------------------------------------------------------------
+
+ void build_equation_system_pfr( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator * integrator,
+ const boost::shared_ptr csj,
+ const YAML::Node& parser,
+ int& equIndex,
+ const double tempTolerance,
+ const double maximumTemp,
+ const double maxTempIter ){
+ const ReactorEnsembleUtil::ReactorEnsembleTags tagsE( Expr::STATE_NONE );
+ const PlugFlowReactorInterface::PlugFlowReactorTags tagsEpfr( Expr::STATE_NONE );
+
+ const int ns = CanteraObjects::number_species();
+
+ Expr::ExpressionFactory& execFactory = integrator->factory();
+
+ integrator->register_root_expression( new PlaceHolderT( tagsE.timeTag ));
+ execFactory.register_expression( new PlaceHolderT( tagsE.convecCoeffTag ) );
+ execFactory.register_expression( new PlaceHolderT( tagsE.convecTempTag ) );
+ integrator->register_root_expression( new PressureT( tagsE.presTag, tagsE.tempTag, tagsE.rhoTag, tagsE.mmwTag));
+
+ execFactory.register_expression( new SpeciesNT( tagsE.massTags[ns - 1], tagsE.massTags, pokitt::CLIPSPECN ));
+
+ execFactory.register_expression( new TemperatureT( tagsE.tempTag, tagsE.massTags, tagsE.enthTag,
+ Expr::Tag(), tempTolerance, maximumTemp, maxTempIter ));
+ execFactory.register_expression( new MixtureMWT( tagsE.mmwTag, tagsE.massTags, pokitt::FractionType::MASS ));
+
+ const std::vector& SpecMW = CanteraObjects::molecular_weights();
+ for( size_t i = 0;i < ns;++i ){
+ execFactory.register_expression( new SpecEnthT( tagsE.specEnthTags[i], tagsE.tempTag, i ));
+ execFactory.register_expression( new ConstantT( tagsE.molarWeightTags[i], SpecMW[i] ));
+ }
+
+ execFactory.register_expression( new HeatCpT( tagsE.cpTag, tagsE.tempTag, tagsE.massTags ));
+
+ // the rhs
+ if ((!parser["ReactionInGas"]) or (parser["ReactionInGas"].as() == "True") or (parser["ReactionInGas"].as() == "true") ){
+ execFactory.register_expression( new RatesT( tagsE.rateTags, tagsE.tempTag, tagsE.rhoTag, tagsE.massTags, tagsE.mmwTag, csj ));
+ for( size_t i = 0;i < ns - 1;++i ){
+ execFactory.register_expression( new SourceOverRhoUT( tagsE.yFullRhsTags[i], tagsE.rateTags[i], tagsE.rhoTag, tagsEpfr.uTag, 1.0 )); }
+ }
+ else{
+ for( size_t i = 0;i < ns - 1;++i ){
+ execFactory.register_expression( new ConstantT( tagsE.yFullRhsTags[i], 0 )); }
+ }
+ execFactory.register_expression( new DpDxT( tagsEpfr.dpdxTag, tagsEpfr.uTag, tagsE.tempTag, tagsE.rhoTag, tagsE.mmwTag, tagsE.cpTag,
+ tagsE.enthHeatRhsTag, tagsE.yFullRhsTags, tagsE.specEnthTags, tagsE.molarWeightTags));
+ // the full rhs
+ execFactory.register_expression( new SourceOverRhoUT(tagsEpfr.uFullRhsTag, tagsEpfr.dpdxTag, tagsE.rhoTag, tagsEpfr.uTag, -1.0));
+ execFactory.register_expression( new SourceOverRhoUT(tagsE.rhoFullRhsTag, tagsEpfr.dpdxTag, tagsEpfr.uTag, tagsEpfr.uTag, 1.0));
+
+ execFactory.register_expression( new DivideT(tagsE.enthFullRhsTag, tagsEpfr.dpdxTag, tagsE.rhoTag));
+ execFactory.attach_dependency_to_expression(tagsE.enthHeatRhsTag, tagsE.enthFullRhsTag, Expr::ADD_SOURCE_EXPRESSION);
+
+ execFactory.register_expression( new YNRHST( tagsE.yFullRhsTags[ns-1], tagsE.yFullRhsTags));
+ // matrix transformation fields
+ execFactory.register_expression( new SpcEnthOffsetsT( tagsE.enthOffsetTags, tagsE.cpTag, tagsE.specEnthTags ));
+ execFactory.register_expression( new InverseT( tagsE.invCpTag, tagsE.cpTag ));
+
+ // add variables to the integrator
+ integrator->add_variable( tagsEpfr.uTag.name(), tagsEpfr.uFullRhsTag, equIndex, equIndex);
+ equIndex += 1;
+ integrator->add_variable( tagsE.rhoTag.name(), tagsE.rhoFullRhsTag, equIndex, equIndex );
+ equIndex += 1;
+ integrator->add_variable( tagsE.enthTag.name(), tagsE.enthFullRhsTag, equIndex, equIndex );
+ equIndex += 1;
+ for( size_t i = 0;i < ns - 1;++i ){
+ integrator->add_variable( tagsE.massTags[i].name(), tagsE.yFullRhsTags[i], i + 3, i + 3 );
+ }
+ equIndex += ns-2;
+ }
+
+ //---------------------------------------------------------------------------
+
+ void initialize_pfr( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator * integrator,
+ Expr::FieldManagerList& fml,
+ const Expr::ExprPatch& patch,
+ Expr::ExpressionTree& initTree,
+ const Expr::Tag dsTag,
+ const double gesatMax,
+ const double timeStep,
+ const bool isRestart){
+ const ReactorEnsembleUtil::ReactorEnsembleTags tagsE( Expr::STATE_NONE );
+ const ReactorEnsembleUtil::ReactorEnsembleTags tagsN( Expr::STATE_N );
+ const PlugFlowReactorInterface::PlugFlowReactorTags tagsEpfr( Expr::STATE_NONE );
+
+ const int ns = CanteraObjects::number_species();
+
+ if(!isRestart){
+ initTree.register_fields( fml );
+ initTree.bind_fields( fml );
+ initTree.lock_fields( fml );
+ std::ofstream initOut( "init-tree-reactor-ensemble.dot" );
+ initTree.write_tree( initOut );
+ }
+
+ SpatialOps::OperatorDatabase sodb;
+ integrator->prepare_for_integration( fml, sodb, patch.field_info());
+
+ {
+ std::ofstream execOut( "exec-tree-reactor-ensemble.dot" );
+ integrator->get_tree().write_tree( execOut );
+ }
+
+ fml.allocate_fields( patch.field_info());
+ if(!isRestart){
+ initTree.execute_tree();
+
+ // copy the residence time from STATE_N as initialized to STATE_NONE as used in mixing time expressions
+ integrator->copy_from_initial_condition_to_execution( tagsE.convecCoeffTag.name());
+ integrator->copy_from_initial_condition_to_execution( tagsE.convecTempTag.name());
+
+ // copy the temperature because we need it for the initial guess in the T solve
+ integrator->copy_from_initial_condition_to_execution( tagsE.tempTag.name());
+
+ }
+
+ // initialize the simulation time and time step
+ // The time step must be initialized here because we need to update t -> t + dt
+ // before the dual time execution tree runs.
+ fml.field_ref( tagsE.timeTag ) <<= 0.;
+ fml.field_ref( tagsE.dtTag ) <<= timeStep;
+
+ // initialize the dual time step
+ fml.field_ref( dsTag ) <<= gesatMax;
+
+ // jcs why are we locking these fields? Can this be done automatically?
+ integrator->lock_field( tagsE.dsTag );
+ integrator->lock_field( tagsE.convecCoeffTag );
+ integrator->lock_field( tagsE.convecTempTag );
+ integrator->lock_field( tagsE.timeTag );
+ integrator->lock_field( tagsE.dtTag );
+ integrator->lock_field( tagsE.tempTag );
+ integrator->lock_field( tagsE.gesatEigTag );
+ }
+ //---------------------------------------------------------------------------
+
+} // namespace PlugFlowReactorInterface
diff --git a/src/PlugFlowReactor/PlugFlowReactorInterface.h b/src/PlugFlowReactor/PlugFlowReactorInterface.h
new file mode 100644
index 0000000000000000000000000000000000000000..7c822b0a1d2cd5efad1efd780f396d6f7d6c985f
--- /dev/null
+++ b/src/PlugFlowReactor/PlugFlowReactorInterface.h
@@ -0,0 +1,64 @@
+/**
+ * \file PlugFlowReactorInterface.h
+ * \date July, 2020
+ * \author Hang
+ */
+
+#ifndef PLUGFLOWREACTORINTERFACE_H_
+#define PLUGFLOWREACTORINTERFACE_H_
+
+#include
+
+#include
+#include
+
+#include
+#include
+
+#include
+#include
+
+#include
+
+namespace PlugFlowReactorInterface{
+
+ struct PlugFlowReactorTags
+ {
+ const Expr::Tag uTag, ///< velocity
+ dpdxTag, ///< Dp/Dx in continuity and momentum equation
+ uFullRhsTag; ///< full RHS for velocity equation
+ PlugFlowReactorTags( const Expr::Context& state );
+ };
+ /**
+ * @brief Set the initial conditions for plug flow reactor
+ */
+ void setup_pfr( std::set& initRoots,
+ Expr::ExpressionFactory& initFactory,
+ const YAML::Node& parser);
+ /**
+ * @brief Register all expressions required for plug flow reactor and add equation into the time integrator
+ */
+ void build_equation_system_pfr( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator* integrator,
+ const boost::shared_ptr csj,
+ const YAML::Node& parser,
+ int& equIndex,
+ const double tempTolerance = 1e-3,
+ const double maximumTemp = 5000,
+ const double maxTempIter = 1000 );
+
+ /**
+ * @brief Initialize the reactor system for plug flow reactor
+ */
+ void initialize_pfr( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator* integrator,
+ Expr::FieldManagerList& fml,
+ const Expr::ExprPatch& patch,
+ Expr::ExpressionTree& initTree,
+ const Expr::Tag dsTag,
+ const double gesatMax,
+ const double timeStep,
+ const bool isRestart);
+
+} // namespace PlugFlowReactorInterface
+
+
+#endif /* PLUGFLOWREACTORINTERFACE_H_ */
diff --git a/src/ReactorEnsembleUtil.cpp b/src/ReactorEnsembleUtil.cpp
index 8ac018d1623438cde0eb481455c66bb26f6591d0..89c7adb2bc43be361ef5bd514a9d49a55e86d057 100644
--- a/src/ReactorEnsembleUtil.cpp
+++ b/src/ReactorEnsembleUtil.cpp
@@ -213,6 +213,7 @@ namespace ReactorEnsembleUtil{
void build_equation_system_cv( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator* integrator,
const boost::shared_ptr csj,
const YAML::Node& parser,
+ int& equIndex,
const double tempTolerance,
const double maximumTemp,
const double maxTempIter )
@@ -298,11 +299,14 @@ namespace ReactorEnsembleUtil{
execFactory.register_expression( new InverseT( tagsE.invrhoTag, tagsE.rhoTag ) );
// add variables to the integrator
- integrator->add_variable( tagsE.rhoTag.name(), tagsE.rhoFullRhsTag, 0, 0 );
- integrator->add_variable( tagsE.rhoEgyTag.name(), tagsE.rhoEgyFullRhsTag, 1, 1 );
+ integrator->add_variable( tagsE.rhoTag.name(), tagsE.rhoFullRhsTag, equIndex, equIndex );
+ equIndex += 1;
+ integrator->add_variable( tagsE.rhoEgyTag.name(), tagsE.rhoEgyFullRhsTag, equIndex, equIndex );
+ equIndex += 1;
for( size_t i=0; iadd_variable( tagsE.rhoYTags[i].name(), tagsE.rhoYFullRhsTags[i], i + 2, i + 2 );
+ integrator->add_variable( tagsE.rhoYTags[i].name(), tagsE.rhoYFullRhsTags[i], i + equIndex, i + equIndex );
}
+ equIndex += ns-2;
}
//---------------------------------------------------------------------------
@@ -420,6 +424,7 @@ namespace ReactorEnsembleUtil{
void build_equation_system_cp( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator * integrator,
const boost::shared_ptr csj,
const YAML::Node& parser,
+ int& equIndex,
const double tempTolerance,
const double maximumTemp,
const double maxTempIter ){
@@ -505,11 +510,14 @@ namespace ReactorEnsembleUtil{
execFactory.register_expression( new HmixPartialYT( tagsE.hMixPartialYTags, tagsE.rhoTag, tagsE.rhoInflowTag, tagsE.tauMixTag, tagsE.specEnthTags ));
// add variables to the integrator
- integrator->add_variable( tagsE.presTag.name(), tagsE.presFullRhsTag, 0, 0 );
- integrator->add_variable( tagsE.enthTag.name(), tagsE.enthFullRhsTag, 1, 1 );
+ integrator->add_variable( tagsE.presTag.name(), tagsE.presFullRhsTag, equIndex, equIndex );
+ equIndex += 1;
+ integrator->add_variable( tagsE.enthTag.name(), tagsE.enthFullRhsTag, equIndex, equIndex );
+ equIndex += 1;
for( size_t i = 0;i < ns - 1;++i ){
- integrator->add_variable( tagsE.massTags[i].name(), tagsE.yFullRhsTags[i], i + 2, i + 2 );
+ integrator->add_variable( tagsE.massTags[i].name(), tagsE.yFullRhsTags[i], i + equIndex, i + equIndex );
}
+ equIndex += ns-2;
}
//---------------------------------------------------------------------------
diff --git a/src/ReactorEnsembleUtil.h b/src/ReactorEnsembleUtil.h
index 988f050b2831f31b97a2438e7c2ce746105ce979..4c757a366b5a84faed4f0b32ee4ced7fe62bc23a 100644
--- a/src/ReactorEnsembleUtil.h
+++ b/src/ReactorEnsembleUtil.h
@@ -141,6 +141,7 @@ namespace ReactorEnsembleUtil{
void build_equation_system_cv( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator* integrator,
const boost::shared_ptr csj,
const YAML::Node& parser,
+ int& equIndex,
const double tempTolerance = 1e-3,
const double maximumTemp = 5000,
const double maxTempIter = 1000 );
@@ -168,6 +169,7 @@ namespace ReactorEnsembleUtil{
void build_equation_system_cp( Expr::DualTime::BlockImplicitBDFDualTimeIntegrator * integrator,
const boost::shared_ptr csj,
const YAML::Node& parser,
+ int& equIndex,
const double tempTolerance = 1e-3,
const double maximumTemp = 5000,
const double maxTempIter = 1000 );
diff --git a/src/TransformationMatrixExpressions.h b/src/TransformationMatrixExpressions.h
index 6b4d2eadba998684a1ce92fdb93db700e667a12e..e30c9d0c132ae3d97673e71dce1aa55db8e0b2a5 100644
--- a/src/TransformationMatrixExpressions.h
+++ b/src/TransformationMatrixExpressions.h
@@ -215,6 +215,11 @@ namespace ReactorEnsembleUtil{
using namespace SpatialOps;
this->value() <<= numerator_->field_ref() / denominator_->field_ref();
}
+ void sensitivity( const Expr::Tag& sensVarTag ){
+ FieldT & dfdv = this->sensitivity_result( sensVarTag );
+ dfdv <<= numerator_->sens_field_ref( sensVarTag ) / denominator_->field_ref()
+ - numerator_->field_ref() / square( denominator_->field_ref()) * denominator_->sens_field_ref(sensVarTag);
+ }
};
/**
diff --git a/src/parser/ParseInputFile.cpp b/src/parser/ParseInputFile.cpp
index 3b0d2ecdcfb5edcf30ea124e871a17585968c358..45b8f6de702377b3f399a0e19a10738af6a6c147 100644
--- a/src/parser/ParseInputFile.cpp
+++ b/src/parser/ParseInputFile.cpp
@@ -26,6 +26,7 @@
#include
#include "particles/ParticleInterface.h"
+#include "PlugFlowReactor/PlugFlowReactorInterface.h"
//-------------------------------------------------------------------
@@ -90,7 +91,8 @@ parse_species_comps( const YAML::Node& parser )
//-------------------------------------------------------------------
void parse_mixture_fraction( Expr::ExpressionFactory& factory,
- const YAML::Node& parser )
+ const YAML::Node& parser,
+ const std::string reactorType)
{
const SpecInfo fuelComp = parse_species_comps( parser["fuel" ] );
const SpecInfo oxidComp = parse_species_comps( parser["oxidizer"] );
@@ -132,11 +134,13 @@ void parse_mixture_fraction( Expr::ExpressionFactory& factory,
// create the expression to calculate the composition from the mixture fraction
typedef pokitt::MixtureFractionToSpecies Z2Y;
typedef Z2Y::Builder MixFracToSpec;
- factory.register_expression( new MixFracToSpec( tagsN.massInflowTags,
- tagsN.mixtureFractionTag,
- mole_to_mass( fuelComp ),
- mole_to_mass( oxidComp ),
- reacted ? Z2Y::REACTED_COMPOSITION : Z2Y::UNREACTED_COMPOSITION ) );
+ if( reactorType !="PFR"){
+ factory.register_expression( new MixFracToSpec( tagsN.massInflowTags,
+ tagsN.mixtureFractionTag,
+ mole_to_mass( fuelComp ),
+ mole_to_mass( oxidComp ),
+ reacted ? Z2Y::REACTED_COMPOSITION : Z2Y::UNREACTED_COMPOSITION ) );
+ }
}
//-------------------------------------------------------------------
@@ -152,9 +156,12 @@ create_ic_inflow_expression( Expr::ExpressionFactory& factory,
const YAML::Node& val = parser["value"];
if( val.size() <= 1 ){
+ long double ld;
typedef Expr::ConstantExpr::Builder ConstExpr;
- initRoots.insert( factory.register_expression( new ConstExpr( tag, val.as())));
- // we need to insert it as a root because things like the mixing time will NOT be depended upon in the initial condition tree
+ if ((std::istringstream(val.as()) >> ld >> std::ws).eof()){
+ // we need to insert it as a root because things like the mixing time will NOT be depended upon in the initial condition tree
+ initRoots.insert( factory.register_expression( new ConstExpr( tag, val.as())));
+ }
}
else{
if( tag.name() == gridSpec.name[0] ){
@@ -197,28 +204,43 @@ parse_reactor_parameters( const YAML::Node& rootParser,
if( !parser ){
std::cout << "No 'ReactorParameters' spec was found in the input file. Using default parameters\n";
}
+ const std::string reactorShape = parser["ReactorShape"].as("Spherical");
const double radius = parser["Radius"].as( 0.001 );
+ const double height = parser["Height"].as( 0.0 );
+ double SoV;
std::cout << std::endl;
- std::cout << "Reactor ensemble specifications" << std::endl
- << "------------------------------------" << std::endl
- << " - reactor radius (m) : " << radius << std::endl;
+ std::cout << "Reactor ensemble specifications" << std::endl
+ << "------------------------------------" << std::endl
+ << " - reactor shape : " << reactorShape << std::endl
+ << " - reactor radius (m) : " << radius << std::endl;
+ if(reactorShape == "Cylinder"){
+ std::cout << " - reactor height (m) : " << height << std::endl;
+ SoV = 2.0 / radius; // 1/m, surface area to volume ratio; only surrounding surface is considered
+ }
+ if(reactorShape == "Spherical"){
+ SoV = 3.0 / radius;
+ }
+ std::cout << " - area/volume ratio (1/m): " << SoV << std::endl;
// build the expressions implied by these quantities
const ReactorEnsembleUtil::ReactorEnsembleTags tags( Expr::STATE_NONE );
- if (parser["ReactorType"].as() == "ConstantVolume"){
- const double SoV = 3.0 / radius; // 1/m, surface area to volume ratio
+ if (parser["ReactorType"].as() == "PSRConstantVolume"){
typedef ReactorEnsembleUtil::ConvectionHeatRateCV::Builder ConvectionCVT;
factory.register_expression( new ConvectionCVT( tags.rhoEgyHeatRhsTag, tags.tempTag, tags.convecCoeffTag, tags.convecTempTag, SoV ) );
- std::cout << " - area/volume ratio (1/m): " << SoV << std::endl;
}
- else{
+ if (parser["ReactorType"].as() == "PSRConstantPressure"){
typedef ReactorEnsembleUtil::ConvectionHeatRateCP::Builder ConvectionCPT;
- typedef ReactorEnsembleUtil::HheatPartialT ::Builder HheatPartialTT;
- factory.register_expression( new ConvectionCPT( tags.enthHeatRhsTag, tags.tempTag, tags.rhoTag, tags.convecCoeffTag, tags.convecTempTag, radius ));
+ factory.register_expression( new ConvectionCPT( tags.enthHeatRhsTag, tags.tempTag, tags.rhoTag, tags.convecCoeffTag, tags.convecTempTag, SoV ));
+ }
+ if(parser["ReactorType"].as() == "PFR"){
+ const PlugFlowReactorInterface::PlugFlowReactorTags tagspfr( Expr::STATE_NONE );
+ typedef ReactorEnsembleUtil::ConvectionHeatRatePFR::Builder ConvectionPFRT;
+ factory.register_expression( new ConvectionPFRT( tags.enthHeatRhsTag, tags.tempTag, tags.rhoTag, tags.convecCoeffTag, tags.convecTempTag, tagspfr.uTag, SoV ));
}
+
const std::string ReactionInGas = rootParser["ReactionInGas"].as( "True" );
if(ReactionInGas == "True"){
std::cout << " - number of species : " << CanteraObjects::number_species() << std::endl
@@ -240,33 +262,53 @@ parse_initial_inflow_conditions( const YAML::Node& parser,
std::set& initRoots,
const bool isRestart)
{
+ const std::string reactorType = parser["ReactorParameters"]["ReactorType"].as();
+ if( reactorType != "PFR"){
+ if( !parser["InflowConditions"] ){
+ std::ostringstream msg;
+ msg << "No inflow condition block 'InflowConditions' was found!\n";
+ throw std::runtime_error( msg.str());
+ }
- if( !parser["InflowConditions"] ){
- std::ostringstream msg;
- msg << "No inflow condition block 'InflowConditions' was found!\n";
- throw std::runtime_error( msg.str());
+ if( !parser["InitialConditions"] ){
+ std::cout << "No initial condition block 'InitialConditions' was found! Initial conditions are set to be the same as inflow conditions\n" << std::endl;
+ }
}
-
- if( !parser["InitialConditions"] ){
- std::ostringstream msg;
- msg << "No initial condition block 'InitialConditions' was found! Initial conditions are set to be the same as inflow conditions\n";
+ else{
+ if( !parser["InitialConditions"] ){
+ std::ostringstream msg;
+ msg << "No initial condition block 'InitialConditions' was found! (No inflow condition was found for plug flow reactor)\n";
+ throw std::runtime_error( msg.str());
+ }
}
+
bool hasMixtureFraction = false;
+ int ic_inflow_size = 0;
- const YAML::Node inflow = parser["InflowConditions"];
YAML::Node ic_inflow;
- int ic_inflow_size = inflow.size();
- for( int i = 0;i < inflow.size() ;++i ){
- ic_inflow[i] = inflow[i];
+ if(reactorType!="PFR"){
+ const YAML::Node inflow = parser["InflowConditions"];
+ ic_inflow_size = inflow.size();
+ for( int i = 0;i < inflow.size() ;++i ){
+ ic_inflow[i] = inflow[i];
+ }
+ if(parser["InitialConditions"]){
+ const YAML::Node ic = parser["InitialConditions"];
+ for( int i = inflow.size();i < ic.size() + inflow.size();++i ){
+ ic_inflow[i] = ic[i - inflow.size()];
+ }
+ ic_inflow_size += ic.size();
+ }
}
- if(parser["InitialConditions"]){
+ else{
const YAML::Node ic = parser["InitialConditions"];
- for( int i = inflow.size();i < ic.size() + inflow.size();++i ){
- ic_inflow[i] = ic[i - inflow.size()];
+ ic_inflow_size = ic.size();
+ for( int i = 0;i < ic.size() ;++i ){
+ ic_inflow[i] = ic[i];
}
- ic_inflow_size += ic.size();
}
+
// Both of heat transfer coefficient and surroundings temperature must be given
// or not given in "HeatTransferParameter" simultaneously
if(parser["ReactorParameters"]["HeatTransferParameter"]){
@@ -292,9 +334,11 @@ parse_initial_inflow_conditions( const YAML::Node& parser,
uninitializedSpecies.insert( sp_ic );
}
}
- BOOST_FOREACH( const std::string& sp_inflow, CanteraObjects::species_names()){
- uninflowSpecies.insert( sp_inflow );
- }
+ if(reactorType!="PFR"){
+ BOOST_FOREACH( const std::string& sp_inflow, CanteraObjects::species_names()){
+ uninflowSpecies.insert( sp_inflow );
+ }
+ }
// look through IC and inflow nodes to determine which ones form the grid
int idim = 0;
@@ -319,21 +363,27 @@ parse_initial_inflow_conditions( const YAML::Node& parser,
}
// keep track of initialized/inflow species
if( name.substr( 0, 2 ) == "X_" || name.substr( 0, 2 ) == "Y_" ){
- if(parser["InitialConditions"]){
- if( name.substr( name.size() - 3 ) == "low" ){ // decide if it is inflow parameters
- const std::string spnam = name.substr( 2, name.size() - 9 );
- uninflowSpecies.erase( spnam );
+ if(reactorType!="PFR"){
+ if(parser["InitialConditions"]){
+ // check if it is inflow parameters ( The minimum size of name is 3. So, just check the last three letters.)
+ if( name.substr( name.size() - 3 ) == "low" ){
+ const std::string spnam = name.substr( 2, name.size() - 9 );
+ uninflowSpecies.erase( spnam );
+ }
+ else{
+ const std::string spnam = name.substr( 2 );
+ uninitializedSpecies.erase( spnam );
+ }
}
else{
- const std::string spnam = name.substr( 2 );
- uninitializedSpecies.erase( spnam );
+ const std::string spnam = name.substr( 2, name.size() - 9 );
+ uninflowSpecies.erase( spnam );
}
}
else{
- const std::string spnam = name.substr( 2, name.size() - 9 );
- uninflowSpecies.erase( spnam );
+ const std::string spnam = name.substr( 2 );
+ uninitializedSpecies.erase( spnam );
}
-
}
}
@@ -350,7 +400,7 @@ parse_initial_inflow_conditions( const YAML::Node& parser,
create_ic_inflow_expression( factory, grid, gridSpec, ic_inflow_Spec, initRoots );
if( ic_inflow_Spec["variable"].as() == "mixture_fraction" ){
hasMixtureFraction = true;
- parse_mixture_fraction( factory, ic_inflow_Spec );
+ parse_mixture_fraction( factory, ic_inflow_Spec, reactorType );
}
}
const ReactorEnsembleUtil::ReactorEnsembleTags tags( Expr::STATE_N );
@@ -360,60 +410,81 @@ parse_initial_inflow_conditions( const YAML::Node& parser,
typedef pokitt::MoleToMassFracs::Builder MoleToMassT;
typedef pokitt::MassToMoleFracs::Builder MassToMoleT;
if(parser["InitialConditions"]){
- if( uninitializedSpecies.size() == CanteraObjects::number_species()){
- std::ostringstream msg;
- msg << "\nERROR from " << __FILE__ << " : " << __LINE__
- << "No species composition has been specified in the initial conditions.\n\n";
- throw std::runtime_error( msg.str());
+ if(parser["InitialInflowData"]["InitialSpeciesSetting"].as("FromInputFile") == "FromInputFile"){
+ if( uninitializedSpecies.size() == CanteraObjects::number_species()){
+ std::ostringstream msg;
+ msg << "\nERROR from " << __FILE__ << " : " << __LINE__
+ << "No species composition has been specified in the initial conditions.\n\n";
+ throw std::runtime_error( msg.str());
+ }
+
+ // set uninitialized species mole fractions to zero
+ BOOST_FOREACH( const std::string& sp_ic, uninitializedSpecies ){
+ typedef Expr::ConstantExpr::Builder ConstExpr;
+ if( sp_ic == CanteraObjects::species_name( nspec - 1 )) continue;
+ const auto ix = CanteraObjects::species_index( sp_ic );
+ factory.register_expression( new ConstExpr( tags.moleTags[ix], 0 ));
+ }
+ // Species N
+ factory.register_expression( new SpeciesN( tags.moleTags[nspec - 1],
+ Expr::tag_list( CanteraObjects::species_names(), Expr::STATE_N, "X_" ),
+ pokitt::ERRORSPECN ),
+ true /* allow overwrite */ );
+ }
+ else{
+ // Species N
+ factory.register_expression( new SpeciesN( tags.moleTags[nspec - 1],
+ Expr::tag_list( CanteraObjects::species_names(), Expr::STATE_N, "X_" ),
+ pokitt::CLIPSPECN ),
+ true /* allow overwrite */ );
}
- // set uninitialized species mole fractions to zero
- BOOST_FOREACH( const std::string& sp_ic, uninitializedSpecies ){
- typedef Expr::ConstantExpr::Builder ConstExpr;
- if( sp_ic == CanteraObjects::species_name( nspec - 1 )) continue;
- const auto ix = CanteraObjects::species_index( sp_ic );
- factory.register_expression( new ConstExpr( tags.moleTags[ix], 0 ));
- }
- // Species N
- factory.register_expression( new SpeciesN( tags.moleTags[nspec - 1],
- Expr::tag_list( CanteraObjects::species_names(), Expr::STATE_N, "X_" ),
- pokitt::ERRORSPECN ),
- true /* allow overwrite */ );
factory.register_expression( new MixtureMWT( tags.mmwTag, tags.moleTags, pokitt::FractionType::MOLE ));
factory.register_expression( new MoleToMassT( tags.massTags, tags.moleTags, tags.mmwTag ));
}
- if( !hasMixtureFraction ){
+ if(reactorType!="PFR"){
+ if( !hasMixtureFraction ){
- if(( uninflowSpecies.size() == CanteraObjects::number_species())){
- std::ostringstream msg;
- msg << "\nERROR from " << __FILE__ << " : " << __LINE__
- << "No species composition has been specified in the inflow conditions.\n\n";
- throw std::runtime_error( msg.str());
- }
+ if(parser["InitialInflowData"]["InflowSpeciesSetting"].as("FromInputFile") == "FromInputFile"){
+ if(( uninflowSpecies.size() == CanteraObjects::number_species())){
+ std::ostringstream msg;
+ msg << "\nERROR from " << __FILE__ << " : " << __LINE__
+ << "No species composition has been specified in the inflow conditions.\n\n";
+ throw std::runtime_error( msg.str());
+ }
- // set unspecified inflow species mole fractions to zero
- BOOST_FOREACH( const std::string& sp_inflow, uninflowSpecies ){
- typedef Expr::ConstantExpr::Builder ConstExpr;
- if( sp_inflow == CanteraObjects::species_name( nspec - 1 )) continue;
- const auto ix = CanteraObjects::species_index( sp_inflow );
- factory.register_expression( new ConstExpr( tags.moleInflowTags[ix], 0 ));
- }
- { // Species N
- factory.register_expression( new SpeciesN( tags.moleInflowTags[nspec - 1],
- Expr::tag_list( CanteraObjects::species_names(), Expr::STATE_N, "X_",
- "_inflow" ),
- pokitt::ERRORSPECN ),
- true /* allow overwrite */ );
+ // set unspecified inflow species mole fractions to zero
+ BOOST_FOREACH( const std::string& sp_inflow, uninflowSpecies ){
+ typedef Expr::ConstantExpr::Builder ConstExpr;
+ if( sp_inflow == CanteraObjects::species_name( nspec - 1 )) continue;
+ const auto ix = CanteraObjects::species_index( sp_inflow );
+ factory.register_expression( new ConstExpr( tags.moleInflowTags[ix], 0 ));
+ }
+ // Species N
+ factory.register_expression( new SpeciesN( tags.moleInflowTags[nspec - 1],
+ Expr::tag_list( CanteraObjects::species_names(), Expr::STATE_N, "X_",
+ "_inflow" ),
+ pokitt::ERRORSPECN ),
+ true /* allow overwrite */ );
+ }
+ else{
+ // Species N
+ factory.register_expression( new SpeciesN( tags.moleInflowTags[nspec - 1],
+ Expr::tag_list( CanteraObjects::species_names(), Expr::STATE_N, "X_",
+ "_inflow" ),
+ pokitt::CLIPSPECN ),
+ true /* allow overwrite */ );
+ }
+ factory.register_expression( new MoleToMassT( tags.massInflowTags, tags.moleInflowTags, tags.mmwInflowTag ));
+ factory.register_expression( new MixtureMWT( tags.mmwInflowTag, tags.moleInflowTags, pokitt::FractionType::MOLE ));
+ }
+ else{
+ typedef pokitt::MixtureMolWeight::Builder MixtureMWT;
+ factory.register_expression( new MassToMoleT( tags.moleInflowTags, tags.massInflowTags, tags.mmwInflowTag ));
+ factory.register_expression( new MixtureMWT( tags.mmwInflowTag, tags.massInflowTags, pokitt::FractionType::MASS ));
}
- factory.register_expression( new MoleToMassT( tags.massInflowTags, tags.moleInflowTags, tags.mmwInflowTag ));
- factory.register_expression( new MixtureMWT( tags.mmwInflowTag, tags.moleInflowTags, pokitt::FractionType::MOLE ));
- }
- else{
- typedef pokitt::MixtureMolWeight::Builder MixtureMWT;
- factory.register_expression( new MassToMoleT( tags.moleInflowTags, tags.massInflowTags, tags.mmwInflowTag ));
- factory.register_expression( new MixtureMWT( tags.mmwInflowTag, tags.massInflowTags, pokitt::FractionType::MASS ));
}
if(!parser["ReactorParameters"]["HeatTransferParameter"]){
@@ -497,22 +568,25 @@ parse_field_output( const YAML::Node& parser,
insert( tags.dtTag );
insert( tags.expEigTag );
- if (parser["ReactorParameters"]["ReactorType"].as() == "ConstantVolume"){
+ if (parser["ReactorParameters"]["ReactorType"].as() == "PSRConstantVolume"){
insert( tags.presTag );
for( size_t i=0; i() == "ConstantPressure"){
+ if (parser["ReactorParameters"]["ReactorType"].as() == "PSRConstantPressure"){
insert( tags.rhoTag );
}
+ if (parser["ReactorParameters"]["ReactorType"].as() == "PFR"){
+ insert( tags.presTag );
+ }
if(parser["Particles"]){
const Particles::ParticleEnsembleTags tagspart( Expr::STATE_NONE, particleNumArray );
const int npartsize = particleNumArray.size();
for( size_t i=0; i::Builder ZeroDMixingCPT;
typedef ReactorEnsembleUtil::NusseltNumber::Builder NuNumberT;
typedef ReactorEnsembleUtil::DivisionExpression::Builder DivideT;
+ typedef ReactorEnsembleUtil::ProductExpression::Builder ProductT;
typedef ReactorEnsembleUtil::SherwoodNumber::Builder ShNumberT;
typedef Particles::PartMassFraction::Builder MassFracPartT;
@@ -88,8 +89,9 @@ namespace Particles {
typedef Particles::PartToGasHeatCP::Builder PartToGasHeatCPT;
typedef Particles::PartToGasHeatCV::Builder PartToGasHeatCVT;
typedef Particles::SourceFromGasMassChange::Builder SourceFromGasMassT;
- typedef Particles::ParticleNumber::Builder PartNumT;
typedef Particles::ParticleTempMixing::Builder PartTempMixT;
+ typedef Particles::DensitySourceFromGasMassChange::Builder DensitySourceFromGasMassT;
+ typedef Particles::DpDxSourceFromGasMassChange::Builder DpDxSourceFromGasMassT;
//---------------------------------------------------------------------------
@@ -97,19 +99,24 @@ namespace Particles {
ParticleEnsembleTags::
ParticleEnsembleTags( const Expr::Context& state,
const std::vector& particleNumArray)
- : partTempInitTag ( Expr::Tag( "T_part_init" , state )),
- partTempInflowTag ( Expr::Tag( "T_part_inflow" , state )),
- partRhoInitTag ( Expr::Tag( "rho_part_init" , state )),
- partRhoInflowTag ( Expr::Tag( "rho_part_inflow" , state )),
- partCpInitTag ( Expr::Tag( "cp_part_init" , state )),
- partConvecToGasTag ( Expr::Tag( "convection_part_to_gas", state )),
- partRadiaToGasTag ( Expr::Tag( "radiation_part_to_gas" , state )),
- tempRadiaWallTag ( Expr::Tag( "T_radia_wall" , state )),
- partToGasMassTag ( Expr::Tag( "part_to_gas_mass" , state )),
- gasEnthSrcTag ( Expr::Tag( "gas_enth_src" , state ))
+ : partTempInitTag ( Expr::Tag( "T_part_init" , state )),
+ partTempInflowTag ( Expr::Tag( "T_part_inflow" , state )),
+ partRhoInitTag ( Expr::Tag( "rho_part_init" , state )),
+ partRhoInflowTag ( Expr::Tag( "rho_part_inflow" , state )),
+ partCpInitTag ( Expr::Tag( "cp_part_init" , state )),
+ partConvecToGasTag ( Expr::Tag( "convection_part_to_gas" , state )),
+ partRadiaToGasTag ( Expr::Tag( "radiation_part_to_gas " , state )),
+ partConvecToGasPFRTag ( Expr::Tag( "convection_part_to_gas_pfr", state )),
+ partRadiaToGasPFRTag ( Expr::Tag( "radiation_part_to_gas_pfr" , state )),
+ tempRadiaWallTag ( Expr::Tag( "T_radia_wall" , state )),
+ partToGasMassTag ( Expr::Tag( "part_to_gas_mass" , state )),
+ gasEnthSrcTag ( Expr::Tag( "gas_enth_src" , state )),
+ gasEnthSrcPFRTag ( Expr::Tag( "gas_enth_src_pfr" , state )),
+ gasDensitySrcPFRTag ( Expr::Tag( "gas_density_src_pfr" , state )),
+ gasDpDxSrcPFRTag ( Expr::Tag( "gas_dpdx_src_pfr" , state ))
{
massEachPartTags = Expr::tag_list( particleNumArray, state, "mass_each_part_" );
- partNumTags = Expr::tag_list( particleNumArray, state, "num_part_" );
+ partNumPerVolumeTags = Expr::tag_list( particleNumArray, state, "num_part_per_volume_" );
partNumFracTags = Expr::tag_list( particleNumArray, state, "num_frac_part_" );
partTempTags = Expr::tag_list( particleNumArray, state, "temp_part_" );
partCpTags = Expr::tag_list( particleNumArray, state, "cp_part_" );
@@ -123,6 +130,8 @@ namespace Particles {
partTempMixRhsTags = Expr::tag_list( particleNumArray, state, "temp_part_", "_mix_rhs" );
partTempKinRhsTags = Expr::tag_list( particleNumArray, state, "temp_part_", "_kin_rhs" );
partTempHeatRhsTags = Expr::tag_list( particleNumArray, state, "temp_part_", "_heat_rhs" );
+ partTempKinRhsPFRTags = Expr::tag_list( particleNumArray, state, "temp_part_", "_kin_rhs_pfr" );
+ partTempHeatRhsPFRTags = Expr::tag_list( particleNumArray, state, "temp_part_", "_heat_rhs_pfr" );
partTempFullRhsTags = Expr::tag_list( particleNumArray, state, "temp_part_", "_full_rhs" );
partMassFracInitialTags = Expr::tag_list( particleNumArray, state, "mass_frac_part_", "_initial" );
partMassFracInflowTags = Expr::tag_list( particleNumArray, state, "mass_frac_part_", "_inflow" );
@@ -136,7 +145,8 @@ namespace Particles {
shNumberTags = Expr::tag_list( particleNumArray, state, "sh_number_" );
reynoldsNumberTags = Expr::tag_list( particleNumArray, state, "re_number_part_" );
nusseltNumberTags = Expr::tag_list( particleNumArray, state, "nu_number_" );
- gasSpeciesSrcTags = Expr::tag_list( CanteraObjects::species_names(), state, "gas_species_src_");
+ gasSpeciesSrcTags = Expr::tag_list( CanteraObjects::species_names(), state, "gas_species_src_" );
+ gasSpeciesSrcPFRTags = Expr::tag_list( CanteraObjects::species_names(), state, "gas_species_src_pfr_");
}
ParticleSetup::ParticleSetup( std::vector