40 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMacroChemicalPotential::operator= meant to not be accessable");
46 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMacroChemicalPotential::operator== meant to not be accessable");
53 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMacroChemicalPotential::operator!= meant to not be accessable");
65 +2.0*CP*g4calc->
Z23(theA))
69 G4double ChemPb = 0.5*_ChemPotentialNu;
74 if (fChemPa*fChemPb > 0.0) {
78 ChemPb -= 1.5*std::abs(ChemPb-ChemPa);
81 }
while (fChemPb < 0.0);
84 ChemPb += 1.5*std::abs(ChemPb-ChemPa);
87 }
while (fChemPb > 0.0);
95 if (!theSolver->
Brent(*
this)){
96 G4cout <<
"G4StatMFMacroChemicalPotential:"<<
" ChemPa="<<ChemPa
97 <<
" ChemPb="<<ChemPb<<
G4endl;
98 G4cout <<
"G4StatMFMacroChemicalPotential:"<<
" fChemPa="<<fChemPa
99 <<
" fChemPb="<<fChemPb<<
G4endl;
100 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu: I couldn't find the root.");
102 _ChemPotentialNu = theSolver->
GetRoot();
104 return _ChemPotentialNu;
111 std::vector<G4VStatMFMacroCluster*>::iterator i;
112 for (i= _theClusters->begin()+1; i != _theClusters->end(); ++i)
114 (*i)->CalcZARatio(nu);
116 CalcChemicalPotentialMu(nu);
120 (*_theClusters->begin())->CalcZARatio(nu);
124 for (i = _theClusters->begin(); i != _theClusters->end(); ++i)
126 MeanZ += (n++) * (*i)->GetZARatio() * (*i)->GetMeanMultiplicity();
131 void G4StatMFMacroChemicalPotential::CalcChemicalPotentialMu(
const G4double nu)
static G4double GetGamma0()
static G4Pow * GetInstance()
G4double operator()(const G4double nu)
void SetIntervalLimits(const G4double Limit1, const G4double Limit2)
G4double CalcChemicalPotentialMu(void)
G4bool Brent(Function &theFunction)
G4GLOB_DLL std::ostream G4cout
G4double GetMeanMultiplicity(void) const
G4double GetRoot(void) const
G4double CalcChemicalPotentialNu(void)
static G4double GetCoulomb()
G4double Z23(G4int Z) const