mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
This commit is contained in:
@ -106,10 +106,10 @@ diffusionMulticomponent<CombThermoType, ThermoType>::init()
|
||||
const List<specieCoeffs>& rhs = reactions_[k].rhs();
|
||||
|
||||
const label fuelIndex = species[fuelNames_[k]];
|
||||
const label oxydantIndex = species[oxydantNames_[k]];
|
||||
const label oxidantIndex = species[oxidantNames_[k]];
|
||||
|
||||
const scalar Wu = specieThermo_[fuelIndex].W();
|
||||
const scalar Wox = specieThermo_[oxydantIndex].W();
|
||||
const scalar Wox = specieThermo_[oxidantIndex].W();
|
||||
|
||||
forAll(lhs, i)
|
||||
{
|
||||
@ -130,7 +130,7 @@ diffusionMulticomponent<CombThermoType, ThermoType>::init()
|
||||
Info << "Fuel heat of combustion : " << qFuel_[k] << endl;
|
||||
|
||||
s_[k] =
|
||||
(Wox*mag(specieStoichCoeffs[oxydantIndex]))
|
||||
(Wox*mag(specieStoichCoeffs[oxidantIndex]))
|
||||
/ (Wu*mag(specieStoichCoeffs[fuelIndex]));
|
||||
|
||||
Info << "stoichiometric oxygen-fuel ratio : " << s_[k] << endl;
|
||||
@ -169,14 +169,14 @@ diffusionMulticomponent
|
||||
RijPtr_(reactions_.size()),
|
||||
Ci_(reactions_.size(), 1.0),
|
||||
fuelNames_(this->coeffs().lookup("fuels")),
|
||||
oxydantNames_(this->coeffs().lookup("oxydants")),
|
||||
oxidantNames_(this->coeffs().lookup("oxidants")),
|
||||
qFuel_(reactions_.size()),
|
||||
stoicRatio_(reactions_.size()),
|
||||
s_(reactions_.size()),
|
||||
YoxStream_(reactions_.size(), 0.23),
|
||||
YfStream_(reactions_.size(), 1.0),
|
||||
sigma_(reactions_.size(), 0.02),
|
||||
oxydantRes_(this->coeffs().lookup("oxydantRes")),
|
||||
oxidantRes_(this->coeffs().lookup("oxidantRes")),
|
||||
ftCorr_(reactions_.size(), 0.0),
|
||||
alpha_(1),
|
||||
laminarIgn_(false)
|
||||
@ -275,13 +275,13 @@ diffusionMulticomponent<CombThermoType, ThermoType>::correct()
|
||||
for (label k=0; k < nReactions; k++)
|
||||
{
|
||||
const label fuelIndex = species[fuelNames_[k]];
|
||||
const label oxydantIndex = species[oxydantNames_[k]];
|
||||
const label oxidantIndex = species[oxidantNames_[k]];
|
||||
|
||||
const volScalarField& Yfuel =
|
||||
this->thermo().composition().Y(fuelIndex);
|
||||
|
||||
const volScalarField& Yox =
|
||||
this->thermo().composition().Y(oxydantIndex);
|
||||
this->thermo().composition().Y(oxidantIndex);
|
||||
|
||||
const volScalarField ft
|
||||
(
|
||||
@ -303,7 +303,7 @@ diffusionMulticomponent<CombThermoType, ThermoType>::correct()
|
||||
const volScalarField OAvailScaled
|
||||
(
|
||||
"OAvailScaled",
|
||||
Yox/max(oxydantRes_[k], 1e-3)
|
||||
Yox/max(oxidantRes_[k], 1e-3)
|
||||
);
|
||||
|
||||
const volScalarField preExp
|
||||
@ -499,7 +499,7 @@ diffusionMulticomponent<CombThermoType, ThermoType>::read()
|
||||
{
|
||||
this->coeffs().readIfPresent("Ci", Ci_);
|
||||
this->coeffs().readIfPresent("sigma", sigma_);
|
||||
this->coeffs().readIfPresent("oxydantRes", oxydantRes_);
|
||||
this->coeffs().readIfPresent("oxidantRes", oxidantRes_);
|
||||
this->coeffs().readIfPresent("ftCorr", ftCorr_);
|
||||
this->coeffs().readIfPresent("alpha", alpha_);
|
||||
this->coeffs().readIfPresent("laminarIgn", laminarIgn_);
|
||||
|
||||
@ -35,14 +35,15 @@ Description
|
||||
|
||||
where:
|
||||
|
||||
D : is a model constant.
|
||||
muEff : is the effective turbulent diffusivity
|
||||
prob : is a Gaussian shaped distribution around the stoichiometric value
|
||||
of each reaction. The distribtion has the input parameter 'sigma'
|
||||
for standard deviation.
|
||||
D : is a model dynamic constant defined as C*f02 where:
|
||||
C is a model constant
|
||||
f02 = 1 + sqr(O2/oxidantRes), oxidantRes is an user input
|
||||
|
||||
The variable prob is multiplied by the factor: 1 + pow2(O2/oxydantRes),
|
||||
where oxydantRes is the residual oxydant specified for each reaction.
|
||||
muEff : is the effective turbulent viscosity
|
||||
prob : is a normalized Gaussian shaped distribution around the stoichiometric
|
||||
value of each reaction. The distribtion is controled by 'sigma'
|
||||
for standard deviation and ftCorr for correction of the stoichiometric
|
||||
value.
|
||||
|
||||
In the combustion properties dictionary:
|
||||
|
||||
@ -50,22 +51,15 @@ Description
|
||||
{
|
||||
Ci (1.0 1.0); // Default to 1
|
||||
fuels (CH4 CO);
|
||||
oxydants (O2 O2);
|
||||
oxidants (O2 O2);
|
||||
YoxStream (0.23 0.23); // Default to 0.23
|
||||
YfStream (1.0 1.0); // Default to 1.0
|
||||
sigma (0.02 0.02); // Default to 0.02
|
||||
oxydantRes (0.025 0.005);
|
||||
oxidantRes (0.025 0.005);
|
||||
ftCorr (0.0 0.0); // Default to 0.0
|
||||
laminarIgn false; // Default false
|
||||
}
|
||||
|
||||
ftCorr is used to shift the location of the flame and corrects the
|
||||
stochimetric mixture value when the mesh resolution is not enough
|
||||
to resolve the combustion zone.
|
||||
|
||||
NOTE: Optionally the switch 'laminarIgn' can be used to ignite the mixture
|
||||
using laminar combustion.
|
||||
|
||||
|
||||
SourceFiles
|
||||
diffusionMulticomponent.C
|
||||
@ -112,8 +106,8 @@ class diffusionMulticomponent
|
||||
//- List of fuels for each reaction
|
||||
wordList fuelNames_;
|
||||
|
||||
//- List of oxydants for each reaction
|
||||
wordList oxydantNames_;
|
||||
//- List of oxidants for each reaction
|
||||
wordList oxidantNames_;
|
||||
|
||||
//- Heat of combustion [J/Kg]
|
||||
scalarList qFuel_;
|
||||
@ -134,7 +128,7 @@ class diffusionMulticomponent
|
||||
scalarList sigma_;
|
||||
|
||||
//- Residual oxydaser
|
||||
scalarList oxydantRes_;
|
||||
scalarList oxidantRes_;
|
||||
|
||||
//- ft stochiometric correction
|
||||
scalarList ftCorr_;
|
||||
|
||||
@ -34,7 +34,9 @@ boundaryField
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
type inletOutlet;
|
||||
inletValue uniform 100;
|
||||
value uniform 100;
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
|
||||
@ -34,7 +34,9 @@ boundaryField
|
||||
}
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
type inletOutlet;
|
||||
inletValue uniform 1;
|
||||
value uniform 1;
|
||||
}
|
||||
frontAndBack
|
||||
{
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: 2.2.1 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object RASProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
RASModel kEpsilon;
|
||||
|
||||
turbulence on;
|
||||
|
||||
printCoeffs on;
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -35,7 +35,7 @@ divSchemes
|
||||
div(phi,epsilon) Gauss limitedLinear 1;
|
||||
div(phi,R) Gauss limitedLinear 1;
|
||||
div(R) Gauss linear;
|
||||
div(phiXi,Xi) Gauss limitedLinear 1;
|
||||
div(phiXi,Xi) Gauss upwind;
|
||||
div(phiXi,Su) Gauss limitedLinear 1;
|
||||
div(phiSt,b) Gauss limitedLinear01 1;
|
||||
div(phi,ft_b_ha_hau) Gauss multivariateSelection
|
||||
|
||||
@ -35,11 +35,11 @@ diffusionMulticomponentCoeffs
|
||||
{
|
||||
Ci (1.0 1.5);
|
||||
fuels (CH4 CO);
|
||||
oxydants (O2 O2);
|
||||
oxidants (O2 O2);
|
||||
YoxStream (0.23 0.23);
|
||||
YfStream (1.0 1.0);
|
||||
sigma (0.02 0.02);
|
||||
oxydantRes (0.015 0.005);
|
||||
oxidantRes (0.015 0.005);
|
||||
ftCorr (0 0);
|
||||
laminarIgn false;
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ divSchemes
|
||||
div(rhoPhi,U) Gauss vanLeerV;
|
||||
div(phi,thermo:rho.water) Gauss linear;
|
||||
div(phi,thermo:rho.air) Gauss linear;
|
||||
div(rhoPhi,T) Gauss vanLeer;
|
||||
div(rhoPhi,T) Gauss linear;
|
||||
div(rhoPhi,K) Gauss linear;
|
||||
div((phi+meshPhi),p) Gauss linear;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user