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
 
Reactant * GetProduct (G4int i) const
 
const ReactionProducts * GetProducts () const
 
Reactant * GetReactant1 () const
 
Reactant * GetReactant2 () 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
 
Reactant * fpReactant1
 
Reactant * fpReactant2
 
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: