Geant4-11
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
G4DNAMolecularReactionData Class Reference

#include <G4DNAMolecularReactionTable.hh>

Public Types

typedef std::function< double(double)> RateParam
 
using Reactant = const G4MolecularConfiguration
 
using ReactantPair = std::pair< Reactant *, Reactant * >
 
using ReactionProducts = std::vector< Reactant * >
 

Public Member Functions

void AddProduct (const G4String &molecule)
 
void AddProduct (Reactant *molecule)
 
 G4DNAMolecularReactionData (G4double reactionRate, const G4MolecularConfiguration *reactive1, const G4MolecularConfiguration *reactive2)
 
 G4DNAMolecularReactionData (G4double reactionRate, const G4String &reactive1, const G4String &reactive2)
 
G4double GetActivationRateConstant () const
 
G4double GetDiffusionRateConstant () const
 
G4double GetEffectiveReactionRadius () const
 
G4int GetNbProducts () const
 
G4double GetObservedReactionRateConstant () const
 
G4double GetOnsagerRadius () const
 
G4double GetProbability () const
 
ReactantGetProduct (G4int i) const
 
const ReactionProductsGetProducts () const
 
ReactantGetReactant1 () const
 
ReactantGetReactant2 () const
 
ReactantPair GetReactants ()
 
int GetReactionID () const
 
G4double GetReactionRadius () const
 
G4int GetReactionType () const
 
void RemoveProducts ()
 
void ScaleForNewTemperature (double temp_K)
 
void SetArrehniusParameterization (double A0, double E_R)
 
void SetEffectiveReactionRadius (G4double radius)
 
void SetObservedReactionRateConstant (G4double rate)
 
void SetPolynomialParameterization (const std::vector< double > &P)
 
void SetProbability (G4double prob)
 
void SetReactant1 (const G4String &reactive)
 
void SetReactant1 (Reactant *reactive)
 
void SetReactant2 (const G4String &reactive)
 
void SetReactant2 (Reactant *reactive)
 
void SetReactants (const G4String &reactive1, const G4String &reactive2)
 
void SetReactants (Reactant *reactive1, Reactant *reactive2)
 
void SetReactionID (int ID)
 
void SetReactionRadius (G4double radius)
 
void SetReactionType (G4int type)
 
void SetScaledParameterization (double temperature_K, double rateCste)
 
 ~G4DNAMolecularReactionData ()
 

Static Public Member Functions

static double ArrehniusParam (double temp_K, std::vector< double > P)
 
static double PolynomialParam (double temp_K, std::vector< double > P)
 
static double ScaledParameterization (double temp_K, double temp_init, double rateCste_init)
 

Protected Member Functions

 G4DNAMolecularReactionData ()
 

Protected Attributes

G4double fActivationRate
 
G4double fDiffusionRate
 
G4double fEffectiveReactionRadius
 
G4double fObservedReactionRate
 
G4double fOnsagerRadius
 
ReactantfpReactant1
 
ReactantfpReactant2
 
G4double fProbability
 
ReactionProducts fProducts
 
RateParam fRateParam
 
int fReactionID
 
G4double fReactionRadius
 
G4int fType
 

Private Member Functions

void ComputeEffectiveRadius ()
 

Detailed Description

G4DNAMolecularReactionData contains the information relative to a given reaction (eg : °OH + °OH -> H2O2)

Definition at line 65 of file G4DNAMolecularReactionTable.hh.

Member Typedef Documentation

◆ RateParam

Definition at line 130 of file G4DNAMolecularReactionTable.hh.

◆ Reactant

Definition at line 79 of file G4DNAMolecularReactionTable.hh.

◆ ReactantPair

Definition at line 80 of file G4DNAMolecularReactionTable.hh.

◆ ReactionProducts

Definition at line 81 of file G4DNAMolecularReactionTable.hh.

Constructor & Destructor Documentation

◆ G4DNAMolecularReactionData() [1/3]

G4DNAMolecularReactionData::G4DNAMolecularReactionData ( G4double  reactionRate,
const G4MolecularConfiguration reactive1,
const G4MolecularConfiguration reactive2 
)

◆ G4DNAMolecularReactionData() [2/3]

G4DNAMolecularReactionData::G4DNAMolecularReactionData ( G4double  reactionRate,
const G4String reactive1,
const G4String reactive2 
)

Definition at line 89 of file G4DNAMolecularReactionTable.cc.

92 : fpReactant1(nullptr)
93 , fpReactant2(nullptr)
94 , fObservedReactionRate(reactionRate)
95 , fActivationRate(0.)
96 , fDiffusionRate(0.)
97 , fOnsagerRadius(0.)
98 , fReactionRadius(0.)
100 , fProbability(0.)
101 , fType(0)
102 , fReactionID(0)
103{
104 SetReactant1(reactant1);
105 SetReactant2(reactant2);
107}

References ComputeEffectiveRadius(), SetReactant1(), and SetReactant2().

◆ ~G4DNAMolecularReactionData()

G4DNAMolecularReactionData::~G4DNAMolecularReactionData ( )

Definition at line 109 of file G4DNAMolecularReactionTable.cc.

110{
111 fProducts.clear();
112}

References fProducts.

◆ G4DNAMolecularReactionData() [3/3]

G4DNAMolecularReactionData::G4DNAMolecularReactionData ( )
protected

Definition at line 56 of file G4DNAMolecularReactionTable.cc.

57 : fpReactant1(nullptr)
58 , fpReactant2(nullptr)
60 , fActivationRate(0.)
61 , fDiffusionRate(0.)
62 , fOnsagerRadius(0.)
63 , fReactionRadius(0.)
65 , fProbability(0.)
66 , fType(0)
67 , fReactionID(0)
68{
69}

Member Function Documentation

◆ AddProduct() [1/2]

void G4DNAMolecularReactionData::AddProduct ( const G4String molecule)

Definition at line 315 of file G4DNAMolecularReactionTable.cc.

316{
317 fProducts.push_back(G4MoleculeTable::Instance()->GetConfiguration(molecule));
318}
static G4MoleculeTable * Instance()

References fProducts, and G4MoleculeTable::Instance().

◆ AddProduct() [2/2]

void G4DNAMolecularReactionData::AddProduct ( Reactant molecule)

◆ ArrehniusParam()

double G4DNAMolecularReactionData::ArrehniusParam ( double  temp_K,
std::vector< double >  P 
)
static

Definition at line 330 of file G4DNAMolecularReactionTable.cc.

331{
332 return P[0] * G4Exp(P[1] / temp_K)*
333 (1e-3 * CLHEP::m3 / (CLHEP::mole * CLHEP::s));
334}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
static constexpr double mole
static constexpr double m3
static constexpr double s
static double P[]

References G4Exp(), CLHEP::m3, CLHEP::mole, P, and CLHEP::s.

Referenced by SetArrehniusParameterization().

◆ ComputeEffectiveRadius()

void G4DNAMolecularReactionData::ComputeEffectiveRadius ( )
private

Definition at line 114 of file G4DNAMolecularReactionTable.cc.

115{
116 G4double sumDiffCoeff = 0.;
117
119 {
120 sumDiffCoeff = fpReactant1->GetDiffusionCoefficient();
122 }
123 else
124 {
125 sumDiffCoeff = fpReactant1->GetDiffusionCoefficient()
128 }
129
130 fReactionID = 0;
133 fProbability = 1;
134
135}
static constexpr double pi
Definition: G4SIunits.hh:55
double G4double
Definition: G4Types.hh:83
static constexpr double Avogadro
static constexpr double pi
Definition: SystemOfUnits.h:55
float k_Boltzmann
Definition: hepunit.py:298

References CLHEP::Avogadro, source.hepunit::epsilon0, fEffectiveReactionRadius, fObservedReactionRate, fOnsagerRadius, fpReactant1, fpReactant2, fProbability, fReactionID, fReactionRadius, G4MolecularConfiguration::GetCharge(), G4MolecularConfiguration::GetDiffusionCoefficient(), source.hepunit::k_Boltzmann, CLHEP::pi, and pi.

Referenced by G4DNAMolecularReactionData().

◆ GetActivationRateConstant()

G4double G4DNAMolecularReactionData::GetActivationRateConstant ( ) const

Definition at line 229 of file G4DNAMolecularReactionTable.cc.

