Coulomb interaction collision integral fit coeffs now constexpr and removed reference to ion objects

This commit is contained in:
ignis 2018-06-10 03:09:35 +09:00
parent 3c91307cfb
commit 67fe50953d
3 changed files with 38 additions and 19 deletions

View file

@ -43,14 +43,38 @@ License
Foam::Coulomb::Coulomb(const Ion& a, const Ion& b)
:
a_(a),
b_(b),
eij_(abs(a_.z()*b_.z())*sqr(a_.e)/(4.0*a_.pi*a_.eps0*a_.k)),
Wij_(1.0/(1.0/a_.W() + 1.0/b_.W()))
eij_(abs(a.z()*b.z())*sqr(a.e)/(4.0*Foam::Ion::pi*Foam::Ion::eps0*Foam::Ion::k)),
Wij_(inv(inv(a.W()) + inv(b.W())))
{
}
/*
Foam::Coulomb::Coulomb(const Electron& a, const Ion& b)
:
// a_(a),
// b_(b),
// eij_(abs(a_.z()*b_.z())*sqr(a_.e)/(4.0*a_.pi*a_.eps0*a_.k)),
// Wij_(1.0/(1.0/a_.W() + 1.0/b_.W()))
eij_(abs(a.z()*b.z())*sqr(a.e)/(4.0*a.pi*a.eps0*a.k)),
Wij_(1.0/(1.0/a.W() + 1.0/b.W()))
{
}
Foam::Coulomb::Coulomb(const Electron& a, const Electron& b)
:
// a_(a),
// b_(b),
// eij_(abs(a_.z()*b_.z())*sqr(a_.e)/(4.0*a_.pi*a_.eps0*a_.k)),
// Wij_(1.0/(1.0/a_.W() + 1.0/b_.W()))
eij_(abs(a.z()*b.z())*sqr(a.e)/(4.0*a.pi*a.eps0*a.k)),
Wij_(1.0/(1.0/a.W() + 1.0/b.W()))
{
}
*/
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::Coulomb::~Coulomb()

View file

@ -39,6 +39,7 @@ SourceFiles
#include "scalar.H"
#include "scalarField.H"
#include "Ion.H"
// #include "Electron.H"
#include "Interaction.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -65,12 +66,6 @@ class Coulomb
{
// Private data
//- Collision participant a
const Ion &a_;
//- Collision participant b
const Ion &b_;
//- Combined well depth (depend on Debye Length)
scalar eij_;

View file

@ -39,34 +39,34 @@ License
inline Foam::scalar Foam::Coulomb::Omega11(const scalar Tstar)
{
const scalar A = 0.5;
const scalar B = -0.129;
constexpr scalar A = 0.5;
constexpr scalar B = -0.129;
return (A * loge (Tstar) + B) / sqr(Tstar);
}
inline Foam::scalar Foam::Coulomb::Omega22(const scalar Tstar)
{
const scalar A = 0.5;
const scalar B = 0.1165;
constexpr scalar A = 0.5;
constexpr scalar B = 0.1165;
return (A * loge (Tstar) + B) / sqr(Tstar);
}
inline Foam::scalar Foam::Coulomb::D(const scalar p, const scalar T, const scalar rhoQc2)
{
scalar sigmaij_ = sqrt(a_.eps0 * a_.k * T / (rhoQc2 + ROOTVSMALL)); // Debye length
scalar sigmaij_ = sqrt(Foam::Ion::eps0 * Foam::Ion::k * T / (rhoQc2 + ROOTVSMALL)); // Debye length
return (3.0/8.0) * sqrt(2.0*a_.pi*a_.NA*pow3(a_.k*T)/Wij_)
/ (a_.pi * sqr(sigmaij_) * p * Omega11(sigmaij_*T/eij_));
return (3.0/8.0) * sqrt(2.0*Foam::Ion::pi*Foam::Ion::NA*pow3(Foam::Ion::k*T)/Wij_)
/ (Foam::Ion::pi * sqr(sigmaij_) * p * Omega11(sigmaij_*T/eij_));
}
inline Foam::scalar Foam::Coulomb::mu(const scalar p, const scalar T, const scalar rhoQc2)
{
scalar sigmaij_ = sqrt(a_.eps0 * a_.k * T / (rhoQc2 + ROOTVSMALL)); // Debye length
scalar sigmaij_ = sqrt(Foam::Ion::eps0 * Foam::Ion::k * T / (rhoQc2 + ROOTVSMALL)); // Debye length
return (5.0/16.0) * sqrt(2.0*Wij_*a_.k*T/(a_.pi*a_.NA))
return (5.0/16.0) * sqrt(2.0*Wij_*Foam::Ion::k*T/(Foam::Ion::pi*Foam::Ion::NA))
/ (sqr(sigmaij_) * Omega22(sigmaij_*T/eij_));
}