mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
constTransport: Avoid /0 in + and - operators averaging 1/Pr when the number of moles = 0
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1348
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -203,15 +203,27 @@ inline Foam::constTransport<Thermo> Foam::operator+
|
||||
static_cast<const Thermo&>(ct1) + static_cast<const Thermo&>(ct2)
|
||||
);
|
||||
|
||||
scalar molr1 = ct1.nMoles()/t.nMoles();
|
||||
scalar molr2 = ct2.nMoles()/t.nMoles();
|
||||
if (mag(ct1.nMoles()) + mag(ct2.nMoles()) < SMALL)
|
||||
{
|
||||
return constTransport<Thermo>
|
||||
(
|
||||
t,
|
||||
0,
|
||||
ct1.rPr_
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
scalar molr1 = ct1.nMoles()/t.nMoles();
|
||||
scalar molr2 = ct2.nMoles()/t.nMoles();
|
||||
|
||||
return constTransport<Thermo>
|
||||
(
|
||||
t,
|
||||
molr1*ct1.mu_ + molr2*ct2.mu_,
|
||||
1.0/(molr1/ct1.rPr_ + molr2/ct2.rPr_)
|
||||
);
|
||||
return constTransport<Thermo>
|
||||
(
|
||||
t,
|
||||
molr1*ct1.mu_ + molr2*ct2.mu_,
|
||||
1.0/(molr1/ct1.rPr_ + molr2/ct2.rPr_)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -227,15 +239,27 @@ inline Foam::constTransport<Thermo> Foam::operator-
|
||||
static_cast<const Thermo&>(ct1) - static_cast<const Thermo&>(ct2)
|
||||
);
|
||||
|
||||
scalar molr1 = ct1.nMoles()/t.nMoles();
|
||||
scalar molr2 = ct2.nMoles()/t.nMoles();
|
||||
if (mag(ct1.nMoles()) + mag(ct2.nMoles()) < SMALL)
|
||||
{
|
||||
return constTransport<Thermo>
|
||||
(
|
||||
t,
|
||||
0,
|
||||
ct1.rPr_
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
scalar molr1 = ct1.nMoles()/t.nMoles();
|
||||
scalar molr2 = ct2.nMoles()/t.nMoles();
|
||||
|
||||
return constTransport<Thermo>
|
||||
(
|
||||
t,
|
||||
molr1*ct1.mu_ - molr2*ct2.mu_,
|
||||
1.0/(molr1/ct1.rPr_ - molr2/ct2.rPr_)
|
||||
);
|
||||
return constTransport<Thermo>
|
||||
(
|
||||
t,
|
||||
molr1*ct1.mu_ - molr2*ct2.mu_,
|
||||
1.0/(molr1/ct1.rPr_ - molr2/ct2.rPr_)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user