canteraTransport working
This commit is contained in:
parent
e1afafaf0d
commit
cd714205ef
11 changed files with 160 additions and 80 deletions
|
|
@ -54,6 +54,13 @@ namespace Foam
|
||||||
gasHThermoPhysics
|
gasHThermoPhysics
|
||||||
);
|
);
|
||||||
|
|
||||||
|
makeChemistryModel
|
||||||
|
(
|
||||||
|
chemistryModel,
|
||||||
|
psiChemistryModel,
|
||||||
|
canteraGasHThermoPhysics
|
||||||
|
);
|
||||||
|
|
||||||
makeChemistryModel
|
makeChemistryModel
|
||||||
(
|
(
|
||||||
chemistryModel,
|
chemistryModel,
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,13 @@ namespace Foam
|
||||||
gasHThermoPhysics
|
gasHThermoPhysics
|
||||||
);
|
);
|
||||||
|
|
||||||
|
makeChemistryModel
|
||||||
|
(
|
||||||
|
chemistryModel,
|
||||||
|
rhoChemistryModel,
|
||||||
|
canteraGasHThermoPhysics
|
||||||
|
);
|
||||||
|
|
||||||
makeChemistryModel
|
makeChemistryModel
|
||||||
(
|
(
|
||||||
chemistryModel,
|
chemistryModel,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ namespace Foam
|
||||||
// Chemistry solvers based on sensibleEnthalpy
|
// Chemistry solvers based on sensibleEnthalpy
|
||||||
makeChemistrySolverTypes(psiChemistryModel, constGasHThermoPhysics);
|
makeChemistrySolverTypes(psiChemistryModel, constGasHThermoPhysics);
|
||||||
makeChemistrySolverTypes(psiChemistryModel, gasHThermoPhysics);
|
makeChemistrySolverTypes(psiChemistryModel, gasHThermoPhysics);
|
||||||
|
makeChemistrySolverTypes(psiChemistryModel, canteraGasHThermoPhysics);
|
||||||
makeChemistrySolverTypes
|
makeChemistrySolverTypes
|
||||||
(
|
(
|
||||||
psiChemistryModel,
|
psiChemistryModel,
|
||||||
|
|
@ -49,6 +50,7 @@ namespace Foam
|
||||||
makeChemistrySolverTypes(psiChemistryModel, icoPoly8HThermoPhysics);
|
makeChemistrySolverTypes(psiChemistryModel, icoPoly8HThermoPhysics);
|
||||||
makeChemistrySolverTypes(rhoChemistryModel, constGasHThermoPhysics);
|
makeChemistrySolverTypes(rhoChemistryModel, constGasHThermoPhysics);
|
||||||
makeChemistrySolverTypes(rhoChemistryModel, gasHThermoPhysics);
|
makeChemistrySolverTypes(rhoChemistryModel, gasHThermoPhysics);
|
||||||
|
makeChemistrySolverTypes(rhoChemistryModel, canteraGasHThermoPhysics);
|
||||||
makeChemistrySolverTypes
|
makeChemistrySolverTypes
|
||||||
(
|
(
|
||||||
rhoChemistryModel,
|
rhoChemistryModel,
|
||||||
|
|
|
||||||
|
|
@ -41,12 +41,14 @@ namespace Foam
|
||||||
|
|
||||||
makeChemistryReader(constGasHThermoPhysics);
|
makeChemistryReader(constGasHThermoPhysics);
|
||||||
makeChemistryReader(gasHThermoPhysics);
|
makeChemistryReader(gasHThermoPhysics);
|
||||||
|
makeChemistryReader(canteraGasHThermoPhysics);
|
||||||
makeChemistryReader(constIncompressibleGasHThermoPhysics);
|
makeChemistryReader(constIncompressibleGasHThermoPhysics);
|
||||||
makeChemistryReader(incompressibleGasHThermoPhysics);
|
makeChemistryReader(incompressibleGasHThermoPhysics);
|
||||||
makeChemistryReader(icoPoly8HThermoPhysics);
|
makeChemistryReader(icoPoly8HThermoPhysics);
|
||||||
|
|
||||||
makeChemistryReaderType(foamChemistryReader, constGasHThermoPhysics);
|
makeChemistryReaderType(foamChemistryReader, constGasHThermoPhysics);
|
||||||
makeChemistryReaderType(foamChemistryReader, gasHThermoPhysics);
|
makeChemistryReaderType(foamChemistryReader, gasHThermoPhysics);
|
||||||
|
makeChemistryReaderType(foamChemistryReader, canteraGasHThermoPhysics);
|
||||||
makeChemistryReaderType
|
makeChemistryReaderType
|
||||||
(
|
(
|
||||||
foamChemistryReader,
|
foamChemistryReader,
|
||||||
|
|
|
||||||
|
|
@ -241,6 +241,15 @@ makeReactionMixtureThermo
|
||||||
gasHThermoPhysics
|
gasHThermoPhysics
|
||||||
);
|
);
|
||||||
|
|
||||||
|
makeReactionMixtureThermo
|
||||||
|
(
|
||||||
|
psiThermo,
|
||||||
|
psiReactionThermo,
|
||||||
|
hePsiThermo,
|
||||||
|
reactingMixture,
|
||||||
|
canteraGasHThermoPhysics
|
||||||
|
);
|
||||||
|
|
||||||
makeReactionMixtureThermo
|
makeReactionMixtureThermo
|
||||||
(
|
(
|
||||||
psiThermo,
|
psiThermo,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
EXE_INC = \
|
||||||
|
-I/home/ignis/OpenFOAM/cantera/include \
|
||||||
|
-I/home/ignis/OpenFOAM/cantera/include/cantera \
|
||||||
|
-I$(LIB_SRC)/OpenFOAM/lnInclude
|
||||||
|
|
||||||
|
LIB_LIBS = \
|
||||||
|
-L/home/ignis/OpenFOAM/cantera/lib \
|
||||||
|
-lcantera_shared \
|
||||||
|
-lOpenFOAM \
|
||||||
|
-lboost_system
|
||||||
|
|
@ -48,6 +48,8 @@ namespace Foam
|
||||||
|
|
||||||
typedef Reaction<gasHThermoPhysics> gasHReaction;
|
typedef Reaction<gasHThermoPhysics> gasHReaction;
|
||||||
|
|
||||||
|
typedef Reaction<canteraGasHThermoPhysics> canteraGasHReaction;
|
||||||
|
|
||||||
typedef Reaction<constIncompressibleGasHThermoPhysics>
|
typedef Reaction<constIncompressibleGasHThermoPhysics>
|
||||||
constIncompressibleGasHReaction;
|
constIncompressibleGasHReaction;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@ namespace Foam
|
||||||
// sensible enthalpy based reactions
|
// sensible enthalpy based reactions
|
||||||
makeReactions(constGasHThermoPhysics, constGasHReaction)
|
makeReactions(constGasHThermoPhysics, constGasHReaction)
|
||||||
makeReactions(gasHThermoPhysics, gasHReaction)
|
makeReactions(gasHThermoPhysics, gasHReaction)
|
||||||
|
makeReactions(canteraGasHThermoPhysics, canteraGasHReaction)
|
||||||
makeReactions
|
makeReactions
|
||||||
(
|
(
|
||||||
constIncompressibleGasHThermoPhysics,
|
constIncompressibleGasHThermoPhysics,
|
||||||
|
|
|
||||||
|
|
@ -26,14 +26,48 @@ License
|
||||||
#include "canteraTransport.H"
|
#include "canteraTransport.H"
|
||||||
#include "IOstreams.H"
|
#include "IOstreams.H"
|
||||||
|
|
||||||
|
#include "cantera/transport.h"
|
||||||
|
#include "cantera/IdealGasMix.h"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
|
typename Foam::canteraTransport<Thermo>::canteraManager Foam::canteraTransport<Thermo>::cm_;
|
||||||
|
|
||||||
|
|
||||||
|
template<class Thermo>
|
||||||
|
Foam::canteraTransport<Thermo>::canteraManager::canteraManager()
|
||||||
|
:
|
||||||
|
gas_ (NULL),
|
||||||
|
tr_ (NULL),
|
||||||
|
nCanteraSp_ (0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
gas_ = new Cantera::IdealGasMix("./cantera-transport.cti", "gas");
|
||||||
|
tr_ = Cantera::newTransportMgr("Mix", gas_);
|
||||||
|
nCanteraSp_ = gas_->nSpecies();
|
||||||
|
}
|
||||||
|
catch (Cantera::CanteraError e)
|
||||||
|
{
|
||||||
|
gas_ = NULL;
|
||||||
|
tr_ = NULL;
|
||||||
|
nCanteraSp_ = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class Thermo>
|
||||||
|
Foam::canteraTransport<Thermo>::canteraManager::~canteraManager()
|
||||||
|
{
|
||||||
|
delete tr_;
|
||||||
|
delete gas_;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class Thermo>
|
||||||
Foam::canteraTransport<Thermo>::canteraTransport(Istream& is)
|
Foam::canteraTransport<Thermo>::canteraTransport(Istream& is)
|
||||||
:
|
:
|
||||||
Thermo(is),
|
Thermo(is),
|
||||||
As_(readScalar(is)),
|
X_(cm_.gas()->nSpecies())
|
||||||
Ts_(readScalar(is))
|
|
||||||
{
|
{
|
||||||
is.check("canteraTransport<Thermo>::canteraTransport(Istream&)");
|
is.check("canteraTransport<Thermo>::canteraTransport(Istream&)");
|
||||||
}
|
}
|
||||||
|
|
@ -43,9 +77,11 @@ template<class Thermo>
|
||||||
Foam::canteraTransport<Thermo>::canteraTransport(const dictionary& dict)
|
Foam::canteraTransport<Thermo>::canteraTransport(const dictionary& dict)
|
||||||
:
|
:
|
||||||
Thermo(dict),
|
Thermo(dict),
|
||||||
As_(readScalar(dict.subDict("transport").lookup("As"))),
|
X_(cm_.gas()->nSpecies(), 0.0)
|
||||||
Ts_(readScalar(dict.subDict("transport").lookup("Ts")))
|
{
|
||||||
{}
|
label si = cm_.gas()->speciesIndex(this->specie::name());
|
||||||
|
if (si >= 0) X_[si] = this->nMoles();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
@ -59,8 +95,6 @@ void Foam::canteraTransport<Thermo>::write(Ostream& os) const
|
||||||
Thermo::write(os);
|
Thermo::write(os);
|
||||||
|
|
||||||
dictionary dict("transport");
|
dictionary dict("transport");
|
||||||
dict.add("As", As_);
|
|
||||||
dict.add("Ts", Ts_);
|
|
||||||
os << indent << dict.dictName() << dict;
|
os << indent << dict.dictName() << dict;
|
||||||
|
|
||||||
os << decrIndent << token::END_BLOCK << nl;
|
os << decrIndent << token::END_BLOCK << nl;
|
||||||
|
|
@ -75,7 +109,7 @@ Foam::Ostream& Foam::operator<<
|
||||||
const canteraTransport<Thermo>& st
|
const canteraTransport<Thermo>& st
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
os << static_cast<const Thermo&>(st) << tab << st.As_ << tab << st.Ts_;
|
os << static_cast<const Thermo&>(st);
|
||||||
|
|
||||||
os.check
|
os.check
|
||||||
(
|
(
|
||||||
|
|
@ -86,4 +120,29 @@ Foam::Ostream& Foam::operator<<
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class Thermo>
|
||||||
|
Foam::scalar Foam::canteraTransport<Thermo>::mu
|
||||||
|
(
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
cm_.gas()->setState_TPX(T, p, X_.cdata());
|
||||||
|
scalar mu_ = cm_.tr()->viscosity();
|
||||||
|
return mu_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class Thermo>
|
||||||
|
inline Foam::scalar Foam::canteraTransport<Thermo>::kappa
|
||||||
|
(
|
||||||
|
const scalar p, const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
cm_.gas()->setState_TPX(T, p, X_.cdata());
|
||||||
|
scalar kappa_ = cm_.tr()->thermalConductivity();
|
||||||
|
return kappa_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,14 @@ SourceFiles
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#include "scalarField.H"
|
||||||
|
|
||||||
|
namespace Cantera
|
||||||
|
{
|
||||||
|
class IdealGasMix;
|
||||||
|
class Transport;
|
||||||
|
}
|
||||||
|
|
||||||
namespace Foam
|
namespace Foam
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -98,21 +106,33 @@ class canteraTransport
|
||||||
:
|
:
|
||||||
public Thermo
|
public Thermo
|
||||||
{
|
{
|
||||||
|
// Private class
|
||||||
|
|
||||||
|
class canteraManager
|
||||||
|
{
|
||||||
|
Cantera::IdealGasMix *gas_;
|
||||||
|
Cantera::Transport *tr_;
|
||||||
|
label nCanteraSp_;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
canteraManager();
|
||||||
|
~canteraManager();
|
||||||
|
inline Cantera::IdealGasMix *gas() {return gas_;}
|
||||||
|
inline Cantera::Transport *tr() {return tr_;}
|
||||||
|
inline label nCanteraSp() {return nCanteraSp_;}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
// Sutherland's coefficients
|
scalarField X_;
|
||||||
scalar As_, Ts_;
|
|
||||||
|
static canteraManager cm_;
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
//- Calculate the Sutherland coefficients
|
|
||||||
// given two viscosities and temperatures
|
|
||||||
inline void calcCoeffs
|
|
||||||
(
|
|
||||||
const scalar mu1, const scalar T1,
|
|
||||||
const scalar mu2, const scalar T2
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
@ -123,8 +143,7 @@ public:
|
||||||
inline canteraTransport
|
inline canteraTransport
|
||||||
(
|
(
|
||||||
const Thermo& t,
|
const Thermo& t,
|
||||||
const scalar As,
|
const scalarField &X
|
||||||
const scalar Ts
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct from two viscosities
|
//- Construct from two viscosities
|
||||||
|
|
@ -163,10 +182,10 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/ms]
|
//- Dynamic viscosity [kg/ms]
|
||||||
inline scalar mu(const scalar p, const scalar T) const;
|
scalar mu(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal conductivity [W/mK]
|
//- Thermal conductivity [W/mK]
|
||||||
inline scalar kappa(const scalar p, const scalar T) const;
|
scalar kappa(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/ms]
|
//- Thermal diffusivity of enthalpy [kg/ms]
|
||||||
inline scalar alphah(const scalar p, const scalar T) const;
|
inline scalar alphah(const scalar p, const scalar T) const;
|
||||||
|
|
|
||||||
|
|
@ -27,21 +27,6 @@ License
|
||||||
|
|
||||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Thermo>
|
|
||||||
inline void Foam::canteraTransport<Thermo>::calcCoeffs
|
|
||||||
(
|
|
||||||
const scalar mu1, const scalar T1,
|
|
||||||
const scalar mu2, const scalar T2
|
|
||||||
)
|
|
||||||
{
|
|
||||||
scalar rootT1 = sqrt(T1);
|
|
||||||
scalar mu1rootT2 = mu1*sqrt(T2);
|
|
||||||
scalar mu2rootT1 = mu2*rootT1;
|
|
||||||
|
|
||||||
Ts_ = (mu2rootT1 - mu1rootT2)/(mu1rootT2/T1 - mu2rootT1/T2);
|
|
||||||
|
|
||||||
As_ = mu1*(1.0 + Ts_/T1)/rootT1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
@ -50,13 +35,11 @@ template<class Thermo>
|
||||||
inline Foam::canteraTransport<Thermo>::canteraTransport
|
inline Foam::canteraTransport<Thermo>::canteraTransport
|
||||||
(
|
(
|
||||||
const Thermo& t,
|
const Thermo& t,
|
||||||
const scalar As,
|
const scalarField &X
|
||||||
const scalar Ts
|
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
Thermo(t),
|
Thermo(t),
|
||||||
As_(As),
|
X_(X)
|
||||||
Ts_(Ts)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -68,9 +51,9 @@ inline Foam::canteraTransport<Thermo>::canteraTransport
|
||||||
const scalar mu2, const scalar T2
|
const scalar mu2, const scalar T2
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
Thermo(t)
|
Thermo(t),
|
||||||
|
X_(cm_.nCanteraSp())
|
||||||
{
|
{
|
||||||
calcCoeffs(mu1, T1, mu2, T2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -82,8 +65,7 @@ inline Foam::canteraTransport<Thermo>::canteraTransport
|
||||||
)
|
)
|
||||||
:
|
:
|
||||||
Thermo(name, st),
|
Thermo(name, st),
|
||||||
As_(st.As_),
|
X_(st.X_)
|
||||||
Ts_(st.Ts_)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -128,28 +110,6 @@ Foam::canteraTransport<Thermo>::New
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Thermo>
|
|
||||||
inline Foam::scalar Foam::canteraTransport<Thermo>::mu
|
|
||||||
(
|
|
||||||
const scalar p,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return As_*::sqrt(T)/(1.0 + Ts_/T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo>
|
|
||||||
inline Foam::scalar Foam::canteraTransport<Thermo>::kappa
|
|
||||||
(
|
|
||||||
const scalar p, const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
scalar Cv_ = this->Cv(p, T);
|
|
||||||
return mu(p, T)*Cv_*(1.32 + 1.77*this->R()/Cv_);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
inline Foam::scalar Foam::canteraTransport<Thermo>::alphah
|
inline Foam::scalar Foam::canteraTransport<Thermo>::alphah
|
||||||
(
|
(
|
||||||
|
|
@ -173,8 +133,7 @@ Foam::canteraTransport<Thermo>::operator=
|
||||||
{
|
{
|
||||||
Thermo::operator=(st);
|
Thermo::operator=(st);
|
||||||
|
|
||||||
As_ = st.As_;
|
X_ = st.X_;
|
||||||
Ts_ = st.Ts_;
|
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
@ -193,8 +152,10 @@ inline void Foam::canteraTransport<Thermo>::operator+=
|
||||||
molr1 /= this->nMoles();
|
molr1 /= this->nMoles();
|
||||||
scalar molr2 = st.nMoles()/this->nMoles();
|
scalar molr2 = st.nMoles()/this->nMoles();
|
||||||
|
|
||||||
As_ = molr1*As_ + molr2*st.As_;
|
// X_ = molr1*X_ + molr2*st.X_;
|
||||||
Ts_ = molr1*Ts_ + molr2*st.Ts_;
|
// X_ *= molr1;
|
||||||
|
// X_ += molr2*st.X_;
|
||||||
|
X_ += st.X_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -211,8 +172,10 @@ inline void Foam::canteraTransport<Thermo>::operator-=
|
||||||
molr1 /= this->nMoles();
|
molr1 /= this->nMoles();
|
||||||
scalar molr2 = st.nMoles()/this->nMoles();
|
scalar molr2 = st.nMoles()/this->nMoles();
|
||||||
|
|
||||||
As_ = molr1*As_ - molr2*st.As_;
|
// X_ = molr1*X_ - molr2*st.X_;
|
||||||
Ts_ = molr1*Ts_ - molr2*st.Ts_;
|
// X_ *= molr1;
|
||||||
|
// X_ -= molr2*st.X_;
|
||||||
|
X_ -= st.X_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -246,8 +209,8 @@ inline Foam::canteraTransport<Thermo> Foam::operator+
|
||||||
return canteraTransport<Thermo>
|
return canteraTransport<Thermo>
|
||||||
(
|
(
|
||||||
t,
|
t,
|
||||||
molr1*st1.As_ + molr2*st2.As_,
|
// molr1*st1.X_ + molr2*st2.X_
|
||||||
molr1*st1.Ts_ + molr2*st2.Ts_
|
st1.X_ + st2.X_
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -270,8 +233,8 @@ inline Foam::canteraTransport<Thermo> Foam::operator-
|
||||||
return canteraTransport<Thermo>
|
return canteraTransport<Thermo>
|
||||||
(
|
(
|
||||||
t,
|
t,
|
||||||
molr1*st1.As_ - molr2*st2.As_,
|
// molr1*st1.X_ - molr2*st2.X_
|
||||||
molr1*st1.Ts_ - molr2*st2.Ts_
|
st1.X_ - st2.X_
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -286,8 +249,7 @@ inline Foam::canteraTransport<Thermo> Foam::operator*
|
||||||
return canteraTransport<Thermo>
|
return canteraTransport<Thermo>
|
||||||
(
|
(
|
||||||
s*static_cast<const Thermo&>(st),
|
s*static_cast<const Thermo&>(st),
|
||||||
st.As_,
|
s*st.X_
|
||||||
st.Ts_
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue