#include <G4StatMFMacroMultiNucleon.hh>
Inheritance diagram for G4StatMFMacroMultiNucleon:
Public Member Functions | |
G4StatMFMacroMultiNucleon (const G4int Size) | |
~G4StatMFMacroMultiNucleon () | |
G4double | CalcMeanMultiplicity (const G4double FreeVol, const G4double mu, const G4double nu, const G4double T) |
G4double | CalcZARatio (const G4double nu) |
G4double | CalcEnergy (const G4double T) |
G4double | CalcEntropy (const G4double T, const G4double FreeVol) |
Definition at line 38 of file G4StatMFMacroMultiNucleon.hh.
G4StatMFMacroMultiNucleon::G4StatMFMacroMultiNucleon | ( | const G4int | Size | ) | [inline] |
G4StatMFMacroMultiNucleon::~G4StatMFMacroMultiNucleon | ( | ) | [inline] |
Implements G4VStatMFMacroCluster.
Definition at line 126 of file G4StatMFMacroMultiNucleon.cc.
References G4VStatMFMacroCluster::_Energy, G4VStatMFMacroCluster::_InvLevelDensity, A23, G4StatMFParameters::Beta(), G4StatMFParameters::DBetaDT(), G4StatMFParameters::GetE0(), G4StatMFParameters::GetGamma0(), G4StatMFParameters::GetKappaCoulomb(), G4StatMFParameters::Getr0(), G4VStatMFMacroCluster::theA, and G4VStatMFMacroCluster::theZARatio.
00127 { 00128 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* 00129 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); 00130 00131 const G4double A23 = std::pow(static_cast<G4double>(theA),2./3.); 00132 00133 // Volume term 00134 G4double EVol = static_cast<G4double>(theA) * (T*T/_InvLevelDensity - G4StatMFParameters::GetE0()); 00135 00136 // Symmetry term 00137 G4double ESym = static_cast<G4double>(theA) * G4StatMFParameters::GetGamma0() *(1. - 2.* theZARatio) * (1. - 2.* theZARatio); 00138 00139 // Surface term 00140 G4double ESurf = A23*(G4StatMFParameters::Beta(T) - T*G4StatMFParameters::DBetaDT(T)); 00141 00142 // Coulomb term 00143 G4double ECoul = Coulomb*A23*static_cast<G4double>(theA)*theZARatio*theZARatio; 00144 00145 // Translational term 00146 G4double ETrans = (3./2.)*T; 00147 00148 00149 return _Energy = EVol + ESurf + ECoul + ETrans + ESym; 00150 }
G4double G4StatMFMacroMultiNucleon::CalcEntropy | ( | const G4double | T, | |
const G4double | FreeVol | |||
) | [virtual] |
Implements G4VStatMFMacroCluster.
Definition at line 153 of file G4StatMFMacroMultiNucleon.cc.
References G4VStatMFMacroCluster::_InvLevelDensity, G4VStatMFMacroCluster::_MeanMultiplicity, G4StatMFParameters::DBetaDT(), and G4VStatMFMacroCluster::theA.
00154 { 00155 const G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T); 00156 const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght; 00157 00158 G4double Entropy = 0.0; 00159 if (_MeanMultiplicity > 0.0) { 00160 // Volume term 00161 G4double SV = 2.0*static_cast<G4double>(theA)*T/_InvLevelDensity; 00162 00163 // Surface term 00164 G4double SS = -G4StatMFParameters::DBetaDT(T)*std::pow(static_cast<G4double>(theA),2./3.); 00165 00166 // Translational term 00167 G4double ST = (5./2.)+std::log(FreeVol * std::sqrt(static_cast<G4double>(theA)) * 00168 static_cast<G4double>(theA)/(lambda3*_MeanMultiplicity)); 00169 00170 00171 Entropy = _MeanMultiplicity*(SV + SS + ST); 00172 } 00173 00174 00175 return Entropy; 00176 }
G4double G4StatMFMacroMultiNucleon::CalcMeanMultiplicity | ( | const G4double | FreeVol, | |
const G4double | mu, | |||
const G4double | nu, | |||
const G4double | T | |||
) | [virtual] |
Implements G4VStatMFMacroCluster.
Definition at line 83 of file G4StatMFMacroMultiNucleon.cc.
References G4VStatMFMacroCluster::_InvLevelDensity, G4VStatMFMacroCluster::_MeanMultiplicity, A23, G4StatMFParameters::Beta(), G4StatMFParameters::GetE0(), G4StatMFParameters::GetGamma0(), G4StatMFParameters::GetKappaCoulomb(), G4StatMFParameters::Getr0(), G4VStatMFMacroCluster::theA, and G4VStatMFMacroCluster::theZARatio.
00085 { 00086 const G4double ThermalWaveLenght = 16.15*fermi/std::sqrt(T); 00087 00088 const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght; 00089 00090 const G4double A23 = std::pow(static_cast<G4double>(theA),2./3.); 00091 00092 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* 00093 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); 00094 00095 G4double exponent = (mu + nu*theZARatio+ G4StatMFParameters::GetE0() + T*T/_InvLevelDensity 00096 - G4StatMFParameters::GetGamma0()*(1.0 - 2.0*theZARatio)* 00097 (1.0 - 2.0*theZARatio))*theA 00098 - G4StatMFParameters::Beta(T)*A23 - Coulomb*theZARatio*theZARatio*A23*theA; 00099 00100 exponent /= T; 00101 00102 if (exponent > 30.0) exponent = 30.0; 00103 00104 _MeanMultiplicity = std::max((FreeVol * static_cast<G4double>(theA) * 00105 std::sqrt(static_cast<G4double>(theA))/lambda3) * 00106 std::exp(exponent),1.0e-30); 00107 return _MeanMultiplicity; 00108 }
Implements G4VStatMFMacroCluster.
Definition at line 111 of file G4StatMFMacroMultiNucleon.cc.
References G4StatMFParameters::GetGamma0(), G4StatMFParameters::GetKappaCoulomb(), G4StatMFParameters::Getr0(), G4VStatMFMacroCluster::theA, and G4VStatMFMacroCluster::theZARatio.
00112 { 00113 const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* 00114 (1.0 - 1.0/std::pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); 00115 00116 G4double den = 8.0*G4StatMFParameters::GetGamma0()+2.0*Coulomb*std::pow(static_cast<G4double>(theA),2./3.); 00117 G4double num = 4.0*G4StatMFParameters::GetGamma0()+nu; 00118 00119 return theZARatio = num/den; 00120 00121 00122 }