230{
231 return fActivationRate;
232}

References fActivationRate.

◆ GetDiffusionRateConstant()

G4double G4DNAMolecularReactionData::GetDiffusionRateConstant ( ) const

Definition at line 234 of file G4DNAMolecularReactionTable.cc.

235{
236 return fDiffusionRate;
237}

References fDiffusionRate.

◆ GetEffectiveReactionRadius()

G4double G4DNAMolecularReactionData::GetEffectiveReactionRadius ( ) const

◆ GetNbProducts()

G4int G4DNAMolecularReactionData::GetNbProducts ( ) const

◆ GetObservedReactionRateConstant()

G4double G4DNAMolecularReactionData::GetObservedReactionRateConstant ( ) const

◆ GetOnsagerRadius()

G4double G4DNAMolecularReactionData::GetOnsagerRadius ( ) const

Definition at line 260 of file G4DNAMolecularReactionTable.cc.

261{
262 return fOnsagerRadius;
263}

References fOnsagerRadius.

◆ GetProbability()

G4double G4DNAMolecularReactionData::GetProbability ( ) const

Definition at line 265 of file G4DNAMolecularReactionTable.cc.

266{
267 return fProbability;
268}

References fProbability.

◆ GetProduct()

G4DNAMolecularReactionData::Reactant * G4DNAMolecularReactionData::GetProduct ( G4int  i) const

Definition at line 174 of file G4DNAMolecularReactionTable.cc.

175{
176 return fProducts[i];
177}

References fProducts.

Referenced by G4DNAMolecularReactionTable::PrintTable(), and G4DNAUpdateSystemModel::UpdateSystem().

◆ GetProducts()

const G4DNAMolecularReactionData::ReactionProducts * G4DNAMolecularReactionData::GetProducts ( ) const

Definition at line 179 of file G4DNAMolecularReactionTable.cc.

180{
181 return &fProducts;
182}

References fProducts.

◆ GetReactant1()

G4DNAMolecularReactionData::Reactant * G4DNAMolecularReactionData::GetReactant1 ( ) const

◆ GetReactant2()

G4DNAMolecularReactionData::Reactant * G4DNAMolecularReactionData::GetReactant2 ( ) const

◆ GetReactants()

G4DNAMolecularReactionData::ReactantPair G4DNAMolecularReactionData::GetReactants ( )

Definition at line 204 of file G4DNAMolecularReactionTable.cc.

205{
206 return std::make_pair(fpReactant1, fpReactant2);
207}

References fpReactant1, and fpReactant2.

◆ GetReactionID()

int G4DNAMolecularReactionData::GetReactionID ( ) const

Definition at line 137 of file G4DNAMolecularReactionTable.cc.

138{
139 return fReactionID;
140}

References fReactionID.

Referenced by G4DNAIndependentReactionTimeStepper::GetReactionType().

◆ GetReactionRadius()

G4double G4DNAMolecularReactionData::GetReactionRadius ( ) const

Definition at line 245 of file G4DNAMolecularReactionTable.cc.

246{
247 return fReactionRadius;
248}

References fReactionRadius.

◆ GetReactionType()

G4int G4DNAMolecularReactionData::GetReactionType ( ) const

Definition at line 310 of file G4DNAMolecularReactionTable.cc.

311{
312 return fType;
313}

References fType.

Referenced by G4DNAIRT::GetIndependentReactionTime(), and G4DNAIRT_geometries::GetIndependentReactionTime().

◆ PolynomialParam()

double G4DNAMolecularReactionData::PolynomialParam ( double  temp_K,
std::vector< double >  P 
)
static

Definition at line 320 of file G4DNAMolecularReactionTable.cc.

321{
322 double inv_temp = 1. / temp_K;
323
324 return pow(10,
325 P[0] + P[1] * inv_temp + P[2] * pow(inv_temp, 2)
326 + P[3] * pow(inv_temp, 3) + P[4] * pow(inv_temp, 4))
327 * (1e-3 * CLHEP::m3 / (CLHEP::mole * CLHEP::s));
328}

References CLHEP::m3, CLHEP::mole, P, and CLHEP::s.

Referenced by SetPolynomialParameterization().

◆ RemoveProducts()

