mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -473,8 +473,9 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
cloudName + "Properties",
|
||||
mesh_.time().constant(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ_IF_MODIFIED,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::READ_MODIFIED,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::REGISTER
|
||||
)
|
||||
),
|
||||
typeIdList_(particleProperties_.lookup("typeIdList")),
|
||||
@ -488,7 +489,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -496,7 +498,7 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":collisionSelectionRemainder",
|
||||
IOobject::scopedName(this->name(), "collisionSelectionRemainder"),
|
||||
mesh_.time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
@ -511,7 +513,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -523,7 +526,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -535,7 +539,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -547,7 +552,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -559,7 +565,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -571,7 +578,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -583,7 +591,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -595,7 +604,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -607,7 +617,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -621,7 +632,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -633,7 +645,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_
|
||||
),
|
||||
@ -698,8 +711,9 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
cloudName + "Properties",
|
||||
mesh_.time().constant(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ_IF_MODIFIED,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::READ_MODIFIED,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::REGISTER
|
||||
)
|
||||
),
|
||||
typeIdList_(particleProperties_.lookup("typeIdList")),
|
||||
@ -713,7 +727,8 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimensionSet(0, 3, -1, 0, 0), Zero),
|
||||
@ -723,7 +738,7 @@ Foam::DSMCCloud<ParcelType>::DSMCCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":collisionSelectionRemainder",
|
||||
IOobject::scopedName(this->name(), "collisionSelectionRemainder"),
|
||||
mesh_.time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
|
||||
@ -32,24 +32,14 @@ License
|
||||
Foam::tmp<Foam::DimensionedField<Foam::vector, Foam::volMesh>>
|
||||
Foam::coalCloudList::UTrans() const
|
||||
{
|
||||
tmp<volVectorField::Internal> tfld
|
||||
auto tfld = volVectorField::Internal::New
|
||||
(
|
||||
new volVectorField::Internal
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"UTransEff",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh_,
|
||||
dimensionedVector(dimMass*dimVelocity, Zero)
|
||||
)
|
||||
"UTransEff",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedVector(dimMass*dimVelocity, Zero)
|
||||
);
|
||||
|
||||
volVectorField::Internal& fld = tfld.ref();
|
||||
auto& fld = tfld.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
@ -65,8 +55,8 @@ Foam::tmp<Foam::fvVectorMatrix> Foam::coalCloudList::SU
|
||||
volVectorField& U
|
||||
) const
|
||||
{
|
||||
tmp<fvVectorMatrix> tfvm(new fvVectorMatrix(U, dimForce));
|
||||
fvVectorMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvVectorMatrix>::New(U, dimForce);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
@ -80,24 +70,14 @@ Foam::tmp<Foam::fvVectorMatrix> Foam::coalCloudList::SU
|
||||
Foam::tmp<Foam::DimensionedField<Foam::scalar, Foam::volMesh>>
|
||||
Foam::coalCloudList::hsTrans() const
|
||||
{
|
||||
tmp<volScalarField::Internal> tfld
|
||||
auto tfld = volScalarField::Internal::New
|
||||
(
|
||||
new volScalarField::Internal
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"hsTransEff",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimEnergy, Zero)
|
||||
)
|
||||
"hsTransEff",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimEnergy, Zero)
|
||||
);
|
||||
|
||||
volScalarField::Internal& fld = tfld.ref();
|
||||
auto& fld = tfld.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
@ -113,8 +93,8 @@ Foam::tmp<Foam::fvScalarMatrix> Foam::coalCloudList::Sh
|
||||
volScalarField& hs
|
||||
) const
|
||||
{
|
||||
tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(hs, dimEnergy/dimTime));
|
||||
fvScalarMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvScalarMatrix>::New(hs, dimEnergy/dimTime);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
@ -131,8 +111,8 @@ Foam::tmp<Foam::fvScalarMatrix> Foam::coalCloudList::SYi
|
||||
volScalarField& Yi
|
||||
) const
|
||||
{
|
||||
tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(Yi, dimMass/dimTime));
|
||||
fvScalarMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvScalarMatrix>::New(Yi, dimMass/dimTime);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
@ -146,24 +126,14 @@ Foam::tmp<Foam::fvScalarMatrix> Foam::coalCloudList::SYi
|
||||
Foam::tmp<Foam::DimensionedField<Foam::scalar, Foam::volMesh>>
|
||||
Foam::coalCloudList::rhoTrans() const
|
||||
{
|
||||
tmp<volScalarField::Internal> tfld
|
||||
auto tfld = volScalarField::Internal::New
|
||||
(
|
||||
new volScalarField::Internal
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rhoTransEff",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimMass, Zero)
|
||||
)
|
||||
"rhoTransEff",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimMass, Zero)
|
||||
);
|
||||
|
||||
volScalarField::Internal& fld = tfld.ref();
|
||||
auto& fld = tfld.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
@ -177,29 +147,17 @@ Foam::coalCloudList::rhoTrans() const
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Foam::tmp<Foam::DimensionedField<Foam::scalar, Foam::volMesh>>
|
||||
Foam::coalCloudList::Srho() const
|
||||
{
|
||||
tmp<volScalarField::Internal> tfld
|
||||
auto tfld = volScalarField::Internal::New
|
||||
(
|
||||
new volScalarField::Internal
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rhoTransEff",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimDensity/dimTime, Zero)
|
||||
)
|
||||
"rhoTransEff",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimDensity/dimTime, Zero)
|
||||
);
|
||||
|
||||
volScalarField::Internal& fld = tfld.ref();
|
||||
auto& fld = tfld.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
@ -216,24 +174,14 @@ Foam::coalCloudList::Srho
|
||||
const label i
|
||||
) const
|
||||
{
|
||||
tmp<volScalarField::Internal> tfld
|
||||
auto tfld = volScalarField::Internal::New
|
||||
(
|
||||
new volScalarField::Internal
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"rhoTransEff",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimDensity/dimTime, Zero)
|
||||
)
|
||||
"rhoTransEff",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimDensity/dimTime, Zero)
|
||||
);
|
||||
|
||||
volScalarField::Internal& fld = tfld.ref();
|
||||
auto& fld = tfld.ref();
|
||||
|
||||
forAll(*this, j)
|
||||
{
|
||||
@ -249,8 +197,8 @@ Foam::tmp<Foam::fvScalarMatrix> Foam::coalCloudList::Srho
|
||||
volScalarField& rho
|
||||
) const
|
||||
{
|
||||
tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(rho, dimMass/dimTime));
|
||||
fvScalarMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvScalarMatrix>::New(rho, dimMass/dimTime);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
|
||||
@ -360,8 +360,9 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
||||
cloudName + "Properties",
|
||||
mesh_.time().constant(),
|
||||
mesh_,
|
||||
IOobject::MUST_READ_IF_MODIFIED,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::READ_MODIFIED,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::REGISTER
|
||||
)
|
||||
),
|
||||
outputProperties_
|
||||
@ -373,7 +374,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
||||
"uniform"/cloud::prefix/cloudName,
|
||||
mesh_,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::REGISTER
|
||||
)
|
||||
),
|
||||
solution_(mesh_, particleProperties_.subDict("solution")),
|
||||
@ -438,7 +440,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimMass, Zero)
|
||||
@ -454,7 +457,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedVector(dimMass*dimVelocity, Zero)
|
||||
@ -470,7 +474,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimMass, Zero)
|
||||
@ -571,7 +576,7 @@ Foam::KinematicCloud<CloudType>::KinematicCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name + ":UCoeff",
|
||||
IOobject::scopedName(this->name(), "UCoeff"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
|
||||
@ -515,24 +515,15 @@ Foam::KinematicCloud<CloudType>::Srhok() const
|
||||
return rhokTrans()/this->db().time().deltaT()/this->mesh().V();
|
||||
}
|
||||
|
||||
return
|
||||
tmp<volScalarField::Internal>::New
|
||||
return tmp<volScalarField::Internal>::New
|
||||
(
|
||||
this->newIOobject(IOobject::scopedName(this->name(), "rhokTrans")),
|
||||
this->mesh(),
|
||||
dimensionedScalar
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::scopedName(this->name(), "rhokTrans"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar
|
||||
(
|
||||
rhokTrans().dimensions()/dimTime/dimVolume, Zero
|
||||
)
|
||||
);
|
||||
rhokTrans().dimensions()/dimTime/dimVolume, Zero
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -571,8 +562,8 @@ const
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<fvVectorMatrix> tfvm(new fvVectorMatrix(U, dim));
|
||||
fvVectorMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvVectorMatrix>::New(U, dim);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
fvm.source() = -UTrans()/(this->db().time().deltaT());
|
||||
|
||||
@ -588,26 +579,15 @@ template<class CloudType>
|
||||
inline const Foam::tmp<Foam::volScalarField>
|
||||
Foam::KinematicCloud<CloudType>::vDotSweep() const
|
||||
{
|
||||
tmp<volScalarField> tvDotSweep
|
||||
auto tvDotSweep = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::scopedName(this->name(), "vDotSweep"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless/dimTime, Zero),
|
||||
fvPatchFieldBase::extrapolatedCalculatedType()
|
||||
)
|
||||
this->newIOobject(IOobject::scopedName(this->name(), "vDotSweep")),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless/dimTime, Zero),
|
||||
fvPatchFieldBase::extrapolatedCalculatedType()
|
||||
);
|
||||
auto& vDotSweep = tvDotSweep.ref();
|
||||
|
||||
volScalarField& vDotSweep = tvDotSweep.ref();
|
||||
for (const parcelType& p : *this)
|
||||
{
|
||||
const label celli = p.cell();
|
||||
@ -626,26 +606,15 @@ template<class CloudType>
|
||||
inline const Foam::tmp<Foam::volScalarField>
|
||||
Foam::KinematicCloud<CloudType>::theta() const
|
||||
{
|
||||
tmp<volScalarField> ttheta
|
||||
auto ttheta = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::scopedName(this->name(), "theta"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless, Zero),
|
||||
fvPatchFieldBase::extrapolatedCalculatedType()
|
||||
)
|
||||
this->newIOobject(IOobject::scopedName(this->name(), "theta")),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless, Zero),
|
||||
fvPatchFieldBase::extrapolatedCalculatedType()
|
||||
);
|
||||
auto& theta = ttheta.ref();
|
||||
|
||||
volScalarField& theta = ttheta.ref();
|
||||
for (const parcelType& p : *this)
|
||||
{
|
||||
const label celli = p.cell();
|
||||
@ -664,22 +633,11 @@ template<class CloudType>
|
||||
inline const Foam::tmp<Foam::volScalarField>
|
||||
Foam::KinematicCloud<CloudType>::alpha() const
|
||||
{
|
||||
tmp<volScalarField> talpha
|
||||
auto talpha = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::scopedName(this->name(), "alpha"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless, Zero)
|
||||
)
|
||||
this->newIOobject(IOobject::scopedName(this->name(), "alpha")),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless, Zero)
|
||||
);
|
||||
|
||||
scalarField& alpha = talpha.ref().primitiveFieldRef();
|
||||
@ -700,22 +658,11 @@ template<class CloudType>
|
||||
inline const Foam::tmp<Foam::volScalarField>
|
||||
Foam::KinematicCloud<CloudType>::rhoEff() const
|
||||
{
|
||||
tmp<volScalarField> trhoEff
|
||||
auto trhoEff = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject::scopedName(this->name(), "rhoEff"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimDensity, Zero)
|
||||
)
|
||||
this->newIOobject(IOobject::scopedName(this->name(), "rhoEff")),
|
||||
mesh_,
|
||||
dimensionedScalar(dimDensity, Zero)
|
||||
);
|
||||
|
||||
scalarField& rhoEff = trhoEff.ref().primitiveFieldRef();
|
||||
|
||||
@ -120,7 +120,15 @@ Foam::ReactingCloud<CloudType>::ReactingCloud
|
||||
// Set storage for mass source fields and initialise to zero
|
||||
forAll(rhoTrans_, i)
|
||||
{
|
||||
const word& specieName = thermo.carrier().species()[i];
|
||||
const word fieldName
|
||||
(
|
||||
IOobject::scopedName
|
||||
(
|
||||
this->name(),
|
||||
"rhoTrans_" + thermo.carrier().species()[i]
|
||||
)
|
||||
);
|
||||
|
||||
rhoTrans_.set
|
||||
(
|
||||
i,
|
||||
@ -128,11 +136,12 @@ Foam::ReactingCloud<CloudType>::ReactingCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":rhoTrans_" + specieName,
|
||||
fieldName,
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimMass, Zero)
|
||||
@ -164,7 +173,15 @@ Foam::ReactingCloud<CloudType>::ReactingCloud
|
||||
{
|
||||
forAll(c.rhoTrans_, i)
|
||||
{
|
||||
const word& specieName = this->thermo().carrier().species()[i];
|
||||
const word fieldName
|
||||
(
|
||||
IOobject::scopedName
|
||||
(
|
||||
this->name(),
|
||||
"rhoTrans_" + this->thermo().carrier().species()[i]
|
||||
)
|
||||
);
|
||||
|
||||
rhoTrans_.set
|
||||
(
|
||||
i,
|
||||
@ -172,7 +189,7 @@ Foam::ReactingCloud<CloudType>::ReactingCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":rhoTrans_" + specieName,
|
||||
fieldName,
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -144,25 +145,14 @@ inline Foam::tmp<Foam::fvScalarMatrix> Foam::ReactingCloud<CloudType>::SYi
|
||||
{
|
||||
if (this->solution().semiImplicit("Yi"))
|
||||
{
|
||||
tmp<volScalarField> trhoTrans
|
||||
auto trhoTrans = volScalarField::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":rhoTrans",
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimMass/dimTime/dimVolume, Zero)
|
||||
)
|
||||
IOobject::scopedName(this->name(), "rhoTrans"),
|
||||
IOobject::NO_REGISTER,
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimMass/dimTime/dimVolume, Zero)
|
||||
);
|
||||
|
||||
volScalarField& sourceField = trhoTrans.ref();
|
||||
auto& sourceField = trhoTrans.ref();
|
||||
|
||||
sourceField.primitiveFieldRef() =
|
||||
rhoTrans_[i]/(this->db().time().deltaTValue()*this->mesh().V());
|
||||
@ -175,8 +165,8 @@ inline Foam::tmp<Foam::fvScalarMatrix> Foam::ReactingCloud<CloudType>::SYi
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(Yi, dimMass/dimTime));
|
||||
fvScalarMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvScalarMatrix>::New(Yi, dimMass/dimTime);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
fvm.source() = -rhoTrans_[i]/this->db().time().deltaTValue();
|
||||
|
||||
@ -192,30 +182,20 @@ template<class CloudType>
|
||||
inline Foam::tmp<Foam::DimensionedField<Foam::scalar, Foam::volMesh>>
|
||||
Foam::ReactingCloud<CloudType>::Srho(const label i) const
|
||||
{
|
||||
tmp<volScalarField::Internal> tRhoi
|
||||
auto tRhoi = volScalarField::Internal::New
|
||||
(
|
||||
new volScalarField::Internal
|
||||
IOobject::scopedName(this->name(), "rhoTrans"),
|
||||
IOobject::NO_REGISTER,
|
||||
this->mesh(),
|
||||
dimensionedScalar
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":rhoTrans",
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar
|
||||
(
|
||||
rhoTrans_[0].dimensions()/dimTime/dimVolume, Zero
|
||||
)
|
||||
rhoTrans_[0].dimensions()/dimTime/dimVolume, Zero
|
||||
)
|
||||
);
|
||||
scalarField& rhoi = tRhoi.ref();
|
||||
|
||||
if (this->solution().coupled())
|
||||
{
|
||||
scalarField& rhoi = tRhoi.ref();
|
||||
rhoi = rhoTrans_[i]/(this->db().time().deltaTValue()*this->mesh().V());
|
||||
}
|
||||
|
||||
@ -227,30 +207,20 @@ template<class CloudType>
|
||||
inline Foam::tmp<Foam::DimensionedField<Foam::scalar, Foam::volMesh>>
|
||||
Foam::ReactingCloud<CloudType>::Srho() const
|
||||
{
|
||||
tmp<volScalarField::Internal> trhoTrans
|
||||
auto trhoTrans = volScalarField::Internal::New
|
||||
(
|
||||
new volScalarField::Internal
|
||||
IOobject::scopedName(this->name(), "rhoTrans"),
|
||||
IOobject::NO_REGISTER,
|
||||
this->mesh(),
|
||||
dimensionedScalar
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":rhoTrans",
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar
|
||||
(
|
||||
rhoTrans_[0].dimensions()/dimTime/dimVolume, Zero
|
||||
)
|
||||
rhoTrans_[0].dimensions()/dimTime/dimVolume, Zero
|
||||
)
|
||||
);
|
||||
scalarField& sourceField = trhoTrans.ref();
|
||||
|
||||
if (this->solution().coupled())
|
||||
{
|
||||
scalarField& sourceField = trhoTrans.ref();
|
||||
forAll(rhoTrans_, i)
|
||||
{
|
||||
sourceField += rhoTrans_[i];
|
||||
@ -269,29 +239,17 @@ Foam::ReactingCloud<CloudType>::Srho(volScalarField& rho) const
|
||||
{
|
||||
if (this->solution().coupled())
|
||||
{
|
||||
tmp<volScalarField> trhoTrans
|
||||
auto trhoTrans = volScalarField::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":rhoTrans",
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimMass/dimTime/dimVolume, Zero)
|
||||
)
|
||||
IOobject::scopedName(this->name(), "rhoTrans"),
|
||||
IOobject::NO_REGISTER,
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimMass/dimTime/dimVolume, Zero)
|
||||
);
|
||||
|
||||
scalarField& sourceField = trhoTrans.ref();
|
||||
|
||||
if (this->solution().semiImplicit("rho"))
|
||||
{
|
||||
|
||||
forAll(rhoTrans_, i)
|
||||
{
|
||||
sourceField += rhoTrans_[i];
|
||||
@ -302,8 +260,8 @@ Foam::ReactingCloud<CloudType>::Srho(volScalarField& rho) const
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(rho, dimMass/dimTime));
|
||||
fvScalarMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvScalarMatrix>::New(rho, dimMass/dimTime);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
forAll(rhoTrans_, i)
|
||||
{
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -64,11 +64,12 @@ void Foam::ThermoCloud<CloudType>::setModels()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radAreaP",
|
||||
IOobject::scopedName(this->name(), "radAreaP"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimArea, Zero)
|
||||
@ -81,11 +82,12 @@ void Foam::ThermoCloud<CloudType>::setModels()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radT4",
|
||||
IOobject::scopedName(this->name(), "radT4"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(pow4(dimTemperature), Zero)
|
||||
@ -98,11 +100,12 @@ void Foam::ThermoCloud<CloudType>::setModels()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radAreaPT4",
|
||||
IOobject::scopedName(this->name(), "radAreaPT4"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(sqr(dimLength)*pow4(dimTemperature), Zero)
|
||||
@ -164,11 +167,12 @@ Foam::ThermoCloud<CloudType>::ThermoCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":hsTrans",
|
||||
IOobject::scopedName(this->name(), "hsTrans"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimEnergy, Zero)
|
||||
@ -180,11 +184,12 @@ Foam::ThermoCloud<CloudType>::ThermoCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":hsCoeff",
|
||||
IOobject::scopedName(this->name(), "hsCoeff"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimEnergy/dimTemperature, Zero)
|
||||
@ -235,7 +240,7 @@ Foam::ThermoCloud<CloudType>::ThermoCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":hsTrans",
|
||||
IOobject::scopedName(this->name(), "hsTrans"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
@ -251,7 +256,7 @@ Foam::ThermoCloud<CloudType>::ThermoCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":hsCoeff",
|
||||
IOobject::scopedName(this->name(), "hsCoeff"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
@ -270,7 +275,7 @@ Foam::ThermoCloud<CloudType>::ThermoCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radAreaP",
|
||||
IOobject::scopedName(this->name(), "radAreaP"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
@ -287,7 +292,7 @@ Foam::ThermoCloud<CloudType>::ThermoCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radT4",
|
||||
IOobject::scopedName(this->name(), "radT4"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
@ -304,7 +309,7 @@ Foam::ThermoCloud<CloudType>::ThermoCloud
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radAreaPT4",
|
||||
IOobject::scopedName(this->name(), "radAreaPT4"),
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2022 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -260,8 +260,8 @@ Foam::ThermoCloud<CloudType>::Sh(volScalarField& hs) const
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(hs, dimEnergy/dimTime));
|
||||
fvScalarMatrix& fvm = tfvm.ref();
|
||||
auto tfvm = tmp<fvScalarMatrix>::New(hs, dimEnergy/dimTime);
|
||||
auto& fvm = tfvm.ref();
|
||||
|
||||
fvm.source() = -hsTrans()/(this->db().time().deltaT());
|
||||
|
||||
@ -276,22 +276,14 @@ Foam::ThermoCloud<CloudType>::Sh(volScalarField& hs) const
|
||||
template<class CloudType>
|
||||
inline Foam::tmp<Foam::volScalarField> Foam::ThermoCloud<CloudType>::Ep() const
|
||||
{
|
||||
tmp<volScalarField> tEp
|
||||
auto tEp = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
this->newIOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radiation:Ep",
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
)
|
||||
IOobject::scopedName(this->name(), "radiation", "Ep")
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
);
|
||||
|
||||
if (radiation_)
|
||||
@ -312,22 +304,14 @@ inline Foam::tmp<Foam::volScalarField> Foam::ThermoCloud<CloudType>::Ep() const
|
||||
template<class CloudType>
|
||||
inline Foam::tmp<Foam::volScalarField> Foam::ThermoCloud<CloudType>::ap() const
|
||||
{
|
||||
tmp<volScalarField> tap
|
||||
auto tap = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
this->newIOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radiation:ap",
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
)
|
||||
IOobject::scopedName(this->name(), "radiation", "ap")
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
);
|
||||
|
||||
if (radiation_)
|
||||
@ -349,22 +333,14 @@ template<class CloudType>
|
||||
inline Foam::tmp<Foam::volScalarField>
|
||||
Foam::ThermoCloud<CloudType>::sigmap() const
|
||||
{
|
||||
tmp<volScalarField> tsigmap
|
||||
auto tsigmap = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
this->newIOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":radiation:sigmap",
|
||||
this->db().time().timeName(),
|
||||
this->db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
)
|
||||
IOobject::scopedName(this->name(), "radiation", "sigmap")
|
||||
),
|
||||
this->mesh(),
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
);
|
||||
|
||||
if (radiation_)
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -73,7 +73,7 @@ inline Foam::KinematicParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":volumeAverage",
|
||||
IOobject::scopedName(cloud.name(), "volumeAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -87,7 +87,7 @@ inline Foam::KinematicParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":radiusAverage",
|
||||
IOobject::scopedName(cloud.name(), "radiusAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -101,7 +101,7 @@ inline Foam::KinematicParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":rhoAverage",
|
||||
IOobject::scopedName(cloud.name(), "rhoAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -115,7 +115,7 @@ inline Foam::KinematicParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":uAverage",
|
||||
IOobject::scopedName(cloud.name(), "uAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -129,7 +129,7 @@ inline Foam::KinematicParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":uSqrAverage",
|
||||
IOobject::scopedName(cloud.name(), "uSqrAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -143,7 +143,7 @@ inline Foam::KinematicParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":frequencyAverage",
|
||||
IOobject::scopedName(cloud.name(), "frequencyAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -157,7 +157,7 @@ inline Foam::KinematicParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":massAverage",
|
||||
IOobject::scopedName(cloud.name(), "massAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -287,7 +287,7 @@ updateAverages
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":weightAverage",
|
||||
IOobject::scopedName(cloud.name(), "weightAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -366,4 +366,5 @@ updateAverages
|
||||
frequencyAverage_->average(weightAverage);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -45,7 +45,7 @@ inline Foam::MPPICParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":volumeAverage",
|
||||
IOobject::scopedName(cloud.name(), "volumeAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -59,7 +59,7 @@ inline Foam::MPPICParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":radiusAverage",
|
||||
IOobject::scopedName(cloud.name(), "radiusAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -73,7 +73,7 @@ inline Foam::MPPICParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":rhoAverage",
|
||||
IOobject::scopedName(cloud.name(), "rhoAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -87,7 +87,7 @@ inline Foam::MPPICParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":uAverage",
|
||||
IOobject::scopedName(cloud.name(), "uAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -101,7 +101,7 @@ inline Foam::MPPICParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":uSqrAverage",
|
||||
IOobject::scopedName(cloud.name(), "uSqrAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -115,7 +115,7 @@ inline Foam::MPPICParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":frequencyAverage",
|
||||
IOobject::scopedName(cloud.name(), "frequencyAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -129,7 +129,7 @@ inline Foam::MPPICParcel<ParcelType>::trackingData::trackingData
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":massAverage",
|
||||
IOobject::scopedName(cloud.name(), "massAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
@ -164,7 +164,7 @@ inline void Foam::MPPICParcel<ParcelType>::trackingData::updateAverages
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloud.name() + ":weightAverage",
|
||||
IOobject::scopedName(cloud.name(), "weightAverage"),
|
||||
cloud.db().time().timeName(),
|
||||
cloud.mesh()
|
||||
),
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2018 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -39,36 +39,42 @@ void Foam::PatchCollisionDensity<CloudType>::write()
|
||||
{
|
||||
const scalarField z(this->owner().mesh().nCells(), Zero);
|
||||
|
||||
volScalarField
|
||||
(
|
||||
IOobject
|
||||
{
|
||||
volScalarField
|
||||
(
|
||||
this->owner().name() + ":collisionDensity",
|
||||
this->owner().mesh().time().timeName(),
|
||||
this->owner().mesh()
|
||||
),
|
||||
this->owner().mesh(),
|
||||
dimless/dimArea,
|
||||
z,
|
||||
collisionDensity_
|
||||
)
|
||||
.write();
|
||||
this->owner().mesh().newIOobject
|
||||
(
|
||||
IOobject::scopedName
|
||||
(
|
||||
this->owner().name(),
|
||||
"collisionDensity"
|
||||
)
|
||||
),
|
||||
this->owner().mesh(),
|
||||
dimless/dimArea,
|
||||
z,
|
||||
collisionDensity_
|
||||
).write();
|
||||
}
|
||||
|
||||
volScalarField
|
||||
(
|
||||
IOobject
|
||||
{
|
||||
volScalarField
|
||||
(
|
||||
this->owner().name() + ":collisionDensityRate",
|
||||
this->owner().mesh().time().timeName(),
|
||||
this->owner().mesh()
|
||||
),
|
||||
this->owner().mesh(),
|
||||
dimless/dimArea/dimTime,
|
||||
z,
|
||||
(collisionDensity_ - collisionDensity0_)
|
||||
/(this->owner().mesh().time().value() - time0_)
|
||||
)
|
||||
.write();
|
||||
this->owner().mesh().newIOobject
|
||||
(
|
||||
IOobject::scopedName
|
||||
(
|
||||
this->owner().name(),
|
||||
"collisionDensityRate"
|
||||
)
|
||||
),
|
||||
this->owner().mesh(),
|
||||
dimless/dimArea/dimTime,
|
||||
z,
|
||||
(collisionDensity_ - collisionDensity0_)
|
||||
/(this->owner().mesh().time().value() - time0_)
|
||||
).write();
|
||||
}
|
||||
|
||||
collisionDensity0_ == collisionDensity_;
|
||||
time0_ = this->owner().mesh().time().value();
|
||||
@ -106,11 +112,11 @@ Foam::PatchCollisionDensity<CloudType>::PatchCollisionDensity
|
||||
|
||||
IOobject io
|
||||
(
|
||||
this->owner().name() + ":collisionDensity",
|
||||
this->owner().mesh().time().timeName(),
|
||||
this->owner().mesh(),
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
this->owner().mesh().newIOobject
|
||||
(
|
||||
IOobject::scopedName(this->owner().name(), "collisionDensity"),
|
||||
IOobject::MUST_READ
|
||||
)
|
||||
);
|
||||
|
||||
if (io.typeHeaderOk<volScalarField>())
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -50,7 +50,7 @@ void Foam::PatchInteractionFields<CloudType>::clearOrReset
|
||||
{
|
||||
if (fieldPtr)
|
||||
{
|
||||
fieldPtr->primitiveFieldRef() = 0.0;
|
||||
fieldPtr->primitiveFieldRef() = scalar(0);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -62,11 +62,17 @@ void Foam::PatchInteractionFields<CloudType>::clearOrReset
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->owner().name() + ":" + this->modelName() + ":" + fieldName,
|
||||
IOobject::scopedName
|
||||
(
|
||||
this->owner().name(),
|
||||
this->modelName(),
|
||||
fieldName
|
||||
),
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::NO_WRITE
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(dims, Zero)
|
||||
|
||||
@ -75,9 +75,9 @@ Foam::LocalInteraction<CloudType>::LocalInteraction
|
||||
if (writeFields_)
|
||||
{
|
||||
Info<< " Interaction fields will be written to "
|
||||
<< this->owner().name() << ":massEscape"
|
||||
<< IOobject::scopedName(this->owner().name(), "massEscape")
|
||||
<< " and "
|
||||
<< this->owner().name() << ":massStick" << endl;
|
||||
<< IOobject::scopedName(this->owner().name(), "massStick") << endl;
|
||||
|
||||
(void)massEscape();
|
||||
(void)massStick();
|
||||
@ -164,11 +164,12 @@ Foam::volScalarField& Foam::LocalInteraction<CloudType>::massEscape()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->owner().name() + ":massEscape",
|
||||
IOobject::scopedName(this->owner().name(), "massEscape"),
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
mesh.thisDb(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(dimMass, Zero)
|
||||
@ -193,11 +194,12 @@ Foam::volScalarField& Foam::LocalInteraction<CloudType>::massStick()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->owner().name() + ":massStick",
|
||||
IOobject::scopedName(this->owner().name(), "massStick"),
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
mesh.thisDb(),
|
||||
IOobject::READ_IF_PRESENT,
|
||||
IOobject::AUTO_WRITE
|
||||
IOobject::AUTO_WRITE,
|
||||
IOobject::REGISTER
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(dimMass, Zero)
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -146,50 +146,41 @@ bool Foam::AveragingMethod<Type>::write(const bool writeOnProc) const
|
||||
Field<scalar> pointVolume(mesh_.nPoints(), Zero);
|
||||
|
||||
// output fields
|
||||
GeometricField<Type, fvPatchField, volMesh> cellValue
|
||||
auto tcellValue = GeometricField<Type, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":cellValue",
|
||||
this->time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
IOobject::scopedName(this->name(), "cellValue"),
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensioned<Type>(dimless, Zero)
|
||||
);
|
||||
GeometricField<TypeGrad, fvPatchField, volMesh> cellGrad
|
||||
auto& cellValue = tcellValue.ref();
|
||||
|
||||
auto tcellGrad = GeometricField<TypeGrad, fvPatchField, volMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":cellGrad",
|
||||
this->time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
IOobject::scopedName(this->name(), "cellGrad"),
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensioned<TypeGrad>(dimless, Zero)
|
||||
);
|
||||
GeometricField<Type, pointPatchField, pointMesh> pointValue
|
||||
auto& cellGrad = tcellGrad.ref();
|
||||
|
||||
auto tpointValue = GeometricField<Type, pointPatchField, pointMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":pointValue",
|
||||
this->time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
IOobject::scopedName(this->name(), "pointValue"),
|
||||
IOobject::NO_REGISTER,
|
||||
pointMesh_,
|
||||
dimensioned<Type>(dimless, Zero)
|
||||
);
|
||||
GeometricField<TypeGrad, pointPatchField, pointMesh> pointGrad
|
||||
auto& pointValue = tpointValue.ref();
|
||||
|
||||
auto tpointGrad = GeometricField<TypeGrad, pointPatchField, pointMesh>::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->name() + ":pointGrad",
|
||||
this->time().timeName(),
|
||||
mesh_
|
||||
),
|
||||
IOobject::scopedName(this->name(), "pointGrad"),
|
||||
IOobject::NO_REGISTER,
|
||||
pointMesh_,
|
||||
dimensioned<TypeGrad>(dimless, Zero)
|
||||
);
|
||||
auto& pointGrad = tpointGrad.ref();
|
||||
|
||||
// Barycentric coordinates of the tet vertices
|
||||
const FixedList<barycentric, 4>
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -72,30 +73,30 @@ void Foam::DampingModels::Relaxation<CloudType>::cacheFields(const bool store)
|
||||
const fvMesh& mesh = this->owner().mesh();
|
||||
const word& cloudName = this->owner().name();
|
||||
|
||||
const AveragingMethod<scalar>& volumeAverage =
|
||||
const auto& volumeAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":volumeAverage"
|
||||
IOobject::scopedName(cloudName, "volumeAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& radiusAverage =
|
||||
const auto& radiusAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":radiusAverage"
|
||||
IOobject::scopedName(cloudName, "radiusAverage")
|
||||
);
|
||||
const AveragingMethod<vector>& uAverage =
|
||||
const auto& uAverage =
|
||||
mesh.lookupObject<AveragingMethod<vector>>
|
||||
(
|
||||
cloudName + ":uAverage"
|
||||
IOobject::scopedName(cloudName, "uAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& uSqrAverage =
|
||||
const auto& uSqrAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":uSqrAverage"
|
||||
IOobject::scopedName(cloudName, "uSqrAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& frequencyAverage =
|
||||
const auto& frequencyAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":frequencyAverage"
|
||||
IOobject::scopedName(cloudName, "frequencyAverage")
|
||||
);
|
||||
|
||||
uAverage_ = &uAverage;
|
||||
@ -106,7 +107,7 @@ void Foam::DampingModels::Relaxation<CloudType>::cacheFields(const bool store)
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloudName + ":oneByTimeScaleAverage",
|
||||
IOobject::scopedName(cloudName, "oneByTimeScaleAverage"),
|
||||
this->owner().db().time().timeName(),
|
||||
mesh
|
||||
),
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -105,35 +105,35 @@ void Foam::IsotropyModels::Stochastic<CloudType>::calculate()
|
||||
|
||||
const scalar oneBySqrtThree = sqrt(1.0/3.0);
|
||||
|
||||
const AveragingMethod<scalar>& volumeAverage =
|
||||
const auto& volumeAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
this->owner().name() + ":volumeAverage"
|
||||
IOobject::scopedName(this->owner().name(), "volumeAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& radiusAverage =
|
||||
const auto& radiusAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
this->owner().name() + ":radiusAverage"
|
||||
IOobject::scopedName(this->owner().name(), "radiusAverage")
|
||||
);
|
||||
const AveragingMethod<vector>& uAverage =
|
||||
const auto& uAverage =
|
||||
mesh.lookupObject<AveragingMethod<vector>>
|
||||
(
|
||||
this->owner().name() + ":uAverage"
|
||||
IOobject::scopedName(this->owner().name(), "uAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& uSqrAverage =
|
||||
const auto& uSqrAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
this->owner().name() + ":uSqrAverage"
|
||||
IOobject::scopedName(this->owner().name(), "uSqrAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& frequencyAverage =
|
||||
const auto& frequencyAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
this->owner().name() + ":frequencyAverage"
|
||||
IOobject::scopedName(this->owner().name(), "frequencyAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& massAverage =
|
||||
const auto& massAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
this->owner().name() + ":massAverage"
|
||||
IOobject::scopedName(this->owner().name(), "massAverage")
|
||||
);
|
||||
|
||||
// calculate time scales and pdf exponent
|
||||
@ -143,7 +143,7 @@ void Foam::IsotropyModels::Stochastic<CloudType>::calculate()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->owner().name() + ":exponentAverage",
|
||||
IOobject::scopedName(this->owner().name(), "exponentAverage"),
|
||||
this->owner().db().time().timeName(),
|
||||
mesh
|
||||
),
|
||||
@ -191,7 +191,7 @@ void Foam::IsotropyModels::Stochastic<CloudType>::calculate()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->owner().name() + ":uTildeAverage",
|
||||
IOobject::scopedName(this->owner().name(), "uTildeAverage"),
|
||||
this->owner().db().time().timeName(),
|
||||
mesh
|
||||
),
|
||||
@ -213,7 +213,7 @@ void Foam::IsotropyModels::Stochastic<CloudType>::calculate()
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->owner().name() + ":uTildeSqrAverage",
|
||||
IOobject::scopedName(this->owner().name(), "uTildeSqrAverage"),
|
||||
this->owner().db().time().timeName(),
|
||||
mesh
|
||||
),
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -83,25 +83,25 @@ void Foam::PackingModels::Explicit<CloudType>::cacheFields(const bool store)
|
||||
const fvMesh& mesh = this->owner().mesh();
|
||||
const word& cloudName = this->owner().name();
|
||||
|
||||
const AveragingMethod<scalar>& volumeAverage =
|
||||
const auto& volumeAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":volumeAverage"
|
||||
IOobject::scopedName(cloudName, "volumeAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& rhoAverage =
|
||||
const auto& rhoAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":rhoAverage"
|
||||
IOobject::scopedName(cloudName, "rhoAverage")
|
||||
);
|
||||
const AveragingMethod<vector>& uAverage =
|
||||
const auto& uAverage =
|
||||
mesh.lookupObject<AveragingMethod<vector>>
|
||||
(
|
||||
cloudName + ":uAverage"
|
||||
IOobject::scopedName(cloudName, "uAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& uSqrAverage =
|
||||
const auto& uSqrAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":uSqrAverage"
|
||||
IOobject::scopedName(cloudName, "uSqrAverage")
|
||||
);
|
||||
|
||||
volumeAverage_ = &volumeAverage;
|
||||
@ -113,7 +113,7 @@ void Foam::PackingModels::Explicit<CloudType>::cacheFields(const bool store)
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloudName + ":stressAverage",
|
||||
IOobject::scopedName(cloudName, "stressAverage"),
|
||||
this->owner().db().time().timeName(),
|
||||
mesh
|
||||
),
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2023 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -48,7 +49,7 @@ Foam::PackingModels::Implicit<CloudType>::Implicit
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
this->owner().name() + ":alpha",
|
||||
IOobject::scopedName(this->owner().name(), "alpha"),
|
||||
this->owner().db().time().timeName(),
|
||||
this->owner().mesh(),
|
||||
IOobject::NO_READ,
|
||||
@ -112,20 +113,20 @@ void Foam::PackingModels::Implicit<CloudType>::cacheFields(const bool store)
|
||||
const dimensionedVector& g = this->owner().g();
|
||||
const volScalarField& rhoc = this->owner().rho();
|
||||
|
||||
const AveragingMethod<scalar>& rhoAverage =
|
||||
const auto& rhoAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":rhoAverage"
|
||||
IOobject::scopedName(cloudName, "rhoAverage")
|
||||
);
|
||||
const AveragingMethod<vector>& uAverage =
|
||||
const auto& uAverage =
|
||||
mesh.lookupObject<AveragingMethod<vector>>
|
||||
(
|
||||
cloudName + ":uAverage"
|
||||
IOobject::scopedName(cloudName, "uAverage")
|
||||
);
|
||||
const AveragingMethod<scalar>& uSqrAverage =
|
||||
const auto& uSqrAverage =
|
||||
mesh.lookupObject<AveragingMethod<scalar>>
|
||||
(
|
||||
cloudName + ":uSqrAverage"
|
||||
IOobject::scopedName(cloudName, "uSqrAverage")
|
||||
);
|
||||
|
||||
mesh.setFluxRequired(alpha_.name());
|
||||
@ -138,20 +139,15 @@ void Foam::PackingModels::Implicit<CloudType>::cacheFields(const bool store)
|
||||
alpha_.correctBoundaryConditions();
|
||||
|
||||
// average density
|
||||
volScalarField rho
|
||||
auto trho = volScalarField::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloudName + ":rho",
|
||||
this->owner().db().time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
IOobject::scopedName(cloudName, "rho"),
|
||||
mesh,
|
||||
dimensionedScalar(dimDensity, Zero),
|
||||
fvPatchFieldBase::zeroGradientType()
|
||||
);
|
||||
auto& rho = trho.ref();
|
||||
|
||||
rho.primitiveFieldRef() = max(rhoAverage.primitiveField(), rhoMin_);
|
||||
rho.correctBoundaryConditions();
|
||||
|
||||
@ -159,20 +155,14 @@ void Foam::PackingModels::Implicit<CloudType>::cacheFields(const bool store)
|
||||
// ~~~~~~~~~~~~
|
||||
|
||||
// stress derivative wrt volume fraction
|
||||
volScalarField tauPrime
|
||||
auto ttauPrime = volScalarField::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloudName + ":tauPrime",
|
||||
this->owner().db().time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
IOobject::scopedName(cloudName, "tauPrime"),
|
||||
mesh,
|
||||
dimensionedScalar(dimPressure, Zero),
|
||||
fvPatchFieldBase::zeroGradientType()
|
||||
);
|
||||
auto& tauPrime = ttauPrime.ref();
|
||||
|
||||
tauPrime.primitiveFieldRef() =
|
||||
this->particleStressModel_->dTaudTheta
|
||||
@ -191,27 +181,24 @@ void Foam::PackingModels::Implicit<CloudType>::cacheFields(const bool store)
|
||||
tmp<surfaceScalarField> phiGByA;
|
||||
|
||||
if (applyGravity_)
|
||||
(
|
||||
phiGByA = tmp<surfaceScalarField>
|
||||
{
|
||||
phiGByA = surfaceScalarField::New
|
||||
(
|
||||
new surfaceScalarField
|
||||
(
|
||||
"phiGByA",
|
||||
deltaT*(g & mesh.Sf())*fvc::interpolate(1.0 - rhoc/rho)
|
||||
)
|
||||
)
|
||||
);
|
||||
"phiGByA",
|
||||
IOobject::NO_REGISTER,
|
||||
deltaT*(g & mesh.Sf())*fvc::interpolate(1.0 - rhoc/rho)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// Implicit solution for the volume fraction
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
surfaceScalarField
|
||||
tauPrimeByRhoAf
|
||||
(
|
||||
"tauPrimeByRhoAf",
|
||||
fvc::interpolate(deltaT*tauPrime/rho)
|
||||
);
|
||||
surfaceScalarField tauPrimeByRhoAf
|
||||
(
|
||||
"tauPrimeByRhoAf",
|
||||
fvc::interpolate(deltaT*tauPrime/rho)
|
||||
);
|
||||
|
||||
fvScalarMatrix alphaEqn
|
||||
(
|
||||
@ -232,38 +219,32 @@ void Foam::PackingModels::Implicit<CloudType>::cacheFields(const bool store)
|
||||
// ~~~~~~~~~~~~~~~~~
|
||||
|
||||
// correction volumetric flux
|
||||
phiCorrect_ = tmp<surfaceScalarField>
|
||||
phiCorrect_ = surfaceScalarField::New
|
||||
(
|
||||
new surfaceScalarField
|
||||
(
|
||||
cloudName + ":phiCorrect",
|
||||
alphaEqn.flux()/fvc::interpolate(alpha_)
|
||||
)
|
||||
IOobject::scopedName(cloudName, "phiCorrect"),
|
||||
IOobject::NO_REGISTER,
|
||||
alphaEqn.flux()/fvc::interpolate(alpha_)
|
||||
);
|
||||
|
||||
// limit the correction flux
|
||||
if (applyLimiting_)
|
||||
{
|
||||
volVectorField U
|
||||
auto tU = volVectorField::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
cloudName + ":U",
|
||||
this->owner().db().time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
IOobject::scopedName(cloudName, "U"),
|
||||
IOobject::NO_REGISTER,
|
||||
mesh,
|
||||
dimensionedVector(dimVelocity, Zero),
|
||||
fvPatchFieldBase::zeroGradientType()
|
||||
);
|
||||
auto& U = tU.ref();
|
||||
|
||||
U.primitiveFieldRef() = uAverage.primitiveField();
|
||||
U.correctBoundaryConditions();
|
||||
|
||||
surfaceScalarField phi
|
||||
(
|
||||
cloudName + ":phi",
|
||||
IOobject::scopedName(cloudName, "phi"),
|
||||
linearInterpolate(U) & mesh.Sf()
|
||||
);
|
||||
|
||||
@ -303,14 +284,11 @@ void Foam::PackingModels::Implicit<CloudType>::cacheFields(const bool store)
|
||||
}
|
||||
|
||||
// correction velocity
|
||||
uCorrect_ = tmp<volVectorField>
|
||||
uCorrect_ = volVectorField::New
|
||||
(
|
||||
new volVectorField
|
||||
(
|
||||
cloudName + ":uCorrect",
|
||||
fvc::reconstruct(phiCorrect_())
|
||||
)
|
||||
|
||||
IOobject::scopedName(cloudName, "uCorrect"),
|
||||
IOobject::NO_REGISTER,
|
||||
fvc::reconstruct(phiCorrect_())
|
||||
);
|
||||
uCorrect_->correctBoundaryConditions();
|
||||
|
||||
|
||||
@ -107,17 +107,15 @@ Foam::ParticleStressModel::tau
|
||||
const FieldField<Field, scalar>& uRms
|
||||
) const
|
||||
{
|
||||
tmp<FieldField<Field, scalar>> value
|
||||
(
|
||||
new FieldField<Field, scalar>(alpha.size())
|
||||
);
|
||||
auto tvalue = tmp<FieldField<Field, scalar>>::New(alpha.size());
|
||||
auto& value = tvalue.ref();
|
||||
|
||||
forAll(alpha, i)
|
||||
{
|
||||
value->set(i, tau(alpha[i], rho[i], uRms[i]));
|
||||
value.set(i, tau(alpha[i], rho[i], uRms[i]));
|
||||
}
|
||||
|
||||
return value;
|
||||
return tvalue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -72,29 +72,19 @@ Foam::radiation::cloudAbsorptionEmission::~cloudAbsorptionEmission()
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::radiation::cloudAbsorptionEmission::aDisp(const label) const
|
||||
{
|
||||
tmp<volScalarField> ta
|
||||
auto ta = volScalarField::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"a",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
)
|
||||
"a",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
);
|
||||
|
||||
forAll(cloudNames_, i)
|
||||
for (const word& cldName : cloudNames_)
|
||||
{
|
||||
const thermoCloud& tc
|
||||
(
|
||||
mesh_.objectRegistry::lookupObject<thermoCloud>(cloudNames_[i])
|
||||
mesh_.objectRegistry::lookupObject<thermoCloud>(cldName)
|
||||
);
|
||||
|
||||
ta.ref() += tc.ap();
|
||||
@ -107,17 +97,10 @@ Foam::radiation::cloudAbsorptionEmission::aDisp(const label) const
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::radiation::cloudAbsorptionEmission::eDisp(const label bandI) const
|
||||
{
|
||||
return tmp<volScalarField>::New
|
||||
return volScalarField::New
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"e",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
"e",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
);
|
||||
@ -127,29 +110,19 @@ Foam::radiation::cloudAbsorptionEmission::eDisp(const label bandI) const
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::radiation::cloudAbsorptionEmission::EDisp(const label bandI) const
|
||||
{
|
||||
tmp<volScalarField> tE
|
||||
auto tE = volScalarField::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"E",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
)
|
||||
"E",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
);
|
||||
|
||||
forAll(cloudNames_, i)
|
||||
for (const word& cldName : cloudNames_)
|
||||
{
|
||||
const thermoCloud& tc
|
||||
(
|
||||
mesh_.objectRegistry::lookupObject<thermoCloud>(cloudNames_[i])
|
||||
mesh_.objectRegistry::lookupObject<thermoCloud>(cldName)
|
||||
);
|
||||
|
||||
tE.ref() += tc.Ep();
|
||||
|
||||
@ -72,30 +72,18 @@ Foam::radiation::cloudScatter::~cloudScatter()
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::radiation::cloudScatter::sigmaEff() const
|
||||
{
|
||||
tmp<volScalarField> tsigma
|
||||
auto tsigma = volScalarField::New
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"sigma",
|
||||
mesh_.time().timeName(),
|
||||
mesh_,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
IOobject::NO_REGISTER
|
||||
),
|
||||
mesh_,
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
)
|
||||
"sigma",
|
||||
IOobject::NO_REGISTER,
|
||||
mesh_,
|
||||
dimensionedScalar(dimless/dimLength, Zero)
|
||||
);
|
||||
|
||||
forAll(cloudNames_, i)
|
||||
for (const word& cloudName : cloudNames_)
|
||||
{
|
||||
const thermoCloud& tc
|
||||
(
|
||||
mesh_.objectRegistry::lookupObject<thermoCloud>(cloudNames_[i])
|
||||
);
|
||||
const auto& tc =
|
||||
mesh_.objectRegistry::lookupObject<thermoCloud>(cloudName);
|
||||
|
||||
tsigma.ref() += tc.sigmap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user