BUGFIX: pvdv function in Redlich Kwong model
This commit is contained in:
parent
65e6031bcb
commit
6ca6d7f302
3 changed files with 7 additions and 3 deletions
|
@ -44,7 +44,8 @@ Foam::redlichKwong::redlichKwong(Istream& is)
|
||||||
Tcrit_(readScalar(is)),
|
Tcrit_(readScalar(is)),
|
||||||
a_(0.42748*pow(this->RR(), 2)*pow(Tcrit_, 2.5)/pcrit_),
|
a_(0.42748*pow(this->RR(), 2)*pow(Tcrit_, 2.5)/pcrit_),
|
||||||
b_(0.08664*this->RR()*Tcrit_/pcrit_),
|
b_(0.08664*this->RR()*Tcrit_/pcrit_),
|
||||||
b2_(pow(b_,2)),
|
b2_(b_*b_),
|
||||||
|
b3_(b2_*b_),
|
||||||
//CL: Only uses the default values
|
//CL: Only uses the default values
|
||||||
rhoMin_(1e-3),
|
rhoMin_(1e-3),
|
||||||
rhoMax_(1500),
|
rhoMax_(1500),
|
||||||
|
@ -67,7 +68,6 @@ Foam::redlichKwong::redlichKwong(const dictionary& dict)
|
||||||
b_(0.08664*this->RR()*Tcrit_/pcrit_),
|
b_(0.08664*this->RR()*Tcrit_/pcrit_),
|
||||||
b2_(pow(b_,2)),
|
b2_(pow(b_,2)),
|
||||||
b3_(pow(b_,3)),
|
b3_(pow(b_,3)),
|
||||||
b5_(pow(b_,5)),
|
|
||||||
//CL: rhoMin and rhoMax are only used as boundaries for the bisection methode (see rho function)
|
//CL: rhoMin and rhoMax are only used as boundaries for the bisection methode (see rho function)
|
||||||
//CL: important: rhoMin and rhoMax are not used as boundary for the newton solver
|
//CL: important: rhoMin and rhoMax are not used as boundary for the newton solver
|
||||||
//CL: therefore, rho can be larger than rhoMax and smaller than rhoMin
|
//CL: therefore, rho can be larger than rhoMax and smaller than rhoMin
|
||||||
|
|
|
@ -69,6 +69,7 @@ class redlichKwong
|
||||||
|
|
||||||
//CL: pow of constants b_ used in the code e.g. b2_=b*b;
|
//CL: pow of constants b_ used in the code e.g. b2_=b*b;
|
||||||
scalar b2_;
|
scalar b2_;
|
||||||
|
scalar b3_;
|
||||||
|
|
||||||
//CL: rhoMin and rhoMax are only used as boundaries for the bisection methode (see rho function)
|
//CL: rhoMin and rhoMax are only used as boundaries for the bisection methode (see rho function)
|
||||||
scalar rhoMin_;
|
scalar rhoMin_;
|
||||||
|
|
|
@ -57,6 +57,7 @@ inline redlichKwong::redlichKwong(const word& name, const redlichKwong& rk)
|
||||||
a_(rk.a_),
|
a_(rk.a_),
|
||||||
b_(rk.b_),
|
b_(rk.b_),
|
||||||
b2_(rk.b2_),
|
b2_(rk.b2_),
|
||||||
|
b3_(rk.b3_),
|
||||||
rhoMin_(rk.rhoMin_),
|
rhoMin_(rk.rhoMin_),
|
||||||
rhoMax_(rk.rhoMax_),
|
rhoMax_(rk.rhoMax_),
|
||||||
rhostd_(rk.rhostd_)
|
rhostd_(rk.rhostd_)
|
||||||
|
@ -130,13 +131,15 @@ inline scalar redlichKwong::dpdv(const scalar rho, const scalar T) const
|
||||||
{
|
{
|
||||||
scalar Vm = this->W()/rho;
|
scalar Vm = this->W()/rho;
|
||||||
scalar Vm2 = Vm*Vm;
|
scalar Vm2 = Vm*Vm;
|
||||||
|
scalar Vm3 = Vm2*Vm;
|
||||||
scalar T05 = pow(T, 0.5);
|
scalar T05 = pow(T, 0.5);
|
||||||
scalar bmVm = b_ - Vm;
|
scalar bmVm = b_ - Vm;
|
||||||
scalar bmVm2 = bmVm*bmVm;
|
scalar bmVm2 = bmVm*bmVm;
|
||||||
scalar bpVm = b_ + Vm;
|
scalar bpVm = b_ + Vm;
|
||||||
scalar bpVm2 = bpVm*bpVm;
|
scalar bpVm2 = bpVm*bpVm;
|
||||||
|
|
||||||
return (a_*bmVm2*bpVm - this->RR()*T*T05*Vm2*bpVm2)/(T05*Vm2*bpVm2*bmVm2);
|
return (a_*(b3_ - 3*b_*Vm2 + 2*Vm3) - this->RR()*T*T05*Vm2*bpVm2)
|
||||||
|
/(T05*Vm2*bpVm2*bmVm2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in a new issue