File indexing completed on 2025-02-23 09:22:11
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #include "ChemOxygenWaterBuilder.hh"
0028
0029 #include "G4DNAMolecularReactionTable.hh"
0030 #include "G4MoleculeTable.hh"
0031 #include "G4SystemOfUnits.hh"
0032
0033
0034 void ChemOxygenWaterBuilder::OxygenScavengerReaction(G4DNAMolecularReactionTable* pReactionTable)
0035 {
0036 auto table = G4MoleculeTable::Instance();
0037
0038
0039 auto* e_aq = table->GetConfiguration("e_aq");
0040 auto* H = table->GetConfiguration("H");
0041 auto* HO2 = table->GetConfiguration("HO2");
0042 auto* Om = table->GetConfiguration("Om");
0043 auto* O2 = table->GetConfiguration("O2");
0044 auto* O2m = table->GetConfiguration("O2m");
0045 auto* O3m = table->GetConfiguration("O3m");
0046
0047 G4DNAMolecularReactionData* reactionData = nullptr;
0048
0049
0050 reactionData = new G4DNAMolecularReactionData(2.3e10 * (1e-3 * m3 / (mole * s)), e_aq, O2);
0051 reactionData->AddProduct(O2m);
0052 pReactionTable->SetReaction(reactionData);
0053
0054
0055 reactionData = new G4DNAMolecularReactionData(1.3e10 * (1e-3 * m3 / (mole * s)), H, O2);
0056 reactionData->AddProduct(HO2);
0057 pReactionTable->SetReaction(reactionData);
0058
0059
0060 reactionData = new G4DNAMolecularReactionData(3.7e9 * (1e-3 * m3 / (mole * s)), Om, O2);
0061 reactionData->AddProduct(O3m);
0062 pReactionTable->SetReaction(reactionData);
0063
0064 }
0065
0066
0067 void ChemOxygenWaterBuilder::SecondOrderReactionExtended(
0068 G4DNAMolecularReactionTable* pReactionTable)
0069 {
0070
0071
0072 auto table = G4MoleculeTable::Instance();
0073 auto* OH = table->GetConfiguration("OH");
0074 auto* OHm = table->GetConfiguration("OHm");
0075 auto* e_aq = table->GetConfiguration("e_aq");
0076 auto* H2 = table->GetConfiguration("H2");
0077 auto* H3Op = table->GetConfiguration("H3Op");
0078 auto* H = table->GetConfiguration("H");
0079 auto* H2O2 = table->GetConfiguration("H2O2");
0080
0081 auto* HO2 = table->GetConfiguration("HO2");
0082 auto* HO2m = table->GetConfiguration("HO2m");
0083 auto* Om = table->GetConfiguration("Om");
0084 auto* O2 = table->GetConfiguration("O2");
0085 auto* O2m = table->GetConfiguration("O2m");
0086 auto* O3m = table->GetConfiguration("O3m");
0087
0088
0089 G4DNAMolecularReactionData* reactionData = nullptr;
0090
0091
0092
0093 reactionData = new G4DNAMolecularReactionData(0.503e10 * (1e-3 * m3 / (mole * s)), H, H);
0094 reactionData->AddProduct(H2);
0095 pReactionTable->SetReaction(reactionData);
0096
0097
0098 reactionData = new G4DNAMolecularReactionData(2.50e10 * (1e-3 * m3 / (mole * s)), e_aq, H);
0099 reactionData->AddProduct(OHm);
0100 reactionData->AddProduct(H2);
0101 pReactionTable->SetReaction(reactionData);
0102
0103
0104 reactionData = new G4DNAMolecularReactionData(0.636e10 * (1e-3 * m3 / (mole * s)), e_aq, e_aq);
0105 reactionData->AddProduct(OHm);
0106 reactionData->AddProduct(OHm);
0107 reactionData->AddProduct(H2);
0108 pReactionTable->SetReaction(reactionData);
0109
0110
0111 reactionData = new G4DNAMolecularReactionData(1.13e11 * (1e-3 * m3 / (mole * s)), H3Op, OHm);
0112 pReactionTable->SetReaction(reactionData);
0113
0114
0115 reactionData = new G4DNAMolecularReactionData(1.55e10 * (1e-3 * m3 / (mole * s)), OH, H);
0116 pReactionTable->SetReaction(reactionData);
0117
0118
0119 reactionData = new G4DNAMolecularReactionData(0.55e10 * (1e-3 * m3 / (mole * s)), OH, OH);
0120 reactionData->AddProduct(H2O2);
0121 pReactionTable->SetReaction(reactionData);
0122
0123
0124 reactionData = new G4DNAMolecularReactionData(2.95e10 * (1e-3 * m3 / (mole * s)), e_aq, OH);
0125 reactionData->AddProduct(OHm);
0126 pReactionTable->SetReaction(reactionData);
0127
0128
0129 reactionData = new G4DNAMolecularReactionData(1.10e10 * (1e-3 * m3 / (mole * s)), e_aq, H2O2);
0130 reactionData->AddProduct(OHm);
0131 reactionData->AddProduct(OH);
0132 pReactionTable->SetReaction(reactionData);
0133
0134
0135 reactionData = new G4DNAMolecularReactionData(2.11e10 * (1e-3 * m3 / (mole * s)), e_aq, H3Op);
0136 reactionData->AddProduct(H);
0137 pReactionTable->SetReaction(reactionData);
0138
0139
0140
0141
0142 reactionData = new G4DNAMolecularReactionData(2.00e10 * (1e-3 * m3 / (mole * s)), H, Om);
0143 reactionData->AddProduct(OHm);
0144 pReactionTable->SetReaction(reactionData);
0145
0146
0147 reactionData = new G4DNAMolecularReactionData(9.0e10 * (1e-3 * m3 / (mole * s)), H3Op, O3m);
0148 reactionData->AddProduct(OH);
0149 reactionData->AddProduct(O2);
0150 pReactionTable->SetReaction(reactionData);
0151
0152
0153 reactionData = new G4DNAMolecularReactionData(1.00e10 * (1e-3 * m3 / (mole * s)), H, HO2);
0154 reactionData->AddProduct(H2O2);
0155 pReactionTable->SetReaction(reactionData);
0156
0157
0158 reactionData = new G4DNAMolecularReactionData(1.00e10 * (1e-3 * m3 / (mole * s)), H, O2m);
0159 reactionData->AddProduct(HO2m);
0160 pReactionTable->SetReaction(reactionData);
0161
0162
0163 reactionData = new G4DNAMolecularReactionData(1.07e10 * (1e-3 * m3 / (mole * s)), OH, O2m);
0164 reactionData->AddProduct(O2);
0165 reactionData->AddProduct(OHm);
0166 pReactionTable->SetReaction(reactionData);
0167
0168
0169 reactionData = new G4DNAMolecularReactionData(1.3e10 * (1e-3 * m3 / (mole * s)), e_aq, O2m);
0170 reactionData->AddProduct(H2O2);
0171 reactionData->AddProduct(OHm);
0172 reactionData->AddProduct(OHm);
0173 pReactionTable->SetReaction(reactionData);
0174
0175
0176 reactionData = new G4DNAMolecularReactionData(3.51e9 * (1e-3 * m3 / (mole * s)), e_aq, HO2m);
0177 reactionData->AddProduct(Om);
0178 reactionData->AddProduct(OHm);
0179 pReactionTable->SetReaction(reactionData);
0180
0181
0182 reactionData = new G4DNAMolecularReactionData(2.31e10 * (1e-3 * m3 / (mole * s)), e_aq, Om);
0183 reactionData->AddProduct(OHm);
0184 reactionData->AddProduct(OHm);
0185 pReactionTable->SetReaction(reactionData);
0186
0187
0188 reactionData = new G4DNAMolecularReactionData(4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, O2m);
0189 reactionData->AddProduct(HO2);
0190 pReactionTable->SetReaction(reactionData);
0191
0192
0193 reactionData = new G4DNAMolecularReactionData(4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, HO2m);
0194 reactionData->AddProduct(H2O2);
0195 pReactionTable->SetReaction(reactionData);
0196
0197
0198 reactionData = new G4DNAMolecularReactionData(4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, Om);
0199 reactionData->AddProduct(OH);
0200 pReactionTable->SetReaction(reactionData);
0201
0202
0203 reactionData = new G4DNAMolecularReactionData(1.29e10 * (1e-3 * m3 / (mole * s)), e_aq, HO2);
0204 reactionData->AddProduct(HO2m);
0205 pReactionTable->SetReaction(reactionData);
0206
0207
0208 reactionData = new G4DNAMolecularReactionData(1.27e10 * (1e-3 * m3 / (mole * s)), OH, OHm);
0209 reactionData->AddProduct(Om);
0210 pReactionTable->SetReaction(reactionData);
0211
0212
0213 reactionData = new G4DNAMolecularReactionData(7.90e9 * (1e-3 * m3 / (mole * s)), OH, HO2);
0214 reactionData->AddProduct(O2);
0215 pReactionTable->SetReaction(reactionData);
0216
0217
0218 reactionData = new G4DNAMolecularReactionData(8.32e9 * (1e-3 * m3 / (mole * s)), OH, HO2m);
0219 reactionData->AddProduct(HO2);
0220 reactionData->AddProduct(OHm);
0221 pReactionTable->SetReaction(reactionData);
0222
0223
0224 reactionData = new G4DNAMolecularReactionData(1.00e9 * (1e-3 * m3 / (mole * s)), OH, Om);
0225 reactionData->AddProduct(HO2m);
0226 pReactionTable->SetReaction(reactionData);
0227
0228
0229 reactionData = new G4DNAMolecularReactionData(8.50e9 * (1e-3 * m3 / (mole * s)), OH, O3m);
0230 reactionData->AddProduct(O2m);
0231 reactionData->AddProduct(HO2);
0232 pReactionTable->SetReaction(reactionData);
0233
0234
0235 reactionData = new G4DNAMolecularReactionData(1.27e10 * (1e-3 * m3 / (mole * s)), OHm,
0236 HO2);
0237 reactionData->AddProduct(O2m);
0238 pReactionTable->SetReaction(reactionData);
0239
0240
0241 reactionData = new G4DNAMolecularReactionData(1.3e10 * (1e-3 * m3 / (mole * s)), H2O2,
0242 OHm);
0243 reactionData->AddProduct(HO2m);
0244 pReactionTable->SetReaction(reactionData);
0245
0246
0247 reactionData = new G4DNAMolecularReactionData(5.55e8 * (1e-3 * m3 / (mole * s)), H2O2, Om);
0248 reactionData->AddProduct(HO2);
0249 reactionData->AddProduct(OHm);
0250 pReactionTable->SetReaction(reactionData);
0251
0252
0253 reactionData = new G4DNAMolecularReactionData(1.21e8 * (1e-3 * m3 / (mole * s)), H2, Om);
0254 reactionData->AddProduct(H);
0255 reactionData->AddProduct(OHm);
0256 pReactionTable->SetReaction(reactionData);
0257
0258
0259 reactionData = new G4DNAMolecularReactionData(6.00e8 * (1e-3 * m3 / (mole * s)), O2m, Om);
0260 reactionData->AddProduct(O2);
0261 reactionData->AddProduct(OHm);
0262 reactionData->AddProduct(OHm);
0263 pReactionTable->SetReaction(reactionData);
0264
0265
0266 reactionData = new G4DNAMolecularReactionData(3.50e8 * (1e-3 * m3 / (mole * s)), HO2m, Om);
0267 reactionData->AddProduct(O2m);
0268 reactionData->AddProduct(OHm);
0269 pReactionTable->SetReaction(reactionData);
0270
0271
0272 reactionData = new G4DNAMolecularReactionData(1.00e8 * (1e-3 * m3 / (mole * s)), Om, Om);
0273 reactionData->AddProduct(H2O2);
0274 reactionData->AddProduct(OHm);
0275 reactionData->AddProduct(OHm);
0276 pReactionTable->SetReaction(reactionData);
0277
0278
0279 reactionData = new G4DNAMolecularReactionData(7.00e8 * (1e-3 * m3 / (mole * s)), Om, O3m);
0280 reactionData->AddProduct(O2m);
0281 reactionData->AddProduct(O2m);
0282 pReactionTable->SetReaction(reactionData);
0283
0284
0285 reactionData = new G4DNAMolecularReactionData(2.51e7 * (1e-3 * m3 / (mole * s)), H, OHm);
0286 reactionData->AddProduct(e_aq);
0287 pReactionTable->SetReaction(reactionData);
0288
0289
0290 reactionData = new G4DNAMolecularReactionData(3.50e7 * (1e-3 * m3 / (mole * s)), H, H2O2);
0291 reactionData->AddProduct(OH);
0292 pReactionTable->SetReaction(reactionData);
0293
0294
0295 reactionData = new G4DNAMolecularReactionData(2.88e7 * (1e-3 * m3 / (mole * s)), OH, H2O2);
0296 reactionData->AddProduct(HO2);
0297 pReactionTable->SetReaction(reactionData);
0298
0299
0300 reactionData = new G4DNAMolecularReactionData(3.28e7 * (1e-3 * m3 / (mole * s)), OH, H2);
0301 reactionData->AddProduct(H);
0302 pReactionTable->SetReaction(reactionData);
0303
0304
0305 reactionData = new G4DNAMolecularReactionData(9.80e5 * (1e-3 * m3 / (mole * s)), HO2, HO2);
0306 reactionData->AddProduct(H2O2);
0307 reactionData->AddProduct(O2);
0308 pReactionTable->SetReaction(reactionData);
0309
0310
0311 reactionData = new G4DNAMolecularReactionData(9.70e7 * (1e-3 * m3 / (mole * s)), HO2, O2m);
0312 reactionData->AddProduct(HO2m);
0313 reactionData->AddProduct(O2);
0314 pReactionTable->SetReaction(reactionData);
0315
0316
0317
0318 reactionData = new G4DNAMolecularReactionData(1.0e2 * (1e-3 * m3 / (mole * s)), O2m, O2m);
0319 reactionData->AddProduct(H2O2);
0320 reactionData->AddProduct(O2);
0321 reactionData->AddProduct(OHm);
0322 reactionData->AddProduct(OHm);
0323 pReactionTable->SetReaction(reactionData);
0324 }
0325