mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Updating combustion and heat transfer tutorials
This commit is contained in:
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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_();
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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()))
|
||||
{
|
||||
|
||||
@ -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()))
|
||||
|
||||
Reference in New Issue
Block a user