mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -81,7 +81,7 @@ bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
|
|||||||
{
|
{
|
||||||
PDRDragModelCoeffs_ = PDRProperties.subDict(type() + "Coeffs");
|
PDRDragModelCoeffs_ = PDRProperties.subDict(type() + "Coeffs");
|
||||||
|
|
||||||
PDRDragModelCoeffs_.lookup("PDRDragModel") >> on_;
|
PDRDragModelCoeffs_.lookup("drag") >> on_;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,24 +91,80 @@ Foam::PDRDragModels::basic::~basic()
|
|||||||
|
|
||||||
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
||||||
{
|
{
|
||||||
const volScalarField& betav =
|
tmp<volSymmTensorField> tDragDcu
|
||||||
U_.db().lookupObject<volScalarField>("betav");
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"tDragDcu",
|
||||||
|
U_.mesh().time().constant(),
|
||||||
|
U_.mesh(),
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
U_.mesh(),
|
||||||
|
dimensionedSymmTensor
|
||||||
|
(
|
||||||
|
"zero",
|
||||||
|
dimMass/dimTime/pow(dimLength, 3),
|
||||||
|
pTraits<symmTensor>::zero
|
||||||
|
),
|
||||||
|
zeroGradientFvPatchSymmTensorField::typeName
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
return (0.5*rho_)*CR_*mag(U_) + (Csu*I)*betav*turbulence_.muEff()*sqr(Aw_);
|
volSymmTensorField& DragDcu = tDragDcu();
|
||||||
|
|
||||||
|
if (on_)
|
||||||
|
{
|
||||||
|
const volScalarField& betav =
|
||||||
|
U_.db().lookupObject<volScalarField>("betav");
|
||||||
|
|
||||||
|
DragDcu =
|
||||||
|
(0.5*rho_)*CR_*mag(U_) + (Csu*I)*betav*turbulence_.muEff()*sqr(Aw_);
|
||||||
|
}
|
||||||
|
|
||||||
|
return tDragDcu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
||||||
{
|
{
|
||||||
const volScalarField& betav =
|
tmp<volScalarField> tGk
|
||||||
U_.db().lookupObject<volScalarField>("betav");
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"tGk",
|
||||||
|
U_.mesh().time().constant(),
|
||||||
|
U_.mesh(),
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
U_.mesh(),
|
||||||
|
dimensionedScalar("zero", dimMass/dimLength/pow(dimTime, 3), 0.0),
|
||||||
|
zeroGradientFvPatchVectorField::typeName
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
const volSymmTensorField& CT =
|
volScalarField& Gk = tGk();
|
||||||
U_.db().lookupObject<volSymmTensorField>("CT");
|
|
||||||
|
|
||||||
return
|
if (on_)
|
||||||
(0.5*rho_)*mag(U_)*(U_ & CT & U_)
|
{
|
||||||
+ Csk*betav*turbulence_.muEff()*sqr(Aw_)*magSqr(U_);
|
const volScalarField& betav =
|
||||||
|
U_.db().lookupObject<volScalarField>("betav");
|
||||||
|
|
||||||
|
const volSymmTensorField& CT =
|
||||||
|
U_.db().lookupObject<volSymmTensorField>("CT");
|
||||||
|
|
||||||
|
Gk =
|
||||||
|
(0.5*rho_)*mag(U_)*(U_ & CT & U_)
|
||||||
|
+ Csk*betav*turbulence_.muEff()*sqr(Aw_)*magSqr(U_);
|
||||||
|
}
|
||||||
|
|
||||||
|
return tGk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -50,7 +50,12 @@ Foam::XiEqModels::Gulder::Gulder
|
|||||||
:
|
:
|
||||||
XiEqModel(XiEqProperties, thermo, turbulence, Su),
|
XiEqModel(XiEqProperties, thermo, turbulence, Su),
|
||||||
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
|
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
|
||||||
SuMin_(0.01*Su.average())
|
SuMin_(0.01*Su.average()),
|
||||||
|
uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))),
|
||||||
|
subGridSchelkin_
|
||||||
|
(
|
||||||
|
readBool(XiEqModelCoeffs_.lookup("subGridSchelkin"))
|
||||||
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -67,9 +72,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const
|
|||||||
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
||||||
const volScalarField& epsilon = turbulence_.epsilon();
|
const volScalarField& epsilon = turbulence_.epsilon();
|
||||||
|
|
||||||
if (subGridSchelkin())
|
if (subGridSchelkin_)
|
||||||
{
|
{
|
||||||
up.internalField() += calculateSchelkinEffect();
|
up.internalField() += calculateSchelkinEffect(uPrimeCoef_);
|
||||||
}
|
}
|
||||||
|
|
||||||
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
||||||
|
|||||||
@ -61,6 +61,12 @@ class Gulder
|
|||||||
//- Minimum laminar burning velocity
|
//- Minimum laminar burning velocity
|
||||||
const dimensionedScalar SuMin_;
|
const dimensionedScalar SuMin_;
|
||||||
|
|
||||||
|
//- Schelkin effect Model constant
|
||||||
|
scalar uPrimeCoef_;
|
||||||
|
|
||||||
|
//- Use sub-grid Schelkin effect
|
||||||
|
bool subGridSchelkin_;
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
|
|||||||
@ -53,6 +53,11 @@ Foam::XiEqModels::SCOPEXiEq::SCOPEXiEq
|
|||||||
XiEqExp_(readScalar(XiEqModelCoeffs_.lookup("XiEqExp"))),
|
XiEqExp_(readScalar(XiEqModelCoeffs_.lookup("XiEqExp"))),
|
||||||
lCoef_(readScalar(XiEqModelCoeffs_.lookup("lCoef"))),
|
lCoef_(readScalar(XiEqModelCoeffs_.lookup("lCoef"))),
|
||||||
SuMin_(0.01*Su.average()),
|
SuMin_(0.01*Su.average()),
|
||||||
|
uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))),
|
||||||
|
subGridSchelkin_
|
||||||
|
(
|
||||||
|
readBool(XiEqModelCoeffs_.lookup("subGridSchelkin"))
|
||||||
|
),
|
||||||
MaModel
|
MaModel
|
||||||
(
|
(
|
||||||
IOdictionary
|
IOdictionary
|
||||||
@ -84,9 +89,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
|||||||
const volScalarField& epsilon = turbulence_.epsilon();
|
const volScalarField& epsilon = turbulence_.epsilon();
|
||||||
|
|
||||||
volScalarField up(sqrt((2.0/3.0)*k));
|
volScalarField up(sqrt((2.0/3.0)*k));
|
||||||
if (subGridSchelkin())
|
if (subGridSchelkin_)
|
||||||
{
|
{
|
||||||
up.internalField() += calculateSchelkinEffect();
|
up.internalField() += calculateSchelkinEffect(uPrimeCoef_);
|
||||||
}
|
}
|
||||||
|
|
||||||
volScalarField l(lCoef_*sqrt(3.0/2.0)*up*k/epsilon);
|
volScalarField l(lCoef_*sqrt(3.0/2.0)*up*k/epsilon);
|
||||||
@ -152,6 +157,8 @@ bool Foam::XiEqModels::SCOPEXiEq::read(const dictionary& XiEqProperties)
|
|||||||
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
|
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
|
||||||
XiEqModelCoeffs_.lookup("XiEqExp") >> XiEqExp_;
|
XiEqModelCoeffs_.lookup("XiEqExp") >> XiEqExp_;
|
||||||
XiEqModelCoeffs_.lookup("lCoef") >> lCoef_;
|
XiEqModelCoeffs_.lookup("lCoef") >> lCoef_;
|
||||||
|
XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_;
|
||||||
|
XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -70,6 +70,12 @@ class SCOPEXiEq
|
|||||||
//- Minimum Su
|
//- Minimum Su
|
||||||
dimensionedScalar SuMin_;
|
dimensionedScalar SuMin_;
|
||||||
|
|
||||||
|
//- Schelkin effect Model constant
|
||||||
|
scalar uPrimeCoef_;
|
||||||
|
|
||||||
|
//- Use sub-grid Schelkin effect
|
||||||
|
bool subGridSchelkin_;
|
||||||
|
|
||||||
//- The SCOPE laminar flame speed model used to obtain the
|
//- The SCOPE laminar flame speed model used to obtain the
|
||||||
// Marstein number. Note: the laminar flame speed need not be
|
// Marstein number. Note: the laminar flame speed need not be
|
||||||
// obtained form the same model.
|
// obtained form the same model.
|
||||||
|
|||||||
@ -77,11 +77,6 @@ Foam::XiEqModel::XiEqModel
|
|||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
Su.mesh()
|
Su.mesh()
|
||||||
),
|
|
||||||
uPrimeCoef_(XiEqModelCoeffs_.lookupOrDefault<scalar>("uPrimeCoef", 0.0)),
|
|
||||||
subGridSchelkin_
|
|
||||||
(
|
|
||||||
XiEqModelCoeffs_.lookupOrDefault<bool>("subGridSchelkin", false)
|
|
||||||
)
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -98,10 +93,6 @@ bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
|
|||||||
{
|
{
|
||||||
XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
|
XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
|
||||||
|
|
||||||
uPrimeCoef_ = XiEqModelCoeffs_.lookupOrDefault<scalar>("uPrimeCoef", 0.0);
|
|
||||||
subGridSchelkin_ =
|
|
||||||
XiEqModelCoeffs_.lookupOrDefault<bool>("subGridSchelkin", false);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +110,7 @@ void Foam::XiEqModel::writeFields() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::XiEqModel::calculateSchelkinEffect() const
|
Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
|
||||||
{
|
{
|
||||||
const fvMesh& mesh = Su_.mesh();
|
const fvMesh& mesh = Su_.mesh();
|
||||||
|
|
||||||
@ -188,7 +179,7 @@ Foam::XiEqModel::calculateSchelkinEffect() const
|
|||||||
|
|
||||||
const scalarField cellWidth(pow(mesh.V(), 1.0/3.0));
|
const scalarField cellWidth(pow(mesh.V(), 1.0/3.0));
|
||||||
|
|
||||||
const scalarField upLocal(uPrimeCoef_*sqrt((U & CT & U)*cellWidth));
|
const scalarField upLocal(uPrimeCoef*sqrt((U & CT & U)*cellWidth));
|
||||||
|
|
||||||
const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0));
|
const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0));
|
||||||
|
|
||||||
|
|||||||
@ -80,12 +80,6 @@ protected:
|
|||||||
//
|
//
|
||||||
volSymmTensorField nsv_;
|
volSymmTensorField nsv_;
|
||||||
|
|
||||||
//- Schelkin effect Model constant
|
|
||||||
scalar uPrimeCoef_;
|
|
||||||
|
|
||||||
//- Use sub-grid Schelkin effect
|
|
||||||
bool subGridSchelkin_;
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -162,14 +156,9 @@ public:
|
|||||||
return turbulence_.muEff();
|
return turbulence_.muEff();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return state of the sub-grid Schelkin effect
|
|
||||||
bool subGridSchelkin() const
|
|
||||||
{
|
|
||||||
return subGridSchelkin_;
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Return the sub-grid Schelkin effect
|
//- Return the sub-grid Schelkin effect
|
||||||
tmp<volScalarField> calculateSchelkinEffect() const;
|
tmp<volScalarField> calculateSchelkinEffect(const scalar) const;
|
||||||
|
|
||||||
//- Update properties from given dictionary
|
//- Update properties from given dictionary
|
||||||
virtual bool read(const dictionary& XiEqProperties) = 0;
|
virtual bool read(const dictionary& XiEqProperties) = 0;
|
||||||
|
|||||||
@ -44,19 +44,22 @@ namespace regionModels
|
|||||||
void Foam::regionModels::regionModel::constructMeshObjects()
|
void Foam::regionModels::regionModel::constructMeshObjects()
|
||||||
{
|
{
|
||||||
// construct region mesh
|
// construct region mesh
|
||||||
regionMeshPtr_.reset
|
if (!time_.foundObject<fvMesh>(regionName_))
|
||||||
(
|
{
|
||||||
new fvMesh
|
regionMeshPtr_.reset
|
||||||
(
|
(
|
||||||
IOobject
|
new fvMesh
|
||||||
(
|
(
|
||||||
lookup("regionName"),
|
IOobject
|
||||||
time_.timeName(),
|
(
|
||||||
time_,
|
regionName_,
|
||||||
IOobject::MUST_READ
|
time_.timeName(),
|
||||||
|
time_,
|
||||||
|
IOobject::MUST_READ
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
);
|
||||||
);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -66,19 +69,22 @@ void Foam::regionModels::regionModel::constructMeshObjects
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
// construct region mesh
|
// construct region mesh
|
||||||
regionMeshPtr_.reset
|
if (!time_.foundObject<fvMesh>(regionName_))
|
||||||
(
|
{
|
||||||
new fvMesh
|
regionMeshPtr_.reset
|
||||||
(
|
(
|
||||||
IOobject
|
new fvMesh
|
||||||
(
|
(
|
||||||
dict.lookup("regionName"),
|
IOobject
|
||||||
time_.timeName(),
|
(
|
||||||
time_,
|
regionName_,
|
||||||
IOobject::MUST_READ
|
time_.timeName(),
|
||||||
|
time_,
|
||||||
|
IOobject::MUST_READ
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
);
|
||||||
);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -109,11 +115,21 @@ void Foam::regionModels::regionModel::initialise()
|
|||||||
|
|
||||||
nBoundaryFaces += regionPatch.faceCells().size();
|
nBoundaryFaces += regionPatch.faceCells().size();
|
||||||
|
|
||||||
const mappedWallPolyPatch& mapPatch =
|
const mappedPatchBase& mapPatch =
|
||||||
refCast<const mappedWallPolyPatch>(regionPatch);
|
refCast<const mappedPatchBase>(regionPatch);
|
||||||
|
|
||||||
const label primaryPatchI = mapPatch.samplePolyPatch().index();
|
if
|
||||||
primaryPatchIDs.append(primaryPatchI);
|
(
|
||||||
|
primaryMesh_.time().foundObject<polyMesh>
|
||||||
|
(
|
||||||
|
mapPatch.sampleRegion()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
|
||||||
|
const label primaryPatchI = mapPatch.samplePolyPatch().index();
|
||||||
|
primaryPatchIDs.append(primaryPatchI);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,7 +213,8 @@ Foam::regionModels::regionModel::regionModel(const fvMesh& mesh)
|
|||||||
regionMeshPtr_(NULL),
|
regionMeshPtr_(NULL),
|
||||||
coeffs_(dictionary::null),
|
coeffs_(dictionary::null),
|
||||||
primaryPatchIDs_(),
|
primaryPatchIDs_(),
|
||||||
intCoupledPatchIDs_()
|
intCoupledPatchIDs_(),
|
||||||
|
regionName_("none")
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -228,7 +245,8 @@ Foam::regionModels::regionModel::regionModel
|
|||||||
regionMeshPtr_(NULL),
|
regionMeshPtr_(NULL),
|
||||||
coeffs_(subOrEmptyDict(modelName + "Coeffs")),
|
coeffs_(subOrEmptyDict(modelName + "Coeffs")),
|
||||||
primaryPatchIDs_(),
|
primaryPatchIDs_(),
|
||||||
intCoupledPatchIDs_()
|
intCoupledPatchIDs_(),
|
||||||
|
regionName_(lookup("regionName"))
|
||||||
{
|
{
|
||||||
if (active_)
|
if (active_)
|
||||||
{
|
{
|
||||||
@ -273,7 +291,8 @@ Foam::regionModels::regionModel::regionModel
|
|||||||
regionMeshPtr_(NULL),
|
regionMeshPtr_(NULL),
|
||||||
coeffs_(dict.subOrEmptyDict(modelName + "Coeffs")),
|
coeffs_(dict.subOrEmptyDict(modelName + "Coeffs")),
|
||||||
primaryPatchIDs_(),
|
primaryPatchIDs_(),
|
||||||
intCoupledPatchIDs_()
|
intCoupledPatchIDs_(),
|
||||||
|
regionName_(dict.lookup("regionName"))
|
||||||
{
|
{
|
||||||
if (active_)
|
if (active_)
|
||||||
{
|
{
|
||||||
@ -312,13 +331,6 @@ void Foam::regionModels::regionModel::evolve()
|
|||||||
{
|
{
|
||||||
if (active_)
|
if (active_)
|
||||||
{
|
{
|
||||||
if (primaryMesh_.changing())
|
|
||||||
{
|
|
||||||
FatalErrorIn("regionModel::evolve()")
|
|
||||||
<< "Currently not possible to apply " << modelName_
|
|
||||||
<< " model to moving mesh cases" << nl << abort(FatalError);
|
|
||||||
}
|
|
||||||
|
|
||||||
Info<< "\nEvolving " << modelName_ << " for region "
|
Info<< "\nEvolving " << modelName_ << " for region "
|
||||||
<< regionMesh().name() << endl;
|
<< regionMesh().name() << endl;
|
||||||
|
|
||||||
|
|||||||
@ -117,6 +117,9 @@ protected:
|
|||||||
//- List of patch IDs internally coupled with the primary region
|
//- List of patch IDs internally coupled with the primary region
|
||||||
labelList intCoupledPatchIDs_;
|
labelList intCoupledPatchIDs_;
|
||||||
|
|
||||||
|
//- Region name
|
||||||
|
word regionName_;
|
||||||
|
|
||||||
|
|
||||||
// Protected member functions
|
// Protected member functions
|
||||||
|
|
||||||
|
|||||||
@ -60,7 +60,11 @@ inline const Foam::word& Foam::regionModels::regionModel::modelName() const
|
|||||||
|
|
||||||
inline const Foam::fvMesh& Foam::regionModels::regionModel::regionMesh() const
|
inline const Foam::fvMesh& Foam::regionModels::regionModel::regionMesh() const
|
||||||
{
|
{
|
||||||
if (!regionMeshPtr_.valid())
|
if (time_.foundObject<fvMesh>(regionName_))
|
||||||
|
{
|
||||||
|
return time_.lookupObject<fvMesh>(regionName_);
|
||||||
|
}
|
||||||
|
else if (!regionMeshPtr_.valid())
|
||||||
{
|
{
|
||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
(
|
(
|
||||||
@ -75,7 +79,14 @@ inline const Foam::fvMesh& Foam::regionModels::regionModel::regionMesh() const
|
|||||||
|
|
||||||
inline Foam::fvMesh& Foam::regionModels::regionModel::regionMesh()
|
inline Foam::fvMesh& Foam::regionModels::regionModel::regionMesh()
|
||||||
{
|
{
|
||||||
if (!regionMeshPtr_.valid())
|
if (time_.foundObject<fvMesh>(regionName_))
|
||||||
|
{
|
||||||
|
return const_cast<fvMesh&>
|
||||||
|
(
|
||||||
|
time_.lookupObject<fvMesh>(regionName_)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else if (!regionMeshPtr_.valid())
|
||||||
{
|
{
|
||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
(
|
(
|
||||||
|
|||||||
@ -39,7 +39,6 @@ namespace regionModels
|
|||||||
|
|
||||||
void Foam::regionModels::regionModel1D::constructMeshObjects()
|
void Foam::regionModels::regionModel1D::constructMeshObjects()
|
||||||
{
|
{
|
||||||
const fvMesh& regionMesh = regionMeshPtr_();
|
|
||||||
|
|
||||||
nMagSfPtr_.reset
|
nMagSfPtr_.reset
|
||||||
(
|
(
|
||||||
@ -49,11 +48,11 @@ void Foam::regionModels::regionModel1D::constructMeshObjects()
|
|||||||
(
|
(
|
||||||
"nMagSf",
|
"nMagSf",
|
||||||
time().timeName(),
|
time().timeName(),
|
||||||
regionMesh,
|
regionMesh(),
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
regionMesh,
|
regionMesh(),
|
||||||
dimensionedScalar("zero", dimArea, 0.0)
|
dimensionedScalar("zero", dimArea, 0.0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -163,7 +162,7 @@ bool Foam::regionModels::regionModel1D::read(const dictionary& dict)
|
|||||||
{
|
{
|
||||||
if (regionModel::read(dict))
|
if (regionModel::read(dict))
|
||||||
{
|
{
|
||||||
moveMesh_.readIfPresent("moveMesh", dict);
|
moveMesh_.readIfPresent("moveMesh", coeffs_);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ License
|
|||||||
#include "thermoBaffle2D.H"
|
#include "thermoBaffle2D.H"
|
||||||
|
|
||||||
#include "fvm.H"
|
#include "fvm.H"
|
||||||
|
#include "fvcDiv.H"
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
#include "zeroGradientFvPatchFields.H"
|
#include "zeroGradientFvPatchFields.H"
|
||||||
#include "fvMatrices.H"
|
#include "fvMatrices.H"
|
||||||
@ -58,6 +59,13 @@ bool thermoBaffle2D::read()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool thermoBaffle2D::read(const dictionary& dict)
|
||||||
|
{
|
||||||
|
this->solution().lookup("nNonOrthCorr") >> nNonOrthCorr_;
|
||||||
|
return regionModel1D::read(dict);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void thermoBaffle2D::solveEnergy()
|
void thermoBaffle2D::solveEnergy()
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
@ -128,6 +136,19 @@ void thermoBaffle2D::solveEnergy()
|
|||||||
Q
|
Q
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (moveMesh_)
|
||||||
|
{
|
||||||
|
surfaceScalarField phiMesh
|
||||||
|
(
|
||||||
|
fvc::interpolate(rhoCp*T_)*regionMesh().phi()
|
||||||
|
);
|
||||||
|
|
||||||
|
TEqn -= fvc::div(phiMesh);
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< "T gas min/max = " << min(T_).value() << ", "
|
||||||
|
<< max(T_).value() << endl;
|
||||||
|
|
||||||
TEqn.relax();
|
TEqn.relax();
|
||||||
TEqn.solve();
|
TEqn.solve();
|
||||||
|
|
||||||
@ -157,7 +178,7 @@ thermoBaffle2D::thermoBaffle2D
|
|||||||
regionMesh().time().timeName(),
|
regionMesh().time().timeName(),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
dimensionedScalar
|
dimensionedScalar
|
||||||
@ -175,7 +196,7 @@ thermoBaffle2D::thermoBaffle2D
|
|||||||
regionMesh().time().timeName(),
|
regionMesh().time().timeName(),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
dimensionedScalar
|
dimensionedScalar
|
||||||
@ -209,7 +230,7 @@ thermoBaffle2D::thermoBaffle2D
|
|||||||
regionMesh().time().timeName(),
|
regionMesh().time().timeName(),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
dimensionedScalar
|
dimensionedScalar
|
||||||
@ -227,7 +248,7 @@ thermoBaffle2D::thermoBaffle2D
|
|||||||
regionMesh().time().timeName(),
|
regionMesh().time().timeName(),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
regionMesh(),
|
regionMesh(),
|
||||||
dimensionedScalar
|
dimensionedScalar
|
||||||
|
|||||||
@ -102,9 +102,13 @@ protected:
|
|||||||
|
|
||||||
// Protected member functions
|
// Protected member functions
|
||||||
|
|
||||||
//- Read control parameters from dictionary
|
//- Read control parameters IO dictionary
|
||||||
virtual bool read();
|
virtual bool read();
|
||||||
|
|
||||||
|
//- Read control parameters from dictionary
|
||||||
|
virtual bool read(const dictionary& dict);
|
||||||
|
|
||||||
|
|
||||||
// Equations
|
// Equations
|
||||||
|
|
||||||
//- Solve energy equation
|
//- Solve energy equation
|
||||||
|
|||||||
@ -53,6 +53,13 @@ bool thermoBaffleModel::read()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool thermoBaffleModel::read(const dictionary& dict)
|
||||||
|
{
|
||||||
|
regionModel1D::read(dict);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void thermoBaffleModel::init()
|
void thermoBaffleModel::init()
|
||||||
{
|
{
|
||||||
if (active_)
|
if (active_)
|
||||||
|
|||||||
@ -91,9 +91,12 @@ protected:
|
|||||||
|
|
||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
|
||||||
//- Read control parameters from dictionary
|
//- Read control parameters from IO dictionary
|
||||||
virtual bool read();
|
virtual bool read();
|
||||||
|
|
||||||
|
//- Read control parameters from dictionary
|
||||||
|
virtual bool read(const dictionary&);
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
@ -230,7 +230,7 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
|
|||||||
else //out
|
else //out
|
||||||
{
|
{
|
||||||
this->refGrad()[i] = 0.0;
|
this->refGrad()[i] = 0.0;
|
||||||
this->refValue()[i] = KDelta[i]*q[i] + patchInternalField()()[i];
|
this->refValue()[i] = q[i]/KDelta[i] + patchInternalField()()[i];
|
||||||
this->valueFraction()[i] = 1.0;
|
this->valueFraction()[i] = 1.0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,26 +50,26 @@ instabilityCoeffs
|
|||||||
XiEqModelL
|
XiEqModelL
|
||||||
{
|
{
|
||||||
XiEqModel Gulder;
|
XiEqModel Gulder;
|
||||||
uPrimeCoef 1.0;
|
|
||||||
subGridSchelkin true;
|
|
||||||
|
|
||||||
GulderCoeffs
|
GulderCoeffs
|
||||||
{
|
{
|
||||||
XiEqCoef 0.62;
|
XiEqCoef 0.62;
|
||||||
|
uPrimeCoef 1.0;
|
||||||
|
subGridSchelkin true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
XiEqModelH
|
XiEqModelH
|
||||||
{
|
{
|
||||||
XiEqModel SCOPEXiEq;
|
XiEqModel SCOPEXiEq;
|
||||||
uPrimeCoef 1.0;
|
|
||||||
subGridSchelkin true;
|
|
||||||
|
|
||||||
SCOPEXiEqCoeffs
|
SCOPEXiEqCoeffs
|
||||||
{
|
{
|
||||||
XiEqCoef 1.6;
|
XiEqCoef 1.6;
|
||||||
XiEqExp 0.33333;
|
XiEqExp 0.33333;
|
||||||
lCoef 0.336;
|
lCoef 0.336;
|
||||||
|
uPrimeCoef 1.0;
|
||||||
|
subGridSchelkin true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -60,7 +60,7 @@ laplacianSchemes
|
|||||||
laplacian(muEff,U) Gauss linear limited 0.333;
|
laplacian(muEff,U) Gauss linear limited 0.333;
|
||||||
laplacian(DkEff,k) Gauss linear limited 0.333;
|
laplacian(DkEff,k) Gauss linear limited 0.333;
|
||||||
laplacian(DepsilonEff,epsilon) Gauss linear limited 0.333;
|
laplacian(DepsilonEff,epsilon) Gauss linear limited 0.333;
|
||||||
laplacian((rho*inv((((1)*A(U))+((((0.5*rho)*CR)*mag(U))+((((Csu*(1))*betav)*muEff)*sqr(Aw)))))),p) Gauss linear limited 0.333;
|
laplacian((rho*inv((((1)*A(U))+tDragDcu))),p) Gauss linear limited 0.333;
|
||||||
laplacian(Db,b) Gauss linear limited 0.333;
|
laplacian(Db,b) Gauss linear limited 0.333;
|
||||||
laplacian(Db,ft) Gauss linear limited 0.333;
|
laplacian(Db,ft) Gauss linear limited 0.333;
|
||||||
laplacian(Db,h) Gauss linear limited 0.333;
|
laplacian(Db,h) Gauss linear limited 0.333;
|
||||||
|
|||||||
Reference in New Issue
Block a user