turbulent diffusivity model

This commit is contained in:
ignis 2020-03-12 10:08:42 +09:00
parent 5eabd42add
commit 5e1fafa9c7
2 changed files with 37 additions and 18 deletions

View file

@ -57,10 +57,20 @@ public:
virtual void getMixDiffCoeffs(double* const d) { virtual void getMixDiffCoeffs(double* const d) {
GasTransport::getMixDiffCoeffs(d); GasTransport::getMixDiffCoeffs(d);
double Dm = 0.0; doublereal t = m_thermo->temperature();
for (size_t k = 0; k < m_nsp; k++) { doublereal slope = (-(m_turbmodifier-1.0)/m_profwidth);
Dm += d[k] * m_weight[k]; doublereal trans = slope*(t-m_rdlayerstart) + 1.0;
double Dm = thermalConductivity() / (m_thermo->density() * m_thermo->cp_mass());
if (t < m_rdlayerstart - m_profwidth) {
Dm *= m_turbmodifier;
} else if (t > m_rdlayerstart) {
Dm *= 1.0;
} else {
Dm *= trans;
} }
for (size_t k = 0; k < m_nsp; k++) { for (size_t k = 0; k < m_nsp; k++) {
d[k] = Dm; d[k] = Dm;
} }
@ -87,10 +97,20 @@ public:
virtual void getMixDiffCoeffsMass(double* const d){ virtual void getMixDiffCoeffsMass(double* const d){
GasTransport::getMixDiffCoeffsMass(d); GasTransport::getMixDiffCoeffsMass(d);
double Dm = 0.0; doublereal t = m_thermo->temperature();
for (size_t k = 0; k < m_nsp; k++) { doublereal slope = (-(m_turbmodifier-1.0)/m_profwidth);
Dm += d[k] * m_weight[k]; doublereal trans = slope*(t-m_rdlayerstart) + 1.0;
double Dm = thermalConductivity() / (m_thermo->density() * m_thermo->cp_mass());
if (t < m_rdlayerstart - m_profwidth) {
Dm *= m_turbmodifier;
} else if (t > m_rdlayerstart) {
Dm *= 1.0;
} else {
Dm *= trans;
} }
for (size_t k = 0; k < m_nsp; k++) { for (size_t k = 0; k < m_nsp; k++) {
d[k] = Dm; d[k] = Dm;
} }
@ -99,7 +119,9 @@ public:
protected: protected:
//! Internal storage for weights to calculate mean diffusivity //! Internal storage for weights to calculate mean diffusivity
vector_fp m_weight; doublereal m_turbmodifier;
doublereal m_profwidth;
doublereal m_rdlayerstart;
}; };
} }

View file

@ -15,7 +15,9 @@ namespace Cantera
{ {
TurbulentTransport::TurbulentTransport() : TurbulentTransport::TurbulentTransport() :
MixTransport(), MixTransport(),
m_weight(m_nsp) m_turbmodifier(1.0),
m_profwidth(1e-5),
m_rdlayerstart(300.)
{ {
} }
@ -23,18 +25,13 @@ void TurbulentTransport::init(ThermoPhase* thermo, int mode, int log_level)
{ {
MixTransport::init(thermo, mode, log_level); MixTransport::init(thermo, mode, log_level);
m_weight.resize(m_nsp);
m_weight.assign(m_nsp, 0.0);
m_weight[0] = 1.0;
ifstream myfile; ifstream myfile;
myfile.open ("wmean-weights.txt"); myfile.open ("turbulent-coefs.txt");
for (size_t k = 0; k < m_nsp; k++) {
myfile >> m_weight[k]; myfile >> m_turbmodifier;
myfile >> m_profwidth;
myfile >> m_rdlayerstart;
cout << m_thermo->speciesName(k) << m_weight[k] << endl;
}
myfile.close(); myfile.close();
// m_reftemp = thermo->temperature(); // m_reftemp = thermo->temperature();