Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4StatMFMacroChemicalPotential Class Reference

#include <G4StatMFMacroChemicalPotential.hh>

Public Member Functions

 G4StatMFMacroChemicalPotential (const G4double anA, const G4double aZ, const G4double kappa, const G4double temp, std::vector< G4VStatMFMacroCluster * > *ClusterVector)
 
 ~G4StatMFMacroChemicalPotential ()
 
G4double operator() (const G4double nu)
 
G4double GetMeanMultiplicity (void) const
 
G4double GetChemicalPotentialMu (void) const
 
G4double GetChemicalPotentialNu (void) const
 
G4double CalcChemicalPotentialNu (void)
 

Detailed Description

Definition at line 43 of file G4StatMFMacroChemicalPotential.hh.

Constructor & Destructor Documentation

◆ G4StatMFMacroChemicalPotential()

G4StatMFMacroChemicalPotential::G4StatMFMacroChemicalPotential ( const G4double  anA,
const G4double  aZ,
const G4double  kappa,
const G4double  temp,
std::vector< G4VStatMFMacroCluster * > *  ClusterVector 
)
inline

Definition at line 47 of file G4StatMFMacroChemicalPotential.hh.

50 :
51 theA(anA),
52 theZ(aZ),
53 _Kappa(kappa),
54 _MeanMultiplicity(0.0),
55 _MeanTemperature(temp),
56 _ChemPotentialMu(0.0),
57 _ChemPotentialNu(0.0),
58 _theClusters(ClusterVector)
59 {};

◆ ~G4StatMFMacroChemicalPotential()

G4StatMFMacroChemicalPotential::~G4StatMFMacroChemicalPotential ( )
inline

Definition at line 61 of file G4StatMFMacroChemicalPotential.hh.

61{};

Member Function Documentation

◆ CalcChemicalPotentialNu()

G4double G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu ( void  )

Definition at line 56 of file G4StatMFMacroChemicalPotential.cc.

58{
59 G4Pow* g4calc = G4Pow::GetInstance();
61
62 // Initial value for _ChemPotentialNu
63 _ChemPotentialNu = (theZ/theA)*(8.0*G4StatMFParameters::GetGamma0()
64 +2.0*CP*g4calc->Z23(theA))
66
67 G4double ChemPa = _ChemPotentialNu;
68 G4double ChemPb = 0.5*_ChemPotentialNu;
69
70 G4double fChemPa = this->operator()(ChemPa);
71 G4double fChemPb = this->operator()(ChemPb);
72
73 if (fChemPa*fChemPb > 0.0) {
74 // bracketing the solution
75 if (fChemPa < 0.0) {
76 do {
77 ChemPb -= 1.5*std::abs(ChemPb-ChemPa);
78 fChemPb = this->operator()(ChemPb);
79 // Loop checking, 05-Aug-2015, Vladimir Ivanchenko
80 } while (fChemPb < 0.0);
81 } else {
82 do {
83 ChemPb += 1.5*std::abs(ChemPb-ChemPa);
84 fChemPb = this->operator()(ChemPb);
85 // Loop checking, 05-Aug-2015, Vladimir Ivanchenko
86 } while (fChemPb > 0.0);
87 }
88 }
89
92 theSolver->SetIntervalLimits(ChemPa,ChemPb);
93 // if (!theSolver->Crenshaw(*this))
94 if (!theSolver->Brent(*this)){
95 G4cout <<"G4StatMFMacroChemicalPotential:"<<" ChemPa="<<ChemPa
96 <<" ChemPb="<<ChemPb<< G4endl;
97 G4cout <<"G4StatMFMacroChemicalPotential:"<<" fChemPa="<<fChemPa
98 <<" fChemPb="<<fChemPb<< G4endl;
99 throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu: I couldn't find the root.");
100 }
101 _ChemPotentialNu = theSolver->GetRoot();
102 delete theSolver;
103 return _ChemPotentialNu;
104}
double G4double
Definition: G4Types.hh:83
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
Definition: G4Pow.hh:49
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double Z23(G4int Z) const
Definition: G4Pow.hh:125
G4bool Brent(Function &theFunction)
void SetIntervalLimits(const G4double Limit1, const G4double Limit2)
G4double GetRoot(void) const
Definition: G4Solver.hh:76
static G4double GetGamma0()
static G4double GetCoulomb()

◆ GetChemicalPotentialMu()

G4double G4StatMFMacroChemicalPotential::GetChemicalPotentialMu ( void  ) const
inline

Definition at line 83 of file G4StatMFMacroChemicalPotential.hh.

83{return _ChemPotentialMu;}

◆ GetChemicalPotentialNu()

G4double G4StatMFMacroChemicalPotential::GetChemicalPotentialNu ( void  ) const
inline

Definition at line 85 of file G4StatMFMacroChemicalPotential.hh.

85{return _ChemPotentialNu;}

◆ GetMeanMultiplicity()

G4double G4StatMFMacroChemicalPotential::GetMeanMultiplicity ( void  ) const
inline

Definition at line 81 of file G4StatMFMacroChemicalPotential.hh.

81{return _MeanMultiplicity;}

◆ operator()()

G4double G4StatMFMacroChemicalPotential::operator() ( const G4double  nu)
inline

Definition at line 63 of file G4StatMFMacroChemicalPotential.hh.

64 { return (theZ - this->CalcMeanZ(nu))/theZ; }

Referenced by CalcChemicalPotentialNu().


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