canteraTransport calculateDiffusivities exception handling for pure composition (Xi = 1.0)
This commit is contained in:
parent
bfdf807537
commit
e4fb1fc545
3 changed files with 31 additions and 1 deletions
|
|
@ -70,6 +70,7 @@ Foam::canteraTransport<Thermo>::canteraTransport(Istream& is)
|
|||
:
|
||||
Thermo(is),
|
||||
temp_(cm_.nCanteraSp()),
|
||||
Dij_(cm_.nCanteraSp()*cm_.nCanteraSp()),
|
||||
X_(cm_.nCanteraSp(), 0.0)
|
||||
{
|
||||
is.check("canteraTransport<Thermo>::canteraTransport(Istream&)");
|
||||
|
|
@ -81,6 +82,7 @@ Foam::canteraTransport<Thermo>::canteraTransport(const dictionary& dict)
|
|||
:
|
||||
Thermo(dict),
|
||||
temp_(cm_.nCanteraSp()),
|
||||
Dij_(cm_.nCanteraSp()*cm_.nCanteraSp()),
|
||||
X_(cm_.nCanteraSp(), 0.0)
|
||||
{
|
||||
label si = cm_.gas()->speciesIndex(this->specie::name());
|
||||
|
|
@ -156,7 +158,30 @@ void Foam::canteraTransport<Thermo>::calculateDiffusivities
|
|||
) const
|
||||
{
|
||||
cm_.gas()->setState_TPX(T, p, X_.cdata());
|
||||
cm_.tr()->getMixDiffCoeffsMass(temp_.data());
|
||||
|
||||
// check for singular case (Xi = 1)
|
||||
label idxFracOne = -1;
|
||||
scalar sumX = sum(X_);
|
||||
forAll (X_, i)
|
||||
{
|
||||
if (X_[i]/sumX == 1.0) idxFracOne = i;
|
||||
}
|
||||
|
||||
if (idxFracOne < 0)
|
||||
{
|
||||
cm_.tr()->getMixDiffCoeffsMass(temp_.data());
|
||||
}
|
||||
else
|
||||
{
|
||||
label nSp = cm_.nCanteraSp();
|
||||
cm_.tr()->getBinaryDiffCoeffs(nSp, Dij_.data());
|
||||
|
||||
forAll(temp_, i)
|
||||
{
|
||||
temp_[i] = Dij_[nSp*idxFracOne+i] / p;
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -132,6 +132,8 @@ class canteraTransport
|
|||
|
||||
mutable scalarField temp_;
|
||||
|
||||
mutable scalarField Dij_;
|
||||
|
||||
static canteraManager cm_;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ inline Foam::canteraTransport<Thermo>::canteraTransport
|
|||
:
|
||||
Thermo(t),
|
||||
temp_(cm_.nCanteraSp()),
|
||||
Dij_(cm_.nCanteraSp()*cm_.nCanteraSp()),
|
||||
X_(X)
|
||||
{}
|
||||
|
||||
|
|
@ -54,6 +55,7 @@ inline Foam::canteraTransport<Thermo>::canteraTransport
|
|||
:
|
||||
Thermo(t),
|
||||
temp_(cm_.nCanteraSp()),
|
||||
Dij_(cm_.nCanteraSp()*cm_.nCanteraSp()),
|
||||
X_(cm_.nCanteraSp())
|
||||
{
|
||||
}
|
||||
|
|
@ -68,6 +70,7 @@ inline Foam::canteraTransport<Thermo>::canteraTransport
|
|||
:
|
||||
Thermo(name, st),
|
||||
temp_(cm_.nCanteraSp()),
|
||||
Dij_(cm_.nCanteraSp()*cm_.nCanteraSp()),
|
||||
X_(st.X_)
|
||||
{}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue