Compare commits

..

8 commits

325 changed files with 418 additions and 1590026 deletions

View file

@ -1,9 +1,23 @@
before_script:
- "[[ -d ../ThirdParty-4.x ]] || git clone https://github.com/OpenFOAM/ThirdParty-4.x.git ../ThirdParty-4.x"
- source etc/bashrc
- rm -rf platforms
- wclean all
allmake:
image: park0d/of4builder
tags:
- openfoam4
before_script:
- "[[ -d ../ThirdParty-4.x ]] || git clone https://github.com/OpenFOAM/ThirdParty-4.x.git ../ThirdParty-4.x"
- source etc/bashrc
- rm -rf platforms
- wclean all
script:
- ./Allwmake -j
artifacts:
paths:
- ./
cantera:
image: park0d/of4builder
tags:
- openfoam4
script:
- whereis libcantera

View file

@ -1,3 +0,0 @@
postSootFoam.C
EXE = $(FOAM_APPBIN)/postSootFoam

View file

@ -1,55 +0,0 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/properties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude
EXE_LIBS = \
-lchemistryModel \
-lcombustionModels \
-lradiationModels \
-lradiationSootModels \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
-lfluidThermophysicalModels \
-lspecie \
-lreactionThermophysicalModels \
-lfiniteVolume \
-lmeshTools \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
-lliquidProperties \
-lliquidMixtureProperties \
-lsolidProperties \
-lsolidMixtureProperties \
-lthermophysicalFunctions \
-lSLGThermo \
-lODE \
-lregionModels \
-lsurfaceFilmModels \
-lfvOptions

View file

@ -1,9 +0,0 @@
Info<< "\nConstructing reacting cloud" << endl;
basicReactingMultiphaseCloud parcels
(
"reactingCloud1",
rho,
U,
g,
slgThermo
);

View file

@ -1 +0,0 @@
const volScalarField& psi = thermo.psi();

View file

@ -1,142 +0,0 @@
Info<< "\nCreating thermophysical model for Fluid mesh\n" << endl;
#include "readGravitationalAcceleration.H"
autoPtr<combustionModels::rhoCombustionModel> combustion
(
combustionModels::rhoCombustionModel::New(mesh)
);
rhoReactionThermo& thermo = combustion->thermo();
thermo.validate(args.executable(), "ha");
SLGThermo slgThermo(mesh, thermo);
basicSpecieMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
word inertSpecie(thermo.lookup("inertSpecie"));
volScalarField rho
(
IOobject
(
"rho",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
thermo.rho()
);
Info<< "Reading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
volScalarField& p = thermo.p();
#include "compressibleCreatePhi.H"
dimensionedScalar rhoMax
(
dimensionedScalar::lookupOrDefault
(
"rhoMax",
simple.dict(),
dimDensity,
GREAT
)
);
dimensionedScalar rhoMin
(
dimensionedScalar::lookupOrDefault
(
"rhoMin",
simple.dict(),
dimDensity,
0
)
);
Info << "Creating turbulence model.\n" << nl;
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::turbulenceModel::New
(
rho,
U,
phi,
thermo
)
);
// Set the turbulence into the reaction model
combustion->setTurbulence(turbulence());
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt
(
IOobject
(
"dpdt",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
);
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
forAll(Y, i)
{
fields.add(Y[i]);
}
fields.add(thermo.he());
/*
volScalarField Hha //absolute Enthalpy
(
IOobject
(
"Hha",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Hha", dimEnergy, 0.0)
);
volScalarField Hla //absolute Enthalpy
(
IOobject
(
"Hla",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Hla", dimEnergy, 0.0)
);
*/
#include "createRadiationModel.H"
#include "createMRF.H"
#include "createClouds.H"

View file

@ -1,78 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
simpleReactingParcelFoam
Description
Steady state solver for compressible, turbulent flow with reacting,
multiphase particle clouds and optional sources/constraints.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "turbulentFluidThermoModel.H"
#include "basicReactingMultiphaseCloud.H"
#include "rhoCombustionModel.H"
#include "radiationModel.H"
#include "fvOptions.H"
#include "SLGThermo.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createFields.H"
#include "createFieldRefs.H"
turbulence->validate();
Info<< "\nStarting time loop\n" << endl;
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
radiation->correct();
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View file

@ -64,7 +64,6 @@ wmake $targetType randomProcesses
transportModels/Allwmake $targetType $*
thermophysicalModels/Allwmake $targetType $*
TurbulenceModels/Allwmake $targetType $*
wmake $targetType thermophysicalModels/radiationSootModel
wmake $targetType combustionModels
regionModels/Allwmake $targetType $*
lagrangian/Allwmake $targetType $*

View file

@ -111,23 +111,6 @@ namespace Foam
rhoChemistryModel,
icoPoly8EThermoPhysics
);
// Chemistry moldels based on absoluteEnthalpy
makeChemistryModel
(
chemistryModel,
rhoChemistryModel,
gasHaThermoPhysics
);
// Chemistry moldels based on absoluteInternalEnergy
makeChemistryModel
(
chemistryModel,
rhoChemistryModel,
gasEaThermoPhysics
);
}
// ************************************************************************* //

View file

@ -88,12 +88,6 @@ namespace Foam
incompressibleGasEThermoPhysics
);
makeChemistrySolverTypes(rhoChemistryModel, icoPoly8EThermoPhysics);
// Chemistry solvers based on absoluteEnthalpy
makeChemistrySolverTypes(rhoChemistryModel, gasHaThermoPhysics);
// Chemistry solvers based on absoluteInternalEnergy
makeChemistrySolverTypes(rhoChemistryModel, gasEaThermoPhysics);
}

View file

@ -9,8 +9,6 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude

View file

@ -28,7 +28,6 @@ License
#include "fvmSup.H"
#include "absorptionEmissionModel.H"
#include "scatterModel.H"
#include "sootModel.H"
#include "constants.H"
#include "addToRunTimeSelectionTable.H"
@ -89,19 +88,6 @@ Foam::radiation::P1::P1(const volScalarField& T)
mesh_,
dimensionedScalar("a", dimless/dimLength, 0.0)
),
aSoot_
(
IOobject
(
"aSoot",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("aSoot", dimless/dimLength, 0.0)
),
e_
(
IOobject
@ -172,19 +158,6 @@ Foam::radiation::P1::P1(const dictionary& dict, const volScalarField& T)
mesh_,
dimensionedScalar("a", dimless/dimLength, 0.0)
),
aSoot_
(
IOobject
(
"aSoot",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("aSoot", dimless/dimLength, 0.0)
),
e_
(
IOobject
@ -239,26 +212,9 @@ bool Foam::radiation::P1::read()
void Foam::radiation::P1::calculate()
{
a_ = absorptionEmission_->a() + soot_->a();
aSoot_ = soot_->a();
e_ = absorptionEmission_->e() + soot_->e();
a_ = absorptionEmission_->a();
e_ = absorptionEmission_->e();
E_ = absorptionEmission_->E();
scalar sootradiationChecker = 0.0;
forAll(aSoot_, celli)
{
if (aSoot_[celli] != 0.0)
{
sootradiationChecker = 1.0;
}
}
if (sootradiationChecker == 0.0)
{
Info<<"soot radiation effects are unsuccessfully considered!"<<endl;
}
const volScalarField sigmaEff(scatter_->sigmaEff());
const dimensionedScalar a0 ("a0", a_.dimensions(), ROOTVSMALL);
@ -316,7 +272,7 @@ Foam::tmp<Foam::volScalarField> Foam::radiation::P1::Rp() const
IOobject::NO_WRITE,
false
),
4.0*(absorptionEmission_->eCont()+soot_->e())*physicoChemical::sigma
4.0*absorptionEmission_->eCont()*physicoChemical::sigma
)
);
}
@ -330,7 +286,7 @@ Foam::radiation::P1::Ru() const
const DimensionedField<scalar, volMesh> E =
absorptionEmission_->ECont()()();
const DimensionedField<scalar, volMesh> a =
absorptionEmission_->aCont()()()+soot_->a()()();
absorptionEmission_->aCont()()();
return a*G - E;
}

View file

@ -70,8 +70,6 @@ class P1
//- Absorption coefficient
volScalarField a_;
volScalarField aSoot_;
//- Emission coefficient
volScalarField e_;

View file

@ -167,46 +167,6 @@ void Foam::radiation::fvDOM::initialise()
// Construct absorption field for each wavelength
forAll(agasLambda_, lambdaI)
{
agasLambda_.set
(
lambdaI,
new volScalarField
(
IOobject
(
"agasLambda_" + Foam::name(lambdaI) ,
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
agas_
)
);
}
forAll(aSootLambda_, lambdaI)
{
aSootLambda_.set
(
lambdaI,
new volScalarField
(
IOobject
(
"aSootLambda_" + Foam::name(lambdaI) ,
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
aSoot_
)
);
}
forAll(aLambda_, lambdaI)
{
aLambda_.set
@ -227,7 +187,6 @@ void Foam::radiation::fvDOM::initialise()
);
}
Info<< "fvDOM : Allocated " << IRay_.size()
<< " rays with average orientation:" << nl;
@ -327,32 +286,6 @@ Foam::radiation::fvDOM::fvDOM(const volScalarField& T)
mesh_,
dimensionedScalar("Qin", dimMass/pow3(dimTime), 0.0)
),
agas_
(
IOobject
(
"agas",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("agas", dimless/dimLength, 0.0)
),
aSoot_
(
IOobject
(
"aSoot",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("aSoot", dimless/dimLength, 0.0)
),
a_
(
IOobject
@ -370,8 +303,6 @@ Foam::radiation::fvDOM::fvDOM(const volScalarField& T)
nPhi_(readLabel(coeffs_.lookup("nPhi"))),
nRay_(0),
nLambda_(absorptionEmission_->nBands()),
agasLambda_(nLambda_),
aSootLambda_(nLambda_),
aLambda_(nLambda_),
blackBody_(nLambda_, T),
IRay_(0),
@ -444,32 +375,6 @@ Foam::radiation::fvDOM::fvDOM
mesh_,
dimensionedScalar("Qin", dimMass/pow3(dimTime), 0.0)
),
agas_
(
IOobject
(
"agas",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("agas", dimless/dimLength, 0.0)
),
aSoot_
(
IOobject
(
"aSoot",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("aSoot", dimless/dimLength, 0.0)
),
a_
(
IOobject
@ -487,8 +392,6 @@ Foam::radiation::fvDOM::fvDOM
nPhi_(readLabel(coeffs_.lookup("nPhi"))),
nRay_(0),
nLambda_(absorptionEmission_->nBands()),
agasLambda_(nLambda_),
aSootLambda_(nLambda_),
aLambda_(nLambda_),
blackBody_(nLambda_, T),
IRay_(0),
@ -529,17 +432,7 @@ bool Foam::radiation::fvDOM::read()
void Foam::radiation::fvDOM::calculate()
{
absorptionEmission_->correct(agas_, agasLambda_);
soot_->correct(aSoot_, aSootLambda_);
// aLambda_ = agasLambda_ + aSootLambda_;
forAll(aLambda_, celli)
{
a_[celli] = agas_[celli] + aSoot_[celli];
aLambda_[celli] = agasLambda_[celli] + aSootLambda_[celli];
}
absorptionEmission_->correct(a_, aLambda_);
updateBlackBodyEmission();
@ -590,7 +483,7 @@ Foam::tmp<Foam::volScalarField> Foam::radiation::fvDOM::Rp() const
false
),
// Only include continuous phase emission
4*(absorptionEmission_->aCont() + soot_->a())*physicoChemical::sigma
4*absorptionEmission_->aCont()*physicoChemical::sigma
)
);
}
@ -608,7 +501,7 @@ Foam::radiation::fvDOM::Ru() const
// Only include continuous phase absorption
const DimensionedField<scalar, volMesh> a =
absorptionEmission_->aCont()()() + soot_->a()()();
absorptionEmission_->aCont()()();
return a*G - E;
}

View file

@ -101,10 +101,6 @@ class fvDOM
volScalarField Qin_;
//- Total absorption coefficient [1/m]
volScalarField agas_;
volScalarField aSoot_;
volScalarField a_;
//- Number of solid angles in theta
@ -120,10 +116,6 @@ class fvDOM
label nLambda_;
//- Wavelength total absorption coefficient [1/m]
PtrList<volScalarField> agasLambda_;
PtrList<volScalarField> aSootLambda_;
PtrList<volScalarField> aLambda_;
//- Black body

View file

@ -37,7 +37,6 @@ SourceFiles
#include "absorptionEmissionModel.H"
#include "blackBodyEmission.H"
#include "sootModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -1,487 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "MossBrookesSoot.H"
#include "addToRunTimeSelectionTable.H"
#include "fvm.H"
#include "basicSpecieMixture.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
defineTypeNameAndDebug(MossBrookesSoot, 0);
addToRunTimeSelectionTable
(
sootModel,
MossBrookesSoot,
dictionary
);
}
}
const Foam::basicSpecieMixture&
Foam::radiation::MossBrookesSoot::checkThermo
(
const fluidThermo& thermo
)
{
if (isA<basicSpecieMixture>(thermo))
{
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
else
{
FatalErrorInFunction
<< "Inconsistent thermo package for " << thermo.type()
<< "Please select a thermo package based on "
<< "basicSpecieMixture" << exit(FatalError);
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::radiation::MossBrookesSoot::MossBrookesSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
)
:
sootModel(dict, mesh, modelType),
soot_
(
IOobject
(
"soot",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
sootVF_
(
IOobject
(
"sootVF",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
NucConc_
(
IOobject
(
"NucConc",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
NumDen_
(
IOobject
(
"NumDen",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
coeffsDict_(dict.subOrEmptyDict(modelType + "Coeffs")),
thermo_(mesh.lookupObject<fluidThermo>(basicThermo::dictName)),
mixture_(checkThermo(thermo_)),
turbulence_(mesh.lookupObject<compressibleTurbulenceModel>(turbulenceModel::propertiesName)),
Snet_
(
IOobject
(
"Snet",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Snet", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Snuc_
(
IOobject
(
"Snuc",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Snuc", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Smassgrow_
(
IOobject
(
"Smassgrow",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Smassgrow", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Soxid_
(
IOobject
(
"Soxid",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Soxid", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
NSnuc_
(
IOobject
(
"NSnuc",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("NSnuc", dimless/(pow3(dimLength)*dimTime), 0.0)
),
NSagg_
(
IOobject
(
"NSagg",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("NSagg", dimless/(pow3(dimLength)*dimTime), 0.0)
),
NSnet_
(
IOobject
(
"NSnet",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("NSnet", dimless/(pow3(dimLength)*dimTime), 0.0)
),
aggParam_
(
IOobject
(
"ParameterAgg",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("ParameterAgg", dimless, 0.0)
),
Sf_
(
IOobject
(
"Sf",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Sf", dimless, 0.0)
),
sootMeanDiameter_
(
IOobject
(
"SootMeanDiameter",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("SootMeanDiameter", dimLength, 0.0)
),
PrtSoot(readScalar(coeffsDict_.lookup("TurbulentPrandtlNumberSoot"))),
rhoSoot(readScalar(coeffsDict_.lookup("SootDensity"))),
Calpha(readScalar(coeffsDict_.lookup("Calpha"))),
Mp(readScalar(coeffsDict_.lookup("Mp"))),
Cgamma(readScalar(coeffsDict_.lookup("Cgamma"))),
Coxid(readScalar(coeffsDict_.lookup("Coxid"))),
Cw(readScalar(coeffsDict_.lookup("Cw"))),
etaColl(readScalar(coeffsDict_.lookup("etaColl"))),
Talpha(readScalar(coeffsDict_.lookup("Talpha"))),
Tgamma(readScalar(coeffsDict_.lookup("Tgamma"))),
Navog(readScalar(coeffsDict_.lookup("AvogadroNumber"))),
Cbeta(readScalar(coeffsDict_.lookup("Cbeta"))),
Boltzmann(readScalar(coeffsDict_.lookup("BoltzmannConst"))),
radiationActive_(readBool(coeffsDict_.lookup("Radiationeffect"))),
cliqueNuc(readScalar(coeffsDict_.lookup("NucExpCorrectConstant"))),
cliqueMassGrow(readScalar(coeffsDict_.lookup("MassGrowCorrectConstant")))
{
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::radiation::MossBrookesSoot::~MossBrookesSoot()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::radiation::MossBrookesSoot::a(const label bandI) const
{
const volScalarField T_ = thermo_.T();
tmp<volScalarField> tas
(
new volScalarField
(
IOobject
(
"aSoot" + name(bandI),
mesh().time().timeName(),
mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh(),
dimensionedScalar("as", dimless/dimLength, 0.0),
extrapolatedCalculatedFvPatchVectorField::typeName
)
);
scalarField& as = tas.ref().primitiveFieldRef();
forAll(as, celli)
{
if (radiationActive_ == true)
{
as[celli] = (1232.4)*(1800.0)*soot_[celli]*(1.0+(4.8e-4)*(T_[celli]-2000.0));
}
else
{
as[celli] = 0.0;
}
}
tas.ref().correctBoundaryConditions();
return tas;
}
Foam::tmp<Foam::volScalarField>
Foam::radiation::MossBrookesSoot::e(const label bandI) const
{
return a(bandI);
}
void Foam::radiation::MossBrookesSoot::correct()
{
calcSource();
const volScalarField rho_ = thermo_.rho();
const volScalarField &nut_ = turbulence().nut();
const surfaceScalarField phi_ (turbulence().phi());
fvScalarMatrix SootEqn
(
fvm::div(phi_, soot_)
- fvm::laplacian((rho_*nut_/PrtSoot), soot_)
==
Snet_
);
SootEqn.relax();
SootEqn.solve();
fvScalarMatrix NucConcEqn
(
fvm::div(phi_, NucConc_)
- fvm::laplacian((rho_*nut_/PrtSoot), NucConc_)
==
NSnet_
);
NucConcEqn.relax();
NucConcEqn.solve();
scalar minusindicator1 = 0.0;
scalar minusindicator2 = 0.0;
forAll(rho_, celli)
{
if (soot_[celli] < 0.0) {
soot_[celli] = 0.0;
minusindicator1 = 1.0;
}
if (NucConc_[celli] < 0.0) {
NucConc_[celli] =0.0;
minusindicator2 = 1.0;
}
NumDen_[celli] = rho_[celli]*(NucConc_[celli]*1e+15);
sootVF_[celli] = soot_[celli]*rho_[celli]/rhoSoot;
}
if (minusindicator1 == 1.0 and minusindicator2 == 0.0) {
Info<< "Minus soot value! corrected to zero" <<endl;
}
else if (minusindicator1 == 0.0 and minusindicator2 ==1.0) {
Info<< "Minus NucConc value! corrected to zero" <<endl;
}
else if (minusindicator1 == 1.0 and minusindicator2 == 1.0) {
Info<< "Minus soot and NucConc value! corrected to zero" << endl;
}
}
void Foam::radiation::MossBrookesSoot::calcSource()
{
const volScalarField rho_ = thermo_.rho();
const volScalarField T_ = thermo_.T();
const volScalarField p_ = thermo_.p();
const scalar precI = mixture_.species()[coeffsDict_.lookup("Precursor")];
const scalar growI = mixture_.species()[coeffsDict_.lookup("SurfaceGrowSpecie")];
const scalar oxidI = mixture_.species()[coeffsDict_.lookup("SootOxidizerSpecie")];
const volScalarField &Yprec_ = mixture_.Y(precI);
const volScalarField &Ygrow_ = mixture_.Y(growI);
const volScalarField &Yoxid_ = mixture_.Y(oxidI);
const volScalarField XPrec_(mixture_.W()*Yprec_/mixture_.W(precI));
const volScalarField XSgs_ (mixture_.W()*Ygrow_/mixture_.W(growI));
const volScalarField XOxid_(mixture_.W()*Yoxid_/mixture_.W(oxidI));
forAll(rho_, celli)
{
const scalar XPreci = XPrec_[celli];
const scalar XSgsi = XSgs_[celli];
const scalar XOxidi = XOxid_[celli];
const scalar Ti = T_[celli];
const scalar pi = p_[celli];
const scalar rhoi = rho_[celli];
const scalar sooti = soot_[celli];
const scalar NumDeni = NumDen_[celli];
const scalar MolarConcPreci = (XPreci*pi)/(8314.5*Ti);
const scalar MolarConcSgsi = (XSgsi*pi)/(8314.5*Ti);
const scalar MolarConcOxidi = (XOxidi*pi)/(8314.5*Ti);
scalar SootMeanDiameteri = 0.0;
if (NumDeni == 0.0) {
sootMeanDiameter_[celli] = 0.0;
Sf_[celli] = 0.0;
}
else {
const scalar parameter = (6.0/3.1416)*(rhoi/rhoSoot)*(sooti/NumDeni);
sootMeanDiameter_[celli] = pow(parameter,0.33333);
SootMeanDiameteri = sootMeanDiameter_[celli];
Sf_[celli] = (3.1416)*pow(SootMeanDiameteri,2.0)*NumDeni;
}
Snuc_[celli] = Mp*Calpha*exp(-cliqueNuc*Talpha/Ti)*MolarConcPreci;
Smassgrow_[celli] = Cgamma*MolarConcSgsi*exp(-cliqueMassGrow*Tgamma/Ti)*Sf_[celli];
Soxid_[celli] = Coxid*Cw*etaColl*MolarConcOxidi*pow(Ti,0.5)*Sf_[celli];
Snet_[celli] = Snuc_[celli] + Smassgrow_[celli] - Soxid_[celli];
NSnuc_[celli] = (Calpha*Navog*MolarConcPreci*exp(-cliqueNuc*Talpha/Ti))*(1e-15);
aggParam_[celli] = 24.0*Boltzmann*Ti/rhoSoot;
NSagg_[celli] = (Cbeta*pow((aggParam_[celli]),0.5)*pow(SootMeanDiameteri,0.5)*pow(NumDeni,2.0))*(1e-15);
NSnet_[celli] = NSnuc_[celli] - NSagg_[celli];
}
}
const Foam::compressibleTurbulenceModel&
Foam::radiation::MossBrookesSoot::turbulence() const
{
return turbulence_;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -1,283 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::radiation::MossBrookesSoot
Description
This soot model solves two transport equation for soot mass fraction
and soot normalized nuclei concentration.
The detail of the model strictly follows Moss & Brookes model in fluent.
Parameter settings are available in constant/radiationProperties.
Setting example:
sootModel MossBrookesSoot<rhoChemistryModel, gasHaThermoPhysics>;
MossBrookesSootCoeffs
{
SootDensity 1800.0;
Calpha 54.0;
Mp 144;
Cgamma 11700;
Coxid 1.0;
Cw 105.8125;
etaColl 0.04;
Talpha 21100.0;
Tgamma 12100.0;
AvogadroNumber 6.022e+26;
Cbeta 1.0;
BoltzmannConst 1.38e-23;
Radiationeffect true;
Precursor C2H2;
SurfaceGrowSpecie C2H2;
SootOxidizerSpecie OH;
}
SourceFiles
MossBrookesSoot.C
\*---------------------------------------------------------------------------*/
#ifndef MossBrookesSoot_H
#define MossBrookesSoot_H
#include "sootModel.H"
#include "HashTable.H"
#include "fluidThermo.H"
#include "basicSpecieMixture.H"
#include "turbulentFluidThermoModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
/*---------------------------------------------------------------------------*\
Class MossBrookesSoot Declaration
\*---------------------------------------------------------------------------*/
class MossBrookesSoot
:
public sootModel
{
// Static functions
//- Check mixture in thermo
static const basicSpecieMixture& checkThermo
(
const fluidThermo&
);
// Private data
//- Soot mass fraction
volScalarField soot_;
//- Soot volume fraction
volScalarField sootVF_;
//- Normalized nuclei concentration of soot
volScalarField NucConc_;
//- Number density of soot
volScalarField NumDen_;
//- Soot model dictionary
dictionary coeffsDict_;
//- Thermo package
const fluidThermo& thermo_;
//- Composition
const basicSpecieMixture& mixture_;
//- Reference to the turbulence model
const compressibleTurbulenceModel &turbulence_;
//- Net rate of soot generation
volScalarField Snet_;
//- The rate of soot formation by nucleation
volScalarField Snuc_;
//- The rate of soot formation by mass growth
volScalarField Smassgrow_;
//- The rate of soot formation by soot oxidation
volScalarField Soxid_;
//- The rate of soot number density formation by nucleation
volScalarField NSnuc_;
//- The rate of soot number density formation by agglomeration
volScalarField NSagg_;
//- Net rate of soot numbe density formation
volScalarField NSnet_;
//- Parameter for Agglomeration source term
volScalarField aggParam_;
//- Available surface area of soot oxidation per volume
volScalarField Sf_;
//- Soot particle mean diameter
volScalarField sootMeanDiameter_;
//- Soot turbulent Prandtl number
scalar PrtSoot;
//- Density of soot particle
scalar rhoSoot;
//- Model constant for soot inception rate
scalar Calpha;
//- Mass of an incipient soot particle
scalar Mp;
//- Surface growth rate scaling factor
scalar Cgamma;
//- Oxidation rate scaling parameter
scalar Coxid;
//- Oxidation model constant
scalar Cw;
//- Collisional efficiency parameter
scalar etaColl;
//- Activation temperature for soot inception
scalar Talpha;
//- Activation temperature for soot growth rate
scalar Tgamma;
//- Avogadro's number
scalar Navog;
//- Model constant for coagulation rate
scalar Cbeta;
//- Boltzmann constant
scalar Boltzmann;
//- Soot radiative effect on/off flag
bool radiationActive_;
//- Correction constant for Exponent in Nucleation
scalar cliqueNuc;
//- Correction constant for Exponent in Soot Mass Grow
scalar cliqueMassGrow;
//- Soot precursor specie name
const word precSpecie;
//- Soot surface growth specie name
const word sgsSpecie;
//- Soot oxidation specie name
const word oxSpecie;
protected:
// Protected data
// Protected Member Functions
public:
//- Runtime type information
TypeName("MossBrookesSoot");
// Constructors
//- Construct from components
MossBrookesSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
);
//- Destructor
virtual ~MossBrookesSoot();
// Edit
//- Main update/correction routine
virtual void correct();
//- Calculation of the source term routine
virtual void calcSource();
// Access
//- Return Ysoot
const volScalarField& soot() const
{
return soot_;
}
//- Return access to turbulence
const compressibleTurbulenceModel& turbulence() const;
// Soot absorption coefficient
//- Soot absorption coefficient (net)
virtual tmp<volScalarField> a(const label bandI = 0) const;
// Soot emission coefficient
//- Soot emission coefficient (net)
virtual tmp<volScalarField> e(const label bandI = 0) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
} // End namespace radiation
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View file

@ -1,374 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "khanGreeveSoot.H"
#include "addToRunTimeSelectionTable.H"
#include "fvm.H"
#include "basicSpecieMixture.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
defineTypeNameAndDebug(khanGreeveSoot, 0);
addToRunTimeSelectionTable
(
sootModel,
khanGreeveSoot,
dictionary
);
}
}
const Foam::basicSpecieMixture&
Foam::radiation::khanGreeveSoot::checkThermo
(
const fluidThermo& thermo
)
{
if (isA<basicSpecieMixture>(thermo))
{
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
else
{
FatalErrorInFunction
<< "Inconsistent thermo package for " << thermo.type()
<< "Please select a thermo package based on "
<< "basicSpecieMixture" << exit(FatalError);
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::radiation::khanGreeveSoot::khanGreeveSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
)
:
sootModel(dict, mesh, modelType),
soot_
(
IOobject
(
"soot",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
sootVF_
(
IOobject
(
"sootVF",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
coeffsDict_(dict.subOrEmptyDict(modelType + "Coeffs")),
thermo_(mesh.lookupObject<fluidThermo>(basicThermo::dictName)),
mixture_(checkThermo(thermo_)),
turbulence_(mesh.lookupObject<compressibleTurbulenceModel>(turbulenceModel::propertiesName)),
Snet_
(
IOobject
(
"Snet",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Snet", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Sform_
(
IOobject
(
"Sform",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Sform", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Scomb_
(
IOobject
(
"Scomb",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Scomb", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
S1_
(
IOobject
(
"S1",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("S1", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
S2_
(
IOobject
(
"S2",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("S2", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
PrtSoot(readScalar(coeffsDict_.lookup("TurbulentPrandtlNumberSoot"))),
rhoSoot(readScalar(coeffsDict_.lookup("SootDensity"))),
Cs_(readScalar(coeffsDict_.lookup("Cs"))),
r_(readScalar(coeffsDict_.lookup("r"))),
Ta_(readScalar(coeffsDict_.lookup("ActivationTemperature"))),
A_(readScalar(coeffsDict_.lookup("A"))),
nuFuel_(readScalar(coeffsDict_.lookup("nufuel"))),
nuSoot_(readScalar(coeffsDict_.lookup("nusoot"))),
eqv_
(
IOobject
(
"eqv",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("eqv", dimless, 0.0)
),
eqvMax(readScalar(coeffsDict_.lookup("EquivalenceRatioMax"))),
eqvMin(readScalar(coeffsDict_.lookup("EquivalenceRatioMin"))),
radiationActive_(readBool(coeffsDict_.lookup("Radiationeffect")))
{
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::radiation::khanGreeveSoot::~khanGreeveSoot()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::radiation::khanGreeveSoot::a(const label bandI) const
{
const volScalarField T_ = thermo_.T();
tmp<volScalarField> tas
(
new volScalarField
(
IOobject
(
"aSoot" + name(bandI),
mesh().time().timeName(),
mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh(),
dimensionedScalar("aSoot", dimless/dimLength, 0.0),
extrapolatedCalculatedFvPatchVectorField::typeName
)
);
scalarField& as = tas.ref().primitiveFieldRef();
if (radiationActive_)
{
forAll(as, celli)
{
as[celli] = (1232.4)*(1800.0)*soot_[celli]*(1.0+(4.8e-4)*(T_[celli]-2000.0));
}
}
tas.ref().correctBoundaryConditions();
return tas;
}
Foam::tmp<Foam::volScalarField>
Foam::radiation::khanGreeveSoot::e(const label bandI) const
{
return a(bandI);
}
void Foam::radiation::khanGreeveSoot::correct()
{
calcSource();
const volScalarField &rho_ = thermo_.rho();
const volScalarField &nut_ = turbulence().nut();
const surfaceScalarField phi_ (turbulence().phi());
fvScalarMatrix SootEqn
(
fvm::ddt(rho_, soot_)
+ fvm::div(phi_, soot_)
- fvm::laplacian((rho_*nut_/PrtSoot), soot_)
==
Snet_
);
SootEqn.relax();
SootEqn.solve();
forAll(rho_, celli)
{
if (soot_[celli] < 1e-30){
soot_[celli] = 0.0;
}
sootVF_[celli] = soot_[celli]*rho_[celli]/rhoSoot;
}
}
void Foam::radiation::khanGreeveSoot::calcSource()
{
const volScalarField rho_ = thermo_.rho();
const volScalarField T_ = thermo_.T();
const volScalarField p_ = thermo_.p();
const scalar oxI = mixture_.species()[coeffsDict_.lookup("Oxidizer")];
const scalar fuelI = mixture_.species()[coeffsDict_.lookup("Fuel")];
const volScalarField &Yox_ = mixture_.Y(oxI);
const volScalarField &Yfuel_ = mixture_.Y(fuelI);
const volScalarField Xfuel_(mixture_.W()*Yfuel_/mixture_.W(fuelI));
const volScalarField &epsilon_ = turbulence().epsilon();
const volScalarField &k_ = turbulence().k();
forAll(rho_, celli)
{
const scalar Yoxi = Yox_[celli];
const scalar Yfueli = Yfuel_[celli];
eqv_[celli] = (Yfueli/Yoxi)*nuFuel_;
if (eqv_[celli] > eqvMax){
eqv_[celli] = 0.0;
}
else if (eqv_[celli] < eqvMin){
eqv_[celli] = 0.0;
}
const scalar pi = p_[celli];
const scalar Xfueli = Xfuel_[celli];
const scalar Ti = T_[celli];
Sform_[celli] = Cs_*pi*Xfueli*pow(eqv_[celli],r_)*exp(-Ta_/Ti);
const scalar rhoi = rho_[celli];
const scalar sooti = soot_[celli];
const scalar epsiloni = epsilon_[celli];
const scalar ki = k_[celli];
S1_[celli] = A_*rhoi*sooti*epsiloni/ki;
if (sooti == 0.0 and Yfueli == 0.0 ){
S2_[celli] = 0.0;
}
else {
S2_[celli] = A_*rhoi*(Yoxi/nuSoot_)*(sooti*nuSoot_/(sooti*nuSoot_+(Yfueli)*nuFuel_))*epsiloni/ki;
}
Scomb_[celli] = min(S1_[celli], S2_[celli]);
Snet_[celli] = Sform_[celli] - Scomb_[celli];
}
}
const Foam::compressibleTurbulenceModel&
Foam::radiation::khanGreeveSoot::turbulence() const
{
return turbulence_;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -1,230 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::radiation::khanGreeveSoot
Description
This soot model solves transport equation for soot mass fraction.
The detail of the model can be describe in the fluent theory guide.
Parameter setup is available in constant/radiationProperties file.
Setup example:
sootModel khanGreeveSoot<rhoChemistryModel,gasHaThermoPhysics>;
khanGreeveSootCoeffs
{
SootDensity 1800.0;
Cs 1.5;
r 3;
ActivationTemperature 20000;
A 4;
nufuel 3.2;
nusoot 2.6667;
EquivalenceRatioMax 3.0;
EquivalenceRatioMin 1.67;
Radiationeffect true;
Fuel PHC3H7;
Oxidizer O2;
}
SourceFiles
khanGreeveSoot.C
\*---------------------------------------------------------------------------*/
#ifndef khanGreeveSoot_H
#define khanGreeveSoot_H
#include "sootModel.H"
#include "HashTable.H"
#include "fluidThermo.H"
#include "basicSpecieMixture.H"
#include "turbulentFluidThermoModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
/*---------------------------------------------------------------------------*\
Class khanGreeveSoot Declaration
\*---------------------------------------------------------------------------*/
class khanGreeveSoot
:
public sootModel
{
// Static functions
//- Check mixture in thermo
static const basicSpecieMixture& checkThermo
(
const fluidThermo&
);
// Private data
//- Soot mass fraction
volScalarField soot_;
//- Soot volume fraction
volScalarField sootVF_;
//- Soot model dictionary
dictionary coeffsDict_;
//- Thermo package
const fluidThermo& thermo_;
//- Composition
const basicSpecieMixture& mixture_;
//- Reference to the turbulence model
const compressibleTurbulenceModel &turbulence_;
//- Net rate of soot generation
volScalarField Snet_;
//- The rate of soot formation
volScalarField Sform_;
//- The rate of soot combustion
volScalarField Scomb_;
//- The 1st rate of soot combustion
volScalarField S1_;
//- The 2nd rate of soot combustion
volScalarField S2_;
//- Soot turbulent Prandtl number
scalar PrtSoot;
//- Soot density
scalar rhoSoot;
//- Soot formation constant
scalar Cs_;
//- Equivalence ratio exponent
scalar r_;
//- Activation temperature
scalar Ta_;
//- Magnussen model constant
scalar A_;
//- Mass stoichiometry for the fuel oxidation
scalar nuFuel_;
//- Mass stoichiometry for the soot oxidation
scalar nuSoot_;
//- Equivalence ratio for the fuel
volScalarField eqv_;
//- Maximum equivalence ratio
scalar eqvMax;
//- Minimum equivalence ratio
scalar eqvMin;
//- Soot radiative effect on/off flag
bool radiationActive_;
public:
//- Runtime type information
TypeName("khanGreeveSoot");
// Constructors
//- Construct from components
khanGreeveSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
);
//- Destructor
virtual ~khanGreeveSoot();
// Edit
//- Main update/correction routine
virtual void correct();
//- Calculation of the source term routine
virtual void calcSource();
// Access
//- Return Ysoot
const volScalarField& soot() const
{
return soot_;
}
//- Return access to turbulence
const compressibleTurbulenceModel& turbulence() const;
// Soot absorption coefficient
//- Soot absorption coefficient (net)
virtual tmp<volScalarField> a(const label bandI = 0) const;
// Soot emission coefficient
//- Soot emission coefficient (net)
virtual tmp<volScalarField> e(const label bandI = 0) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
} // End namespace radiation
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View file

@ -31,33 +31,6 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeSootTypesCombThermo(sootModelType, Comp, Thermo) \
typedef Foam::radiation::sootModelType \
<Foam::Comp, Foam::Thermo> \
sootModelType##Comp##Thermo; \
\
defineTemplateTypeNameAndDebugWithName \
( \
sootModelType##Comp##Thermo, \
#sootModelType"<"#Comp","#Thermo">", \
0 \
); \
\
namespace Foam \
{ \
namespace radiation \
{ \
typedef sootModelType<Comp, Thermo> sootModelType##Comp##Thermo; \
\
addToRunTimeSelectionTable \
( \
sootModel, \
sootModelType##Comp##Thermo, \
dictionary \
); \
} \
}
#define makeSootTypesThermo(sootModelType, Thermo) \
typedef Foam::radiation::sootModelType<Foam::Thermo> \
sootModelType##Thermo; \

View file

@ -58,58 +58,5 @@ Foam::radiation::sootModel::~sootModel()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::radiation::sootModel::a(const label bandI) const
{
return tmp<volScalarField>
(
new volScalarField
(
IOobject
(
"aSoot",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
mesh_,
dimensionedScalar("zero", dimless/dimLength, 0.0)
)
);
}
Foam::tmp<Foam::volScalarField>
Foam::radiation::sootModel::e(const label bandI) const
{
return tmp<volScalarField>
(
new volScalarField
(
IOobject
(
"eSoot",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
mesh_,
dimensionedScalar("zero", dimless/dimLength, 0.0)
)
);
}
void Foam::radiation::sootModel::correct
(
volScalarField& a,
PtrList<volScalarField>& aj
) const
{
a = this->a();
aj[0] = a;
}
// ************************************************************************* //

View file

@ -138,26 +138,6 @@ public:
//- Return const reference to soot
virtual const volScalarField& soot() const = 0;
// Soot absorption coefficient
//- Soot absorption coefficient (net)
virtual tmp<volScalarField> a(const label bandI = 0) const;
// Soot emission coefficient
//- Soot emission coefficient (net)
virtual tmp<volScalarField> e(const label bandI = 0) const;
// Correct absorption coefficients
virtual void correct
(
volScalarField& a,
PtrList<volScalarField>& aj
) const;
};

View file

@ -1,39 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
inline const Foam::compressibleTurbulenceModel&
Foam::radiation::sootModel::turbulence() const
{
return turbulence_;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// ************************************************************************* //

View file

@ -1,5 +0,0 @@
/* Soot model */
khanGreeveSoot/khanGreeveSoot.C
MossBrookesSoot/MossBrookesSoot.C
LIB = $(FOAM_LIBBIN)/libradiationSootModels

View file

@ -1,30 +0,0 @@
EXE_INC = \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-lradiationModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
-lsolidThermo \
-lSLGThermo \
-lsolidMixtureProperties \
-lliquidMixtureProperties \
-lsolidProperties \
-lliquidProperties \
-lfiniteVolume \
-lmeshTools

View file

@ -1,485 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "MossBrookesSoot.H"
#include "addToRunTimeSelectionTable.H"
#include "fvm.H"
#include "constants.H"
#include "basicSpecieMixture.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
defineTypeNameAndDebug(MossBrookesSoot, 0);
addToRunTimeSelectionTable
(
sootModel,
MossBrookesSoot,
dictionary
);
}
}
const Foam::basicSpecieMixture&
Foam::radiation::MossBrookesSoot::checkThermo
(
const fluidThermo& thermo
)
{
if (isA<basicSpecieMixture>(thermo))
{
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
else
{
FatalErrorInFunction
<< "Inconsistent thermo package for " << thermo.type()
<< "Please select a thermo package based on "
<< "basicSpecieMixture" << exit(FatalError);
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::radiation::MossBrookesSoot::MossBrookesSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
)
:
sootModel(dict, mesh, modelType),
soot_
(
IOobject
(
"soot",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
sootVF_
(
IOobject
(
"sootVF",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
NucConc_
(
IOobject
(
"NucConc",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
NumDen_
(
IOobject
(
"NumDen",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
coeffsDict_(dict.subOrEmptyDict(modelType + "Coeffs")),
thermo_(mesh.lookupObject<fluidThermo>(basicThermo::dictName)),
mixture_(checkThermo(thermo_)),
turbulence_(mesh.lookupObject<compressibleTurbulenceModel>(turbulenceModel::propertiesName)),
Snet_
(
IOobject
(
"Snet",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Snet", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Snuc_
(
IOobject
(
"Snuc",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Snuc", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Smassgrow_
(
IOobject
(
"Smassgrow",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Smassgrow", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Soxid_
(
IOobject
(
"Soxid",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("Soxid", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
NSnuc_
(
IOobject
(
"NSnuc",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("NSnuc", dimless/(pow3(dimLength)*dimTime), 0.0)
),
NSagg_
(
IOobject
(
"NSagg",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("NSagg", dimless/(pow3(dimLength)*dimTime), 0.0)
),
NSnet_
(
IOobject
(
"NSnet",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("NSnet", dimless/(pow3(dimLength)*dimTime), 0.0)
),
aggParam_
(
IOobject
(
"ParameterAgg",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("ParameterAgg", dimless, 0.0)
),
Sf_
(
IOobject
(
"Sf",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Sf", dimless, 0.0)
),
sootMeanDiameter_
(
IOobject
(
"SootMeanDiameter",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh_,
dimensionedScalar("SootMeanDiameter", dimLength, 0.0)
),
Nnorm("Nnorm", dimless, 1e15),
PrtSoot(readScalar(coeffsDict_.lookup("TurbulentPrandtlNumberSoot"))),
rhoSoot(readScalar(coeffsDict_.lookup("SootDensity"))),
Calpha(readScalar(coeffsDict_.lookup("Calpha"))),
Mp(readScalar(coeffsDict_.lookup("Mp"))),
Cgamma(readScalar(coeffsDict_.lookup("Cgamma"))),
Coxid(readScalar(coeffsDict_.lookup("Coxid"))),
Cw(readScalar(coeffsDict_.lookup("Cw"))),
etaColl(readScalar(coeffsDict_.lookup("etaColl"))),
Talpha(readScalar(coeffsDict_.lookup("Talpha"))),
Tgamma(readScalar(coeffsDict_.lookup("Tgamma"))),
Cbeta(readScalar(coeffsDict_.lookup("Cbeta"))),
radiationActive_(readBool(coeffsDict_.lookup("Radiationeffect"))),
cliqueNuc(readScalar(coeffsDict_.lookup("NucExpCorrectConstant"))),
cliqueMassGrow(readScalar(coeffsDict_.lookup("MassGrowCorrectConstant")))
{
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::radiation::MossBrookesSoot::~MossBrookesSoot()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::radiation::MossBrookesSoot::a(const label bandI) const
{
const volScalarField T_ = thermo_.T();
tmp<volScalarField> tas
(
new volScalarField
(
IOobject
(
"aSoot" + name(bandI),
mesh().time().timeName(),
mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh(),
dimensionedScalar("as", dimless/dimLength, 0.0),
extrapolatedCalculatedFvPatchVectorField::typeName
)
);
scalarField& as = tas.ref().primitiveFieldRef();
forAll(as, celli)
{
if (radiationActive_ == true)
{
as[celli] = (1232.4)*(1800.0)*soot_[celli]*(1.0+(4.8e-4)*(T_[celli]-2000.0));
}
else
{
as[celli] = 0.0;
}
}
tas.ref().correctBoundaryConditions();
return tas;
}
Foam::tmp<Foam::volScalarField>
Foam::radiation::MossBrookesSoot::e(const label bandI) const
{
return a(bandI);
}
void Foam::radiation::MossBrookesSoot::correct()
{
calcSource();
const volScalarField &rho_ = thermo_.rho();
const volVectorField &U_ = turbulence().U();
volScalarField Dsoot (turbulence().mut()/PrtSoot);
const surfaceScalarField phi_
(
IOobject
(
"phiSoot",
mesh().time().timeName(),
mesh()
),
linearInterpolate(rho_*U_) & mesh().Sf()
);
fvScalarMatrix SootEqn
(
fvm::div(phi_, soot_)
- fvm::laplacian(Dsoot, soot_)
==
Snet_
);
SootEqn.relax();
SootEqn.solve();
fvScalarMatrix NucConcEqn
(
fvm::div(phi_, NucConc_)
- fvm::laplacian(Dsoot, NucConc_)
==
NSnet_
);
NucConcEqn.relax();
NucConcEqn.solve();
soot_.max(0.0);
NucConc_.max(0.0);
NumDen_ = rho_*NucConc_*Nnorm;
sootVF_ = soot_*rho_/dimensionedScalar("rhoSoot", dimDensity, rhoSoot);
}
void Foam::radiation::MossBrookesSoot::calcSource()
{
const volScalarField &rho_ = thermo_.rho();
const volScalarField &T_ = thermo_.T();
const volScalarField &p_ = thermo_.p();
const scalar precI = mixture_.species()[coeffsDict_.lookup("Precursor")];
const scalar growI = mixture_.species()[coeffsDict_.lookup("SurfaceGrowSpecie")];
const scalar oxidI = mixture_.species()[coeffsDict_.lookup("SootOxidizerSpecie")];
const volScalarField &Yprec_ = mixture_.Y(precI);
const volScalarField &Ygrow_ = mixture_.Y(growI);
const volScalarField &Yoxid_ = mixture_.Y(oxidI);
const volScalarField XPrec_(mixture_.W()*Yprec_/mixture_.W(precI));
const volScalarField XSgs_ (mixture_.W()*Ygrow_/mixture_.W(growI));
const volScalarField XOxid_(mixture_.W()*Yoxid_/mixture_.W(oxidI));
const dimensionedScalar NA (Foam::constant::physicoChemical::NA);
const dimensionedScalar kB (Foam::constant::physicoChemical::k);
const dimensionedScalar R (Foam::constant::physicoChemical::R);
const scalar pi314 = Foam::constant::mathematical::pi;
forAll(rho_, celli)
{
const scalar XPreci = XPrec_[celli];
const scalar XSgsi = XSgs_[celli];
const scalar XOxidi = XOxid_[celli];
const scalar Ti = T_[celli];
const scalar pi = p_[celli];
const scalar rhoi = rho_[celli];
const scalar sooti = soot_[celli];
const scalar NumDeni = NumDen_[celli];
// concentrations in [kmol/m3]
const scalar MolarConcPreci = (XPreci*pi)/(1e3*R.value()*Ti);
const scalar MolarConcSgsi = (XSgsi *pi)/(1e3*R.value()*Ti);
const scalar MolarConcOxidi = (XOxidi*pi)/(1e3*R.value()*Ti);
if (NumDeni == 0.0)
{
sootMeanDiameter_[celli] = 0.0;
Sf_[celli] = 0.0;
}
else
{
const scalar parameter = (6.0/pi314)*(rhoi/rhoSoot)*(sooti/NumDeni);
sootMeanDiameter_[celli] = pow(parameter, 1./3.);
Sf_[celli] = pi314*pow(sootMeanDiameter_[celli],2.0)*NumDeni;
}
const scalar sootMeanDiameteri = sootMeanDiameter_[celli];
Snuc_[celli] = Mp*Calpha*exp(-cliqueNuc*Talpha/Ti)*MolarConcPreci;
Smassgrow_[celli] = Cgamma*MolarConcSgsi*exp(-cliqueMassGrow*Tgamma/Ti)*Sf_[celli];
Soxid_[celli] = Coxid*Cw*etaColl*MolarConcOxidi*sqrt(Ti)*Sf_[celli];
Snet_[celli] = Snuc_[celli] + Smassgrow_[celli] - Soxid_[celli];
NSnuc_[celli] = (Calpha*NA.value()*MolarConcPreci*exp(-cliqueNuc*Talpha/Ti))/Nnorm.value();
aggParam_[celli] = 24.0*kB.value()*Ti/rhoSoot;
NSagg_[celli] = (Cbeta*sqrt(aggParam_[celli])*sqrt(sootMeanDiameteri)*pow(NumDeni,2.0))/Nnorm.value();
NSnet_[celli] = NSnuc_[celli] - NSagg_[celli];
}
}
const Foam::compressibleTurbulenceModel&
Foam::radiation::MossBrookesSoot::turbulence() const
{
return turbulence_;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -1,280 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::radiation::MossBrookesSoot
Description
This soot model solves two transport equation for soot mass fraction
and soot normalized nuclei concentration.
The detail of the model strictly follows Moss & Brookes model in fluent.
Parameter settings are available in constant/radiationProperties.
Setting example:
sootModel MossBrookesSoot<rhoChemistryModel, gasHaThermoPhysics>;
MossBrookesSootCoeffs
{
SootDensity 1800.0;
Calpha 54.0;
Mp 144;
Cgamma 11700;
Coxid 1.0;
Cw 105.8125;
etaColl 0.04;
Talpha 21100.0;
Tgamma 12100.0;
AvogadroNumber 6.022e+26;
Cbeta 1.0;
BoltzmannConst 1.38e-23;
Radiationeffect true;
Precursor C2H2;
SurfaceGrowSpecie C2H2;
SootOxidizerSpecie OH;
}
SourceFiles
MossBrookesSoot.C
\*---------------------------------------------------------------------------*/
#ifndef MossBrookesSoot_H
#define MossBrookesSoot_H
#include "sootModel.H"
#include "HashTable.H"
#include "fluidThermo.H"
#include "basicSpecieMixture.H"
#include "turbulentFluidThermoModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
/*---------------------------------------------------------------------------*\
Class MossBrookesSoot Declaration
\*---------------------------------------------------------------------------*/
class MossBrookesSoot
:
public sootModel
{
// Static functions
//- Check mixture in thermo
static const basicSpecieMixture& checkThermo
(
const fluidThermo&
);
// Private data
//- Soot mass fraction
volScalarField soot_;
//- Soot volume fraction
volScalarField sootVF_;
//- Normalized nuclei concentration of soot
volScalarField NucConc_;
//- Number density of soot
volScalarField NumDen_;
//- Soot model dictionary
dictionary coeffsDict_;
//- Thermo package
const fluidThermo& thermo_;
//- Composition
const basicSpecieMixture& mixture_;
//- Reference to the turbulence model
const compressibleTurbulenceModel &turbulence_;
//- Net rate of soot generation
volScalarField Snet_;
//- The rate of soot formation by nucleation
volScalarField Snuc_;
//- The rate of soot formation by mass growth
volScalarField Smassgrow_;
//- The rate of soot formation by soot oxidation
volScalarField Soxid_;
//- The rate of soot number density formation by nucleation
volScalarField NSnuc_;
//- The rate of soot number density formation by agglomeration
volScalarField NSagg_;
//- Net rate of soot numbe density formation
volScalarField NSnet_;
//- Parameter for Agglomeration source term
volScalarField aggParam_;
//- Available surface area of soot oxidation per volume
volScalarField Sf_;
//- Soot particle mean diameter
volScalarField sootMeanDiameter_;
//- soot number density normalization factor
const dimensionedScalar Nnorm;
//- Soot turbulent Prandtl number
scalar PrtSoot;
//- Density of soot particle
scalar rhoSoot;
//- Model constant for soot inception rate
scalar Calpha;
//- Mass of an incipient soot particle
scalar Mp;
//- Surface growth rate scaling factor
scalar Cgamma;
//- Oxidation rate scaling parameter
scalar Coxid;
//- Oxidation model constant
scalar Cw;
//- Collisional efficiency parameter
scalar etaColl;
//- Activation temperature for soot inception
scalar Talpha;
//- Activation temperature for soot growth rate
scalar Tgamma;
//- Model constant for coagulation rate
scalar Cbeta;
//- Soot radiative effect on/off flag
bool radiationActive_;
//- Correction constant for Exponent in Nucleation
scalar cliqueNuc;
//- Correction constant for Exponent in Soot Mass Grow
scalar cliqueMassGrow;
//- Soot precursor specie name
const word precSpecie;
//- Soot surface growth specie name
const word sgsSpecie;
//- Soot oxidation specie name
const word oxSpecie;
protected:
// Protected data
// Protected Member Functions
public:
//- Runtime type information
TypeName("MossBrookesSoot");
// Constructors
//- Construct from components
MossBrookesSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
);
//- Destructor
virtual ~MossBrookesSoot();
// Edit
//- Main update/correction routine
virtual void correct();
//- Calculation of the source term routine
virtual void calcSource();
// Access
//- Return Ysoot
const volScalarField& soot() const
{
return soot_;
}
//- Return access to turbulence
const compressibleTurbulenceModel& turbulence() const;
// Soot absorption coefficient
//- Soot absorption coefficient (net)
virtual tmp<volScalarField> a(const label bandI = 0) const;
// Soot emission coefficient
//- Soot emission coefficient (net)
virtual tmp<volScalarField> e(const label bandI = 0) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
} // End namespace radiation
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View file

@ -1,384 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "khanGreeveSoot.H"
#include "addToRunTimeSelectionTable.H"
#include "fvm.H"
#include "basicSpecieMixture.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
defineTypeNameAndDebug(khanGreeveSoot, 0);
addToRunTimeSelectionTable
(
sootModel,
khanGreeveSoot,
dictionary
);
}
}
const Foam::basicSpecieMixture&
Foam::radiation::khanGreeveSoot::checkThermo
(
const fluidThermo& thermo
)
{
if (isA<basicSpecieMixture>(thermo))
{
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
else
{
FatalErrorInFunction
<< "Inconsistent thermo package for " << thermo.type()
<< "Please select a thermo package based on "
<< "basicSpecieMixture" << exit(FatalError);
return dynamic_cast<const basicSpecieMixture& >
(
thermo
);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::radiation::khanGreeveSoot::khanGreeveSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
)
:
sootModel(dict, mesh, modelType),
soot_
(
IOobject
(
"soot",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
sootVF_
(
IOobject
(
"sootVF",
mesh_.time().timeName(),
mesh_,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh_
),
coeffsDict_(dict.subOrEmptyDict(modelType + "Coeffs")),
thermo_(mesh.lookupObject<fluidThermo>(basicThermo::dictName)),
mixture_(checkThermo(thermo_)),
turbulence_(mesh.lookupObject<compressibleTurbulenceModel>(turbulenceModel::propertiesName)),
Snet_
(
IOobject
(
"Snet",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Snet", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Sform_
(
IOobject
(
"Sform",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Sform", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
Scomb_
(
IOobject
(
"Scomb",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("Scomb", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
S1_
(
IOobject
(
"S1",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("S1", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
S2_
(
IOobject
(
"S2",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("S2", dimMass/(pow3(dimLength)*dimTime), 0.0)
),
PrtSoot(readScalar(coeffsDict_.lookup("TurbulentPrandtlNumberSoot"))),
rhoSoot(readScalar(coeffsDict_.lookup("SootDensity"))),
Cs_(readScalar(coeffsDict_.lookup("Cs"))),
r_(readScalar(coeffsDict_.lookup("r"))),
Ta_(readScalar(coeffsDict_.lookup("ActivationTemperature"))),
A_(readScalar(coeffsDict_.lookup("A"))),
nuFuel_(readScalar(coeffsDict_.lookup("nufuel"))),
nuSoot_(readScalar(coeffsDict_.lookup("nusoot"))),
eqv_
(
IOobject
(
"eqv",
mesh_.time().timeName(),
mesh_,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh_,
dimensionedScalar("eqv", dimless, 0.0)
),
eqvMax(readScalar(coeffsDict_.lookup("EquivalenceRatioMax"))),
eqvMin(readScalar(coeffsDict_.lookup("EquivalenceRatioMin"))),
radiationActive_(readBool(coeffsDict_.lookup("Radiationeffect")))
{
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::radiation::khanGreeveSoot::~khanGreeveSoot()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::radiation::khanGreeveSoot::a(const label bandI) const
{
const volScalarField T_ = thermo_.T();
tmp<volScalarField> tas
(
new volScalarField
(
IOobject
(
"aSoot" + name(bandI),
mesh().time().timeName(),
mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh(),
dimensionedScalar("aSoot", dimless/dimLength, 0.0),
extrapolatedCalculatedFvPatchVectorField::typeName
)
);
scalarField& as = tas.ref().primitiveFieldRef();
if (radiationActive_)
{
forAll(as, celli)
{
as[celli] = (1232.4)*(1800.0)*soot_[celli]*(1.0+(4.8e-4)*(T_[celli]-2000.0));
}
}
tas.ref().correctBoundaryConditions();
return tas;
}
Foam::tmp<Foam::volScalarField>
Foam::radiation::khanGreeveSoot::e(const label bandI) const
{
return a(bandI);
}
void Foam::radiation::khanGreeveSoot::correct()
{
calcSource();
const volScalarField &rho_ = thermo_.rho();
const volVectorField &U_ = turbulence().U();
const surfaceScalarField phi_
(
IOobject
(
"phiSoot",
mesh().time().timeName(),
mesh()
),
linearInterpolate(rho_*U_) & mesh().Sf()
);
fvScalarMatrix SootEqn
(
fvm::ddt(rho_, soot_)
+ fvm::div(phi_, soot_)
- fvm::laplacian((turbulence().mut()/PrtSoot), soot_)
==
Snet_
);
SootEqn.relax();
SootEqn.solve();
forAll(rho_, celli)
{
if (soot_[celli] < 1e-30){
soot_[celli] = 0.0;
}
sootVF_[celli] = soot_[celli]*rho_[celli]/rhoSoot;
}
}
void Foam::radiation::khanGreeveSoot::calcSource()
{
const volScalarField rho_ = thermo_.rho();
const volScalarField T_ = thermo_.T();
const volScalarField p_ = thermo_.p();
const scalar oxI = mixture_.species()[coeffsDict_.lookup("Oxidizer")];
const scalar fuelI = mixture_.species()[coeffsDict_.lookup("Fuel")];
const volScalarField &Yox_ = mixture_.Y(oxI);
const volScalarField &Yfuel_ = mixture_.Y(fuelI);
const volScalarField Xfuel_(mixture_.W()*Yfuel_/mixture_.W(fuelI));
const volScalarField &epsilon_ = turbulence().epsilon();
const volScalarField &k_ = turbulence().k();
forAll(rho_, celli)
{
const scalar Yoxi = Yox_[celli];
const scalar Yfueli = Yfuel_[celli];
eqv_[celli] = (Yfueli/Yoxi)*nuFuel_;
if (eqv_[celli] > eqvMax){
eqv_[celli] = 0.0;
}
else if (eqv_[celli] < eqvMin){
eqv_[celli] = 0.0;
}
const scalar pi = p_[celli];
const scalar Xfueli = Xfuel_[celli];
const scalar Ti = T_[celli];
Sform_[celli] = Cs_*pi*Xfueli*pow(eqv_[celli],r_)*exp(-Ta_/Ti);
const scalar rhoi = rho_[celli];
const scalar sooti = soot_[celli];
const scalar epsiloni = epsilon_[celli];
const scalar ki = k_[celli];
S1_[celli] = A_*rhoi*sooti*epsiloni/ki;
if (sooti == 0.0 and Yfueli == 0.0 )
{
S2_[celli] = 0.0;
}
else
{
S2_[celli] = A_*rhoi*(Yoxi/nuSoot_)*(sooti*nuSoot_/(sooti*nuSoot_+(Yfueli)*nuFuel_))*epsiloni/ki;
}
Scomb_[celli] = min(S1_[celli], S2_[celli]);
Snet_[celli] = Sform_[celli] - Scomb_[celli];
}
}
const Foam::compressibleTurbulenceModel&
Foam::radiation::khanGreeveSoot::turbulence() const
{
return turbulence_;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -1,230 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::radiation::khanGreeveSoot
Description
This soot model solves transport equation for soot mass fraction.
The detail of the model can be describe in the fluent theory guide.
Parameter setup is available in constant/radiationProperties file.
Setup example:
sootModel khanGreeveSoot<rhoChemistryModel,gasHaThermoPhysics>;
khanGreeveSootCoeffs
{
SootDensity 1800.0;
Cs 1.5;
r 3;
ActivationTemperature 20000;
A 4;
nufuel 3.2;
nusoot 2.6667;
EquivalenceRatioMax 3.0;
EquivalenceRatioMin 1.67;
Radiationeffect true;
Fuel PHC3H7;
Oxidizer O2;
}
SourceFiles
khanGreeveSoot.C
\*---------------------------------------------------------------------------*/
#ifndef khanGreeveSoot_H
#define khanGreeveSoot_H
#include "sootModel.H"
#include "HashTable.H"
#include "fluidThermo.H"
#include "basicSpecieMixture.H"
#include "turbulentFluidThermoModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace radiation
{
/*---------------------------------------------------------------------------*\
Class khanGreeveSoot Declaration
\*---------------------------------------------------------------------------*/
class khanGreeveSoot
:
public sootModel
{
// Static functions
//- Check mixture in thermo
static const basicSpecieMixture& checkThermo
(
const fluidThermo&
);
// Private data
//- Soot mass fraction
volScalarField soot_;
//- Soot volume fraction
volScalarField sootVF_;
//- Soot model dictionary
dictionary coeffsDict_;
//- Thermo package
const fluidThermo& thermo_;
//- Composition
const basicSpecieMixture& mixture_;
//- Reference to the turbulence model
const compressibleTurbulenceModel &turbulence_;
//- Net rate of soot generation
volScalarField Snet_;
//- The rate of soot formation
volScalarField Sform_;
//- The rate of soot combustion
volScalarField Scomb_;
//- The 1st rate of soot combustion
volScalarField S1_;
//- The 2nd rate of soot combustion
volScalarField S2_;
//- Soot turbulent Prandtl number
scalar PrtSoot;
//- Soot density
scalar rhoSoot;
//- Soot formation constant
scalar Cs_;
//- Equivalence ratio exponent
scalar r_;
//- Activation temperature
scalar Ta_;
//- Magnussen model constant
scalar A_;
//- Mass stoichiometry for the fuel oxidation
scalar nuFuel_;
//- Mass stoichiometry for the soot oxidation
scalar nuSoot_;
//- Equivalence ratio for the fuel
volScalarField eqv_;
//- Maximum equivalence ratio
scalar eqvMax;
//- Minimum equivalence ratio
scalar eqvMin;
//- Soot radiative effect on/off flag
bool radiationActive_;
public:
//- Runtime type information
TypeName("khanGreeveSoot");
// Constructors
//- Construct from components
khanGreeveSoot
(
const dictionary& dict,
const fvMesh& mesh,
const word& modelType
);
//- Destructor
virtual ~khanGreeveSoot();
// Edit
//- Main update/correction routine
virtual void correct();
//- Calculation of the source term routine
virtual void calcSource();
// Access
//- Return Ysoot
const volScalarField& soot() const
{
return soot_;
}
//- Return access to turbulence
const compressibleTurbulenceModel& turbulence() const;
// Soot absorption coefficient
//- Soot absorption coefficient (net)
virtual tmp<volScalarField> a(const label bandI = 0) const;
// Soot emission coefficient
//- Soot emission coefficient (net)
virtual tmp<volScalarField> e(const label bandI = 0) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
} // End namespace radiation
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View file

@ -86,19 +86,6 @@ makeChemistryReaderType(foamChemistryReader, hConstSolidThermoPhysics);
makeChemistryReaderType(foamChemistryReader, hPowerSolidThermoPhysics);
makeChemistryReaderType(foamChemistryReader, hExpKappaConstSolidThermoPhysics);
// Gas chemistry readers based on absoluteEnthalpy
makeChemistryReader(gasHaThermoPhysics);
makeChemistryReaderType(foamChemistryReader, gasHaThermoPhysics);
// Gas chemistry readers based on absoluteInternalEnergy
makeChemistryReader(gasEaThermoPhysics);
makeChemistryReaderType(foamChemistryReader, gasEaThermoPhysics);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam

View file

@ -148,7 +148,7 @@ irreversibleReactionDelimiter {space}"=>"{space}
startPDependentSpecie {space}"("{space}"+"{space}
pDependentSpecie {specieName}")"{space}
reactionCoeffs {space}{floatNum}{some_space}{floatNum}{some_space}{floatNum}{space}
reactionKeyword {space}[A-Za-z](([A-Za-z0-9)*-])|("("[^+]))*{space}
reactionKeyword {space}[A-Za-z](([A-Za-z0-9)*-])|("("[^+]))*((\+({some_space}))?){space}
reactionKeywordSlash {reactionKeyword}"/"{space}
thirdBodyEfficiency {space}{floatNum}{space}"/"{space}
startReactionCoeffs {space}"/"{space}
@ -637,7 +637,8 @@ bool finishReaction = false;
(
currentSpecieName,
1.0,
molecularWeight(currentSpecieComposition)
molecularWeight(currentSpecieComposition),
chargeNumber(currentSpecieComposition)
),
currentLowT,
currentHighT,

View file

@ -144,6 +144,28 @@ Foam::scalar Foam::chemkinReader::molecularWeight
}
Foam::scalar Foam::chemkinReader::chargeNumber
(
const List<specieElement>& specieComposition
) const
{
scalar nElemCharges = 0.0;
forAll(specieComposition, i)
{
label nAtoms = specieComposition[i].nAtoms;
const word& elementName = specieComposition[i].elementName;
if (elementName[0] == 'e')
{
nElemCharges -= nAtoms;
}
}
return nElemCharges;
}
void Foam::chemkinReader::checkCoeffs
(
const scalarList& reactionCoeffs,

View file

@ -254,6 +254,11 @@ private:
const List<specieElement>& specieComposition
) const;
scalar chargeNumber
(
const List<specieElement>& specieComposition
) const;
void finishElements(labelList& currentAtoms);
void checkCoeffs

View file

@ -68,6 +68,70 @@ Foam::scalar Foam::SpecieMixture<MixtureType>::W
}
template<class MixtureType>
Foam::scalar Foam::SpecieMixture<MixtureType>::z
(
const label speciei
) const
{
return this->getLocalThermo(speciei).z();
}
template<class MixtureType>
Foam::scalar Foam::SpecieMixture<MixtureType>::Qc
(
const label speciei
) const
{
return this->getLocalThermo(speciei).Qc();
}
template<class MixtureType>
Foam::scalar Foam::SpecieMixture<MixtureType>::Qc2
(
const label speciei
) const
{
return this->getLocalThermo(speciei).Qc2();
}
template<class MixtureType>
void Foam::SpecieMixture<MixtureType>::Cp
(
scalarField& Cps,
const scalar p,
const scalar T
) const
{
forAll(this->species(), speciei)
{
Cps[speciei] = this->getLocalThermo(speciei).Cp(p, T);
}
return;
}
template<class MixtureType>
void Foam::SpecieMixture<MixtureType>::Cv
(
scalarField& Cvs,
const scalar p,
const scalar T
) const
{
forAll(this->species(), speciei)
{
Cvs[speciei] = this->getLocalThermo(speciei).Cv(p, T);
}
return;
}
template<class MixtureType>
Foam::scalar Foam::SpecieMixture<MixtureType>::Cp
(

View file

@ -81,6 +81,34 @@ public:
//- Molecular weight of the given specie [kg/kmol]
virtual scalar W(const label speciei) const;
//- Number of charges of the given specie []
virtual scalar z(const label speciei) const;
//- Specific charge of the given specie []
virtual scalar Qc(const label specieI) const;
//- Absolute specific charge of the given specie []
virtual scalar Qc2(const label specieI) const;
// All species thermo properties
//- Heat capacity at constant pressure [J/(kg K)]
virtual void Cp
(
scalarField& Cps,
const scalar p,
const scalar T
) const;
//- Heat capacity at constant volume [J/(kg K)]
virtual void Cv
(
scalarField& Cvs,
const scalar p,
const scalar T
) const;
// Per specie thermo properties

View file

@ -81,4 +81,72 @@ Foam::tmp<Foam::volScalarField> Foam::basicSpecieMixture::W() const
}
Foam::tmp<Foam::volScalarField> Foam::basicSpecieMixture::Qc() const
{
const PtrList<volScalarField>& Y(basicMultiComponentMixture::Y());
tmp<volScalarField> tQc
(
new volScalarField
(
IOobject
(
IOobject::groupName("Qc", Y[0].group()),
Y[0].time().timeName(),
Y[0].mesh()
),
Y[0].mesh(),
dimensionedScalar("zero", dimCurrent*dimTime/dimMass, 0)
)
);
volScalarField& Qc = tQc.ref();
dimensionedScalar Qci("Qci", dimCurrent*dimTime/dimMass, 0);
forAll(Y, i)
{
Qci.value() = this->Qc(i);
Qc += Y[i]*Qci;
// Qc += Y[i]*this->Qc(i);
}
return tQc;
}
Foam::tmp<Foam::volScalarField> Foam::basicSpecieMixture::Qc2() const
{
const PtrList<volScalarField>& Y(basicMultiComponentMixture::Y());
tmp<volScalarField> tQc
(
new volScalarField
(
IOobject
(
IOobject::groupName("Qc2", Y[0].group()),
Y[0].time().timeName(),
Y[0].mesh()
),
Y[0].mesh(),
dimensionedScalar("zero", sqr(dimCurrent*dimTime)/dimMass, 0)
)
);
volScalarField& Qc = tQc.ref();
dimensionedScalar Qc2i("Qc2i", sqr(dimCurrent*dimTime)/dimMass, 0);
forAll(Y, i)
{
Qc2i.value() = this->Qc2(i);
Qc += Y[i]*Qc2i;
//Qc += Y[i]*this->Qc2(i);
}
return tQc;
}
// ************************************************************************* //

View file

@ -88,9 +88,43 @@ public:
//- Molecular weight of the given specie [kg/kmol]
virtual scalar W(const label speciei) const = 0;
//- Number of charges of the given specie []
virtual scalar z(const label speciei) const = 0;
//- Specific charge of the given specie [C/kg]
virtual scalar Qc(const label speciei) const = 0;
//- Absolute specific charge of the given specie [C/kg]
virtual scalar Qc2(const label speciei) const = 0;
//- Molecular weight of the mixture [kg/kmol]
tmp<volScalarField> W() const;
//- Specific charge of the mixture [C/kg]
tmp<volScalarField> Qc() const;
//- Absolute specific charge of the mixture [C^2/kg]
tmp<volScalarField> Qc2() const;
// All species thermo properties
//- Heat capacity at constant pressure [J/(kg K)]
virtual void Cp
(
scalarField& Cps,
const scalar p,
const scalar T
) const = 0;
//- Heat capacity at constant volume [J/(kg K)]
virtual void Cv
(
scalarField& Cvs,
const scalar p,
const scalar T
) const = 0;
// Per specie thermo properties

View file

@ -212,47 +212,6 @@ makeReactionThermo
specie
);
//reactionthermo using absoluteEnthalpy
makeReactionThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
homogeneousMixture,
sutherlandTransport,
absoluteEnthalpy,
janafThermo,
perfectGas,
specie
);
makeReactionThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
inhomogeneousMixture,
sutherlandTransport,
absoluteEnthalpy,
janafThermo,
perfectGas,
specie
);
makeReactionThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
veryInhomogeneousMixture,
sutherlandTransport,
absoluteEnthalpy,
janafThermo,
perfectGas,
specie
);
// Multi-component thermo for internal energy
@ -301,29 +260,6 @@ makeReactionMixtureThermo
icoPoly8EThermoPhysics
);
// Multi-component thermo for absolute enthalpy
makeReactionMixtureThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
multiComponentMixture,
gasHaThermoPhysics
);
// Multi-component thermo for internal energy
makeReactionMixtureThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
multiComponentMixture,
gasEaThermoPhysics
);
// Multi-component reaction thermo
@ -488,47 +424,6 @@ makeReactionMixtureThermo
gasHThermoPhysics
);
// Multi-component reaction thermo for absolute enthalpy
makeReactionMixtureThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
reactingMixture,
gasHaThermoPhysics
);
makeReactionMixtureThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
singleStepReactingMixture,
gasHaThermoPhysics
);
// Multi-component reaction thermo for internal energy
makeReactionMixtureThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
reactingMixture,
gasEaThermoPhysics
);
makeReactionMixtureThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
singleStepReactingMixture,
gasEaThermoPhysics
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -68,12 +68,6 @@ namespace Foam
incompressibleGasEReaction;
typedef Reaction<icoPoly8EThermoPhysics> icoPoly8EReaction;
// absolute enthalpy based reactions
typedef Reaction<gasHaThermoPhysics> gasHaReaction;
// absolute internal energy based reactions
typedef Reaction<gasEaThermoPhysics> gasEaReaction;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -40,8 +40,6 @@ Description
#include "sensibleEnthalpy.H"
#include "sensibleInternalEnergy.H"
#include "absoluteEnthalpy.H"
#include "absoluteInternalEnergy.H"
#include "thermo.H"
#include "sutherlandTransport.H"
#include "constTransport.H"
@ -190,40 +188,6 @@ namespace Foam
>,
8
> icoPoly8EThermoPhysics;
// thermo physics types based on absoluteEnthalpy
typedef
sutherlandTransport
<
species::thermo
<
janafThermo
<
perfectGas<specie>
>,
absoluteEnthalpy
>
> gasHaThermoPhysics;
// thermo physics types based on absoluteInternalEnergy
typedef
sutherlandTransport
<
species::thermo
<
janafThermo
<
perfectGas<specie>
>,
absoluteInternalEnergy
>
> gasEaThermoPhysics;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View file

@ -103,10 +103,6 @@ namespace Foam
)
makeReactions(incompressibleGasEThermoPhysics, incompressibleGasEReaction)
makeReactions(icoPoly8EThermoPhysics, icoPoly8EReaction)
// absolute enthalpy based reactions
makeReactions(gasHaThermoPhysics, gasHaReaction)
makeReactions(gasEaThermoPhysics, gasEaReaction)
}
// ************************************************************************* //

View file

@ -29,6 +29,24 @@ License
/* * * * * * * * * * * * * * * public constants * * * * * * * * * * * * * * */
//- Universal gas constant (default in [J/(kmol K)])
const Foam::scalar Foam::specie::RR = constant::physicoChemical::R.value()*1000;
//- Standard pressure (default in [Pa])
const Foam::scalar Foam::specie::Pstd = constant::standard::Pstd.value();
//- Standard temperature (default in [K])
const Foam::scalar Foam::specie::Tstd = constant::standard::Tstd.value();
//- Elementary charge (default in [C])
const Foam::scalar Foam::specie::e = constant::electromagnetic::e.value();
//- Avogadro number (default in [1/mol])
const Foam::scalar Foam::specie::NA = constant::physicoChemical::NA.value()*1000;
//- Boltzmann constant (default in [J/K])
const Foam::scalar Foam::specie::k = constant::physicoChemical::k.value();
namespace Foam
{
defineTypeNameAndDebug(specie, 0);
@ -41,7 +59,8 @@ Foam::specie::specie(Istream& is)
:
name_(is),
nMoles_(readScalar(is)),
molWeight_(readScalar(is))
molWeight_(readScalar(is)),
nCharges_(readScalar(is))
{
is.check("specie::specie(Istream& is)");
}
@ -51,7 +70,8 @@ Foam::specie::specie(const dictionary& dict)
:
name_(dict.dictName()),
nMoles_(readScalar(dict.subDict("specie").lookup("nMoles"))),
molWeight_(readScalar(dict.subDict("specie").lookup("molWeight")))
molWeight_(readScalar(dict.subDict("specie").lookup("molWeight"))),
nCharges_(dict.subDict("specie").lookupOrDefault("nCharges", 0.0))
{}
@ -62,6 +82,7 @@ void Foam::specie::write(Ostream& os) const
dictionary dict("specie");
dict.add("nMoles", nMoles_);
dict.add("molWeight", molWeight_);
dict.add("nCharges", nCharges_);
os << indent << dict.dictName() << dict;
}
@ -72,7 +93,8 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const specie& st)
{
os << st.name_ << tab
<< st.nMoles_ << tab
<< st.molWeight_;
<< st.molWeight_ << tab
<< st.nCharges_;
os.check("Ostream& operator<<(Ostream& os, const specie& st)");
return os;

View file

@ -77,6 +77,9 @@ class specie
//- Molecular weight of specie [kg/kmol]
scalar molWeight_;
//- Number of elementary charges of specie
scalar nCharges_;
public:
@ -84,6 +87,29 @@ public:
ClassName("specie");
// Public constants
// Thermodynamic constants
//- Universal gas constant [J/(kmol K)]
static const scalar RR;
//- Standard pressure [Pa]
static const scalar Pstd;
//- Standard temperature [K]
static const scalar Tstd;
//- Elementary charge [C]
static const scalar e;
//- Avogadro number [1/kmol]
static const scalar NA;
//- Boltzmann constant [J/K]
static const scalar k;
// Constructors
@ -98,6 +124,23 @@ public:
const scalar molWeight
);
//- Construct from components without name
inline specie
(
const scalar nMoles,
const scalar molWeight,
const scalar nCharges
);
//- Construct from components with name
inline specie
(
const word& name,
const scalar nMoles,
const scalar molWeight,
const scalar nCharges
);
//- Construct as copy
inline specie(const specie&);
@ -127,6 +170,27 @@ public:
//- Gas constant [J/(kg K)]
inline scalar R() const;
//- Charge number
inline scalar z() const;
// Electric charge function
// Mole specific properties
//- Electric charge [C/kmol]
inline scalar qc() const;
// Mass specific properties
//- Electric charge [C/kg]
inline scalar Qc() const;
//- Electric charge squared [C^2/kg]
inline scalar Qc2() const;
// I-O

View file

@ -41,7 +41,8 @@ inline specie::specie
:
name_(name),
nMoles_(nMoles),
molWeight_(molWeight)
molWeight_(molWeight),
nCharges_(0.0)
{}
@ -52,7 +53,36 @@ inline specie::specie
)
:
nMoles_(nMoles),
molWeight_(molWeight)
molWeight_(molWeight),
nCharges_(0.0)
{}
inline specie::specie
(
const word& name,
const scalar nMoles,
const scalar molWeight,
const scalar nCharges
)
:
name_(name),
nMoles_(nMoles),
molWeight_(molWeight),
nCharges_(nCharges)
{}
inline specie::specie
(
const scalar nMoles,
const scalar molWeight,
const scalar nCharges
)
:
nMoles_(nMoles),
molWeight_(molWeight),
nCharges_(nCharges)
{}
@ -62,7 +92,8 @@ inline specie::specie(const specie& st)
:
name_(st.name_),
nMoles_(st.nMoles_),
molWeight_(st.molWeight_)
molWeight_(st.molWeight_),
nCharges_(st.nCharges_)
{}
@ -70,7 +101,8 @@ inline specie::specie(const word& name, const specie& st)
:
name_(name),
nMoles_(st.nMoles_),
molWeight_(st.molWeight_)
molWeight_(st.molWeight_),
nCharges_(st.nCharges_)
{}
@ -100,6 +132,30 @@ inline scalar specie::R() const
}
inline scalar specie::z() const
{
return nCharges_;
}
inline scalar specie::qc() const
{
return nCharges_ * NA * e;
}
inline scalar specie::Qc() const
{
return nCharges_ * NA * e / molWeight_;
}
inline scalar specie::Qc2() const
{
return nCharges_ * nCharges_ * NA * e * e / molWeight_;
}
// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * //
inline void specie::operator=(const specie& st)
@ -107,6 +163,7 @@ inline void specie::operator=(const specie& st)
//name_ = st.name_;
nMoles_ = st.nMoles_;
molWeight_ = st.molWeight_;
nCharges_ = st.nCharges_;
}
@ -114,6 +171,10 @@ inline void specie::operator+=(const specie& st)
{
scalar sumNmoles = max(nMoles_ + st.nMoles_, SMALL);
nCharges_ =
nMoles_/sumNmoles*nCharges_
+ st.nMoles_/sumNmoles*st.nCharges_;
molWeight_ =
nMoles_/sumNmoles*molWeight_
+ st.nMoles_/sumNmoles*st.molWeight_;
@ -130,6 +191,10 @@ inline void specie::operator-=(const specie& st)
diffnMoles = SMALL;
}
nCharges_ =
nMoles_/diffnMoles*nCharges_
- st.nMoles_/diffnMoles*st.nCharges_;
molWeight_ =
nMoles_/diffnMoles*molWeight_
- st.nMoles_/diffnMoles*st.molWeight_;
@ -154,7 +219,9 @@ inline specie operator+(const specie& st1, const specie& st2)
(
sumNmoles,
st1.nMoles_/sumNmoles*st1.molWeight_
+ st2.nMoles_/sumNmoles*st2.molWeight_
+ st2.nMoles_/sumNmoles*st2.molWeight_,
st1.nMoles_/sumNmoles*st1.nCharges_
+ st2.nMoles_/sumNmoles*st2.nCharges_
);
}
@ -171,7 +238,9 @@ inline specie operator-(const specie& st1, const specie& st2)
(
diffNmoles,
st1.nMoles_/diffNmoles*st1.molWeight_
- st2.nMoles_/diffNmoles*st2.molWeight_
- st2.nMoles_/diffNmoles*st2.molWeight_,
st1.nMoles_/diffNmoles*st1.nCharges_
- st2.nMoles_/diffNmoles*st2.nCharges_
);
}
@ -181,7 +250,8 @@ inline specie operator*(const scalar s, const specie& st)
return specie
(
s*st.nMoles_,
st.molWeight_
st.molWeight_,
st.nCharges_
);
}

View file

@ -336,6 +336,7 @@ public:
) const;
// I-O
//- Write to Ostream

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC10H21;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC3H5;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC5H10;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC5H11;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC6H12;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC6H13;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC7H14;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC7H15;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC8H17;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC9H17C;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object AC9H18;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object ACROL;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object APHC2H4;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object APHC3H6;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object BC10H21;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object BC6H13;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object BC9H17C;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object BPHC3H6;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object BPHPROPY;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

File diff suppressed because it is too large Load diff

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H3CO;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H4;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H4O2H;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H5;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H5O2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C2H6;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C3H3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C3H5O;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C3H6;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C4H;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C4H2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C4H4;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C4H6;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C4H73;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C4H8;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C5H4O;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C5H4OH;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C5H5;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C5H5O13;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C5H7;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C5H813;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C5H913;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H1112;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H1113;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H1115;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H1116;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H5;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H5O;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H5OH;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object C6H6;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object CC10H21;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

View file

@ -1,52 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "2900";
object CC7H15;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
INLET
{
type fixedValue;
value uniform 0;
}
WALL
{
type zeroGradient;
}
SLIPWALL
{
type zeroGradient;
}
OUTLET
{
type zeroGradient;
}
CYCLIC_half0
{
type cyclic;
}
CYCLIC_half1
{
type cyclic;
}
}
// ************************************************************************* //

Some files were not shown because too many files have changed in this diff Show more