void G4DNAMolecularReactionData::RemoveProducts ( )

Definition at line 184 of file G4DNAMolecularReactionTable.cc.

185{
186 fProducts.clear();
187}

References fProducts.

◆ ScaledParameterization()

double G4DNAMolecularReactionData::ScaledParameterization ( double  temp_K,
double  temp_init,
double  rateCste_init 
)
static

Definition at line 336 of file G4DNAMolecularReactionTable.cc.

339{
340 double D0 = G4MolecularConfiguration::DiffCoeffWater(temp_init);
342 return Df * rateCste_init / D0;
343}
static double DiffCoeffWater(double temperature_K)

References G4MolecularConfiguration::DiffCoeffWater().

Referenced by SetScaledParameterization().

◆ ScaleForNewTemperature()

void G4DNAMolecularReactionData::ScaleForNewTemperature ( double  temp_K)

Definition at line 807 of file G4DNAMolecularReactionTable.cc.

808{
809 if (fRateParam)
810 {
812 }
813}
void SetObservedReactionRateConstant(G4double rate)

References fRateParam, and SetObservedReactionRateConstant().

◆ SetArrehniusParameterization()

void G4DNAMolecularReactionData::SetArrehniusParameterization ( double  A0,
double  E_R 
)

Definition at line 777 of file G4DNAMolecularReactionTable.cc.

779{
780 std::vector<double> P = { A0, E_R };
781 fRateParam = std::bind(ArrehniusParam, std::placeholders::_1, P);
782}
static double ArrehniusParam(double temp_K, std::vector< double > P)

References ArrehniusParam(), fRateParam, and P.

Referenced by G4ReactionTableMessenger::SetNewValue().

◆ SetEffectiveReactionRadius()

void G4DNAMolecularReactionData::SetEffectiveReactionRadius ( G4double  radius)

◆ SetObservedReactionRateConstant()

void G4DNAMolecularReactionData::SetObservedReactionRateConstant ( G4double  rate)

◆ SetPolynomialParameterization()

void G4DNAMolecularReactionData::SetPolynomialParameterization ( const std::vector< double > &  P)

Definition at line 770 of file G4DNAMolecularReactionTable.cc.

771{
772 fRateParam = std::bind(PolynomialParam, std::placeholders::_1, P);
773}
static double PolynomialParam(double temp_K, std::vector< double > P)

References fRateParam, P, and PolynomialParam().

Referenced by G4ReactionTableMessenger::SetNewValue().

◆ SetProbability()

void G4DNAMolecularReactionData::SetProbability ( G4double  prob)

Definition at line 270 of file G4DNAMolecularReactionTable.cc.

271{
272 fProbability = prob;
273}

References fProbability.

◆ SetReactant1() [1/2]

void G4DNAMolecularReactionData::SetReactant1 ( const G4String reactive)

Definition at line 189 of file G4DNAMolecularReactionTable.cc.

190{
192}
G4MolecularConfiguration * GetConfiguration(const G4String &, bool mustExist=true)

References fpReactant1, G4MoleculeTable::GetConfiguration(), and G4MoleculeTable::Instance().

◆ SetReactant1() [2/2]

void G4DNAMolecularReactionData::SetReactant1 ( Reactant reactive)

Definition at line 147 of file G4DNAMolecularReactionTable.cc.

148{
149 fpReactant1 = pReactive;
150}

References fpReactant1.

Referenced by G4DNAMolecularReactionData().

◆ SetReactant2() [1/2]

void G4DNAMolecularReactionData::SetReactant2 ( const G4String reactive)

◆ SetReactant2() [2/2]

void G4DNAMolecularReactionData::SetReactant2 ( Reactant reactive)

Definition at line 152 of file G4DNAMolecularReactionTable.cc.

153{
154 fpReactant2 = pReactive;
155}

References fpReactant2.

Referenced by G4DNAMolecularReactionData().

◆ SetReactants() [1/2]

void G4DNAMolecularReactionData::SetReactants ( const G4String reactive1,
const G4String reactive2 
)

◆ SetReactants() [2/2]

void G4DNAMolecularReactionData::SetReactants ( Reactant reactive1,
Reactant reactive2 
)

Definition at line 157 of file G4DNAMolecularReactionTable.cc.

159{
160 fpReactant1 = pReactant1;
161 fpReactant2 = pReactant2;
162}

References fpReactant1, and fpReactant2.

◆ SetReactionID()

void G4DNAMolecularReactionData::SetReactionID ( int  ID)

Definition at line 142 of file G4DNAMolecularReactionTable.cc.

143{
144 fReactionID = ID;
145}

References fReactionID.

Referenced by G4DNAMolecularReactionTable::SetReaction().

◆ SetReactionRadius()

void G4DNAMolecularReactionData::SetReactionRadius ( G4double  radius)

◆ SetReactionType()

void G4DNAMolecularReactionData::SetReactionType ( G4int  type)

Definition at line 275 of file G4DNAMolecularReactionTable.cc.

276{
277 G4double sumDiffCoeff = 0.;
278
279 if(type == 1)
280 {
281
282 sumDiffCoeff = fpReactant1->GetDiffusionCoefficient() +
284
287
288 G4double Rs = 0.29 * nm;
289 if(fOnsagerRadius == 0) // Type II
290 {
292 fDiffusionRate = 4 * pi * sumDiffCoeff * fReactionRadius * Avogadro;
296
297 }else{ // Type IV
299 fDiffusionRate = 4 * pi * sumDiffCoeff * fEffectiveReactionRadius * Avogadro;
301
304 }
305 }
306
307 fType = type;
308}
static constexpr double nm
Definition: G4SIunits.hh:92
float Avogadro
Definition: hepunit.py:252

References source.hepunit::Avogadro, fActivationRate, fDiffusionRate, fEffectiveReactionRadius, fObservedReactionRate, fOnsagerRadius, fpReactant1, fpReactant2, fProbability, fReactionRadius, fType, G4MolecularConfiguration::GetDiffusionCoefficient(), G4MolecularConfiguration::GetVanDerVaalsRadius(), nm, and pi.

Referenced by G4EmDNAChemistry_option3::ConstructReactionTable().

◆ SetScaledParameterization()

void G4DNAMolecularReactionData::SetScaledParameterization ( double  temperature_K,
double  rateCste 
)

Definition at line 786 of file G4DNAMolecularReactionTable.cc.

788{
790 std::placeholders::_1,
791 temperature_K,
792 rateCste);
793}
static double ScaledParameterization(double temp_K, double temp_init, double rateCste_init)

References fRateParam, and ScaledParameterization().

Referenced by G4ReactionTableMessenger::SetNewValue().

Field Documentation

◆ fActivationRate

G4double G4DNAMolecularReactionData::fActivationRate
protected

Definition at line 155 of file G4DNAMolecularReactionTable.hh.

Referenced by GetActivationRateConstant(), and SetReactionType().

◆ fDiffusionRate

G4double G4DNAMolecularReactionData::fDiffusionRate
protected

Definition at line 156 of file G4DNAMolecularReactionTable.hh.

Referenced by GetDiffusionRateConstant(), and SetReactionType().

◆ fEffectiveReactionRadius

G4double G4DNAMolecularReactionData::fEffectiveReactionRadius
protected

◆ fObservedReactionRate

G4double G4DNAMolecularReactionData::fObservedReactionRate
protected

◆ fOnsagerRadius

G4double G4DNAMolecularReactionData::fOnsagerRadius
protected

◆ fpReactant1

Reactant* G4DNAMolecularReactionData::fpReactant1
protected

◆ fpReactant2

Reactant* G4DNAMolecularReactionData::fpReactant2
protected

◆ fProbability

G4double G4DNAMolecularReactionData::fProbability
protected

◆ fProducts

ReactionProducts G4DNAMolecularReactionData::fProducts
protected

◆ fRateParam

RateParam G4DNAMolecularReactionData::fRateParam
protected

◆ fReactionID

int G4DNAMolecularReactionData::fReactionID
protected

◆ fReactionRadius

G4double G4DNAMolecularReactionData::fReactionRadius
protected

◆ fType

G4int G4DNAMolecularReactionData::fType
protected

Definition at line 164 of file G4DNAMolecularReactionTable.hh.

Referenced by GetReactionType(), and SetReactionType().


The documentation for this class was generated from the following files: