ENH: Updating combustion and heat transfer tutorials

This commit is contained in:
Sergio Ferraris
2014-01-08 10:15:01 +00:00
parent 7316691a6d
commit a2d6fe298d
216 changed files with 747 additions and 7523 deletions

View File

@ -55,7 +55,7 @@ Description
In between ratio 0 and 1 the gradient and value contributions are
weighted using the ratio field in the followig way:
qConv = ratio*htcwfilm*(Tfilm - *this)*convectiveScaling_;
qConv = ratio*htcwfilm*(Tfilm - *this);
qRad = (1.0 - ratio)*Qr;
Then the solid can gain or loose energy through radiation or conduction

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,112 +39,114 @@ Description
- 2-D, normal and tangential components
The thermodynamic properties of the baffle material are specified via
dictionary entries.
dictionary entries on the master patch
\heading Patch usage
Example of the boundary condition specification:
\verbatim
myPatch
myPatch_master
{
type compressible::temperatureThermoBaffle;
type compressible::thermalBaffle;
// Underlaying coupled boundary condition
Tnbr T;
kappa fluidThermo; // or solidThermo
KappaName none;
QrNbr Qr;//or none.Name of Qr field on neighbourregion
Qr none;// or none.Name of Qr field on localregion
value uniform 300;
Tnbr T;
kappa fluidThermo; // or solidThermo
KappaName none;
QrNbr Qr;//or none.Name of Qr field on neighbourregion
Qr none;// or none.Name of Qr field on localregion
value uniform 300;
// Thermo baffle model
regionName baffleRegion; // solid region name
infoOutput yes;
active yes;
// Baffle region name
regionName baffleRegion;
active yes;
// Solid thermo in solid region
thermoType
{
type heSolidThermo;
mixture pureSolidMixture;
transport constIso;
thermo hConst;
equationOfState rhoConst;
specie specie;
energy sensibleEnthalpy;
}
thermoType
{
type heSolidThermo;
mixture pureMixture;
transport constIso;
thermo hConst;
equationOfState rhoConst;
specie specie;
energy sensibleEnthalpy;
}
mixture
mixture
{
specie
{
specie
{
nMoles 1;
molWeight 20;
}
transport
{
kappa 0.01;
}
thermodynamics
{
Hf 0;
Cp 15;
}
density
{
rho 80;
}
nMoles 1;
molWeight 20;
}
transport
{
kappa 0.01;
}
thermodynamics
{
Hf 0;
Cp 15;
}
density
{
rho 80;
}
}
radiation
{
radiationModel opaqueSolid;
absorptionEmissionModel none;
scatterModel none;
}
radiation
{
radiationModel opaqueSolid;
absorptionEmissionModel none;
scatterModel none;
}
// Extrude model for new region
extrudeModel linearNormal;
nLayers 50;
expansionRatio 1;
columnCells false; //3D or 1D
linearNormalCoeffs
{
thickness 0.02;
}
extrudeModel linearNormal;
nLayers 50;
expansionRatio 1;
columnCells false; //3D or 1D
linearNormalCoeffs
{
thickness 0.02;
}
// New mesh polyPatch information
bottomCoeffs
{
name "bottom";
type mappedWall;
sampleMode nearestPatchFace;
samplePatch baffle3DWall_master;
offsetMode uniform;
offset (0 0 0);
}
topCoeffs
{
name "top";
type mappedWall;
sampleMode nearestPatchFace;
samplePatch baffle3DWall_slave;
offsetMode uniform;
offset (0 0 0);
}
sideCoeffs
{
name "side";
type patch;
}
}
\endverbatim
/- Slave patch on primary region
\verbatim
myPatch_slave
{
type compressible::thermalBaffle;
kappa fluidThermo;
kappaName none;
value uniform 300;
\endverbatim
/- Patches on baffle region
\verbatim
bottom
{
type compressible::thermalBaffle;
kappa solidThermo;
kappaName none;
value uniform 300;
}
top
{
type compressible::thermalBaffle;
kappa solidThermo;
kappaName none;
value uniform 300;
}
\endverbatim
SeeAlso
Foam::turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
Foam::regionModels::thermalBaffleModels::thermalBaffleModel

View File

@ -26,6 +26,7 @@ License
#include "radiationModel.H"
#include "absorptionEmissionModel.H"
#include "scatterModel.H"
#include "sootModel.H"
#include "fvmSup.H"
#include "fluidThermo.H"
@ -83,6 +84,8 @@ void Foam::radiation::radiationModel::initialise()
);
scatter_.reset(scatterModel::New(*this, mesh_).ptr());
soot_.reset(sootModel::New(*this, mesh_).ptr());
}
}
@ -110,7 +113,8 @@ Foam::radiation::radiationModel::radiationModel(const volScalarField& T)
solverFreq_(0),
firstIter_(true),
absorptionEmission_(NULL),
scatter_(NULL)
scatter_(NULL),
soot_(NULL)
{}
@ -129,7 +133,8 @@ Foam::radiation::radiationModel::radiationModel
solverFreq_(1),
firstIter_(true),
absorptionEmission_(NULL),
scatter_(NULL)
scatter_(NULL),
soot_(NULL)
{
if (readOpt() == IOobject::NO_READ)
{
@ -167,7 +172,8 @@ Foam::radiation::radiationModel::radiationModel
solverFreq_(1),
firstIter_(true),
absorptionEmission_(NULL),
scatter_(NULL)
scatter_(NULL),
soot_(NULL)
{
initialise();
}
@ -212,6 +218,11 @@ void Foam::radiation::radiationModel::correct()
calculate();
firstIter_ = false;
}
if (!soot_.empty())
{
soot_->correct();
}
}
@ -265,4 +276,22 @@ Foam::radiation::radiationModel::absorptionEmission() const
}
const Foam::radiation::sootModel&
Foam::radiation::radiationModel::soot() const
{
if (!soot_.valid())
{
FatalErrorIn
(
"const Foam::radiation::sootModel&"
"Foam::radiation::radiationModel::soot() const"
)
<< "Requested radiation sootModel model, but model is "
<< "not activate" << abort(FatalError);
}
return soot_();
}
// ************************************************************************* //

View File

@ -64,6 +64,7 @@ namespace radiation
// Forward declaration of classes
class absorptionEmissionModel;
class scatterModel;
class sootModel;
/*---------------------------------------------------------------------------*\
Class radiationModel Declaration
@ -108,6 +109,9 @@ protected:
//- Scatter model
autoPtr<scatterModel> scatter_;
//- Soot model
autoPtr<sootModel> soot_;
private:
@ -232,6 +236,9 @@ public:
//- Access to absorptionEmission model
const absorptionEmissionModel& absorptionEmission() const;
//- Access to soot Model
const sootModel& soot() const;
};

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,7 +47,10 @@ turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
:
mixedFvPatchScalarField(p, iF),
temperatureCoupledBase(patch(), "undefined", "undefined-K"),
TnbrName_("undefined-Tnbr")
TnbrName_("undefined-Tnbr"),
thicknessLayers_(0),
kappaLayers_(0),
contactRes_(0)
{
this->refValue() = 0.0;
this->refGrad() = 0.0;
@ -66,7 +69,10 @@ turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
:
mixedFvPatchScalarField(ptf, p, iF, mapper),
temperatureCoupledBase(patch(), ptf.KMethod(), ptf.kappaName()),
TnbrName_(ptf.TnbrName_)
TnbrName_(ptf.TnbrName_),
thicknessLayers_(ptf.thicknessLayers_),
kappaLayers_(ptf.kappaLayers_),
contactRes_(ptf.contactRes_)
{}
@ -80,7 +86,10 @@ turbulentTemperatureCoupledBaffleMixedFvPatchScalarField
:
mixedFvPatchScalarField(p, iF),
temperatureCoupledBase(patch(), dict),
TnbrName_(dict.lookup("Tnbr"))
TnbrName_(dict.lookup("Tnbr")),
thicknessLayers_(0),
kappaLayers_(0),
contactRes_(0.0)
{
if (!isA<mappedPatchBase>(this->patch().patch()))
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -50,8 +50,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
TnbrName_("undefined-Tnbr"),
QrNbrName_("undefined-QrNbr"),
QrName_("undefined-Qr"),
thicknessLayers_(),
kappaLayers_(),
thicknessLayers_(0),
kappaLayers_(0),
contactRes_(0)
{
this->refValue() = 0.0;
@ -93,8 +93,8 @@ turbulentTemperatureRadCoupledMixedFvPatchScalarField
TnbrName_(dict.lookupOrDefault<word>("Tnbr", "T")),
QrNbrName_(dict.lookupOrDefault<word>("QrNbr", "none")),
QrName_(dict.lookupOrDefault<word>("Qr", "none")),
thicknessLayers_(),
kappaLayers_(),
thicknessLayers_(0),
kappaLayers_(0),
contactRes_(0.0)
{
if (!isA<mappedPatchBase>(this->patch().patch()))