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) {
GasTransport::getMixDiffCoeffs(d);
double Dm = 0.0;
for (size_t k = 0; k < m_nsp; k++) {
Dm += d[k] * m_weight[k];
doublereal t = m_thermo->temperature();
doublereal slope = (-(m_turbmodifier-1.0)/m_profwidth);
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++) {
d[k] = Dm;
}
@ -87,10 +97,20 @@ public:
virtual void getMixDiffCoeffsMass(double* const d){
GasTransport::getMixDiffCoeffsMass(d);
double Dm = 0.0;
for (size_t k = 0; k < m_nsp; k++) {
Dm += d[k] * m_weight[k];
doublereal t = m_thermo->temperature();
doublereal slope = (-(m_turbmodifier-1.0)/m_profwidth);
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++) {
d[k] = Dm;
}
@ -99,7 +119,9 @@ public:
protected:
//! 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() :
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);
m_weight.resize(m_nsp);
m_weight.assign(m_nsp, 0.0);
m_weight[0] = 1.0;
ifstream myfile;
myfile.open ("wmean-weights.txt");
for (size_t k = 0; k < m_nsp; k++) {
myfile >> m_weight[k];
myfile.open ("turbulent-coefs.txt");
myfile >> m_turbmodifier;
myfile >> m_profwidth;
myfile >> m_rdlayerstart;
cout << m_thermo->speciesName(k) << m_weight[k] << endl;
}
myfile.close();
// m_reftemp = thermo->temperature();