39 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMacroChemicalPotential::operator= meant to not be accessible");
45 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMacroChemicalPotential::operator== meant to not be accessible");
52 throw G4HadronicException(__FILE__, __LINE__,
"G4StatMFMacroChemicalPotential::operator!= meant to not be accessible");
64 +2.0*CP*g4calc->
Z23(theA))
68 G4double ChemPb = 0.5*_ChemPotentialNu;
73 if (fChemPa*fChemPb > 0.0) {
77 ChemPb -= 1.5*std::abs(ChemPb-ChemPa);
80 }
while (fChemPb < 0.0);
83 ChemPb += 1.5*std::abs(ChemPb-ChemPa);
86 }
while (fChemPb > 0.0);
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.");
101 _ChemPotentialNu = theSolver->
GetRoot();
103 return _ChemPotentialNu;
110 std::vector<G4VStatMFMacroCluster*>::iterator i;
111 for (i= _theClusters->begin()+1; i != _theClusters->end(); ++i)
113 (*i)->CalcZARatio(nu);
115 CalcChemicalPotentialMu(nu);
119 (*_theClusters->begin())->CalcZARatio(nu);
123 for (i = _theClusters->begin(); i != _theClusters->end(); ++i)
125 MeanZ += (
n++) * (*i)->GetZARatio() * (*i)->GetMeanMultiplicity();
130void G4StatMFMacroChemicalPotential::CalcChemicalPotentialMu(
const G4double nu)
G4GLOB_DLL std::ostream G4cout
static G4Pow * GetInstance()
G4double Z23(G4int Z) const
G4bool Brent(Function &theFunction)
void SetIntervalLimits(const G4double Limit1, const G4double Limit2)
G4double GetRoot(void) const
G4double CalcChemicalPotentialNu(void)
G4double operator()(const G4double nu)
G4double CalcChemicalPotentialMu(void)
G4double GetMeanMultiplicity(void) const
static G4double GetGamma0()
static G4double GetCoulomb()