Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev

This commit is contained in:
Henry Weller
2023-09-01 13:13:31 +01:00
153 changed files with 2541 additions and 1246 deletions

View File

@ -53,7 +53,7 @@ inline void Foam::phaseSurfaceArrheniusReactionRate::preEvaluate() const
const phaseModel& phase =
ob_.lookupObject<phaseModel>(IOobject::groupName("alpha", phaseName_));
tAv_ = phase.dPtr()->Av();
tAv_ = phase.diameter().Av();
}

View File

@ -345,7 +345,7 @@ Foam::heatTransferModels::wallBoilingHeatTransfer::K
min(pi*sqr(dDep_)*nucleationSiteDensity_*Al/4, scalar(5))
);
const volScalarField Av(solid.dPtr()->Av());
const volScalarField Av(solid.diameter().Av());
// Volumetric mass source in due to the wall boiling and bulk nucleation
dmdtf_ =

View File

@ -31,11 +31,10 @@ License
template<class ModelType>
Foam::diameterModels::SecondaryPropertyModel<ModelType>::SecondaryPropertyModel
(
const dictionary& dict,
const sizeGroup& group
)
:
ModelType(dict, group),
ModelType(group),
regIOobject
(
IOobject
@ -45,7 +44,7 @@ Foam::diameterModels::SecondaryPropertyModel<ModelType>::SecondaryPropertyModel
group.mesh()
)
),
sizeGroup_(group),
group_(group),
SecondaryPropertyModelTable_()
{}
@ -60,6 +59,14 @@ Foam::diameterModels::SecondaryPropertyModel<ModelType>::
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
template<class ModelType>
const Foam::diameterModels::sizeGroup&
Foam::diameterModels::SecondaryPropertyModel<ModelType>::group() const
{
return group_;
}
template<class ModelType>
const typename Foam::diameterModels::SecondaryPropertyModel<ModelType>::SpTable&
Foam::diameterModels::SecondaryPropertyModel<ModelType>::
@ -68,7 +75,7 @@ SecondaryPropertyModelTable()
if (SecondaryPropertyModelTable_.empty())
{
SecondaryPropertyModelTable_ =
sizeGroup_.mesh().template lookupClass
group_.mesh().template lookupClass
<
SecondaryPropertyModel<ModelType>
>();

View File

@ -70,10 +70,11 @@ protected:
using SpTable = HashTable<const SecondaryPropertyModel<ModelType>*>;
// Protected Data
//- Reference to sizeGroup
const sizeGroup& sizeGroup_;
const sizeGroup& group_;
//- Table with pointers to all secondary properties of ModelType
// available in the registry
@ -84,12 +85,8 @@ public:
// Constructors
//- Construct from dictionary and sizeGroup
SecondaryPropertyModel
(
const dictionary& dict,
const sizeGroup& group
);
//- Construct from sizeGroup
SecondaryPropertyModel(const sizeGroup& group);
//- Disallow default bitwise copy construction
SecondaryPropertyModel
@ -106,6 +103,9 @@ public:
// Access
//- Access the sizeGroup
const sizeGroup& group() const;
//- Return table with pointers to all secondary properties of
// ModelType available in the registry
const SpTable& SecondaryPropertyModelTable();
@ -120,6 +120,7 @@ public:
//- Access to secondary property source
virtual volScalarField& src() = 0;
// Edit
//- Add coalescence contribution to secondary property source
@ -156,6 +157,7 @@ public:
//- Reset secondary property source
virtual void reset();
// Write
//- Dummy write for regIOobject

View File

@ -31,6 +31,8 @@ License
#include "fvmSup.H"
#include "mixedFvPatchField.H"
using Foam::constant::mathematical::pi;
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
@ -60,7 +62,29 @@ const Foam::NamedEnum
> Foam::diameterModels::shapeModels::fractal::sgTypeNames_;
using Foam::constant::mathematical::pi;
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::diameterModels::shapeModels::fractal::dColl() const
{
tmp<volScalarField> tDColl
(
volScalarField::New
(
"dColl",
group().mesh(),
dimensionedScalar(dimLength, Zero)
)
);
volScalarField& dColl = tDColl.ref();
dColl =
6/kappa_
*pow(group().x()*pow3(kappa_)/(36*pi*alphaC_), 1/Df_);
return tDColl;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -68,31 +92,18 @@ using Foam::constant::mathematical::pi;
Foam::diameterModels::shapeModels::fractal::fractal
(
const dictionary& dict,
const sizeGroup& group
const sizeGroup& group,
const dictionary& groupDict
)
:
SecondaryPropertyModel<shapeModel>(dict, group),
SecondaryPropertyModel<shapeModel>(group),
kappa_
(
IOobject
(
"kappa" + group.name().substr(1),
group.mesh().time().name(),
group.mesh(),
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
group.mesh(),
dimensionedScalar
(
"kappa",
inv(dimLength),
group.dict()
),
group.VelocityGroup().f().boundaryField().types()
sizeGroup::fieldIo("kappa", group.i(), group.group()),
sizeGroup::field("kappa", group.i(), group.group())
),
Df_("Df", dimless, group.dict()),
alphaC_("alphaC", dimless, group.dict()),
Df_("Df", dimless, groupDict),
alphaC_("alphaC", dimless, groupDict),
dColl_
(
IOobject
@ -113,30 +124,22 @@ Foam::diameterModels::shapeModels::fractal::fractal
),
group.mesh(),
dimensionedScalar(kappa_.dimensions()/dimTime, Zero)
)
),
sinteringModel_(sinteringModel::New(dict.subDict(type() + "Coeffs"), *this))
{
// Adjust refValue at mixedFvPatchField boundaries
forAll(kappa_.boundaryField(), patchi)
// Check and filter for old syntax (remove in due course)
if (groupDict.found("kappa"))
{
typedef mixedFvPatchField<scalar> mixedFvPatchScalarField;
if
(
isA<const mixedFvPatchScalarField>(kappa_.boundaryField()[patchi])
)
{
mixedFvPatchScalarField& kappa =
refCast<mixedFvPatchScalarField>
(
kappa_.boundaryFieldRef()[patchi]
);
kappa.refValue() = sizeGroup_.dict().lookup<scalar>("kappa");
}
FatalErrorInFunction
<< "A 'kappa' entry should not be specified for size-group #"
<< group.i() << " of population balance "
<< group.group().popBalName()
<< ". Instead, the value should be initialised within the field, "
<< this->name() << " (or the default field, "
<< IOobject::groupName("kappaDefault", group.phase().name())
<< ", as appropriate)."
<< exit(FatalError);
}
sinteringModel_ =
sinteringModel::New(dict.subDict(type() + "Coeffs"), *this);
}
@ -162,39 +165,16 @@ Foam::diameterModels::shapeModels::fractal::src()
}
Foam::tmp<Foam::volScalarField>
Foam::diameterModels::shapeModels::fractal::dColl() const
{
tmp<volScalarField> tDColl
(
volScalarField::New
(
"dColl",
sizeGroup_.mesh(),
dimensionedScalar(dimLength, Zero)
)
);
volScalarField& dColl = tDColl.ref();
dColl =
6/kappa_
*pow(sizeGroup_.x()*pow3(kappa_)/(36*pi*alphaC_), 1/Df_);
return tDColl;
}
void Foam::diameterModels::shapeModels::fractal::correct()
{
const sizeGroup& fi = sizeGroup_;
const sizeGroup& fi = group();
const phaseModel& phase = fi.phase();
const volScalarField& alpha = phase;
const populationBalanceModel& popBal =
sizeGroup_.mesh().lookupObject<populationBalanceModel>
group().mesh().lookupObject<populationBalanceModel>
(
sizeGroup_.VelocityGroup().popBalName()
group().group().popBalName()
);
surfaceScalarField fAlphaPhi
@ -216,7 +196,7 @@ void Foam::diameterModels::shapeModels::fractal::correct()
fvm::Sp
(
max(phase.residualAlpha() - alpha*fi, scalar(0))
/sizeGroup_.mesh().time().deltaT(),
/group().mesh().time().deltaT(),
kappa_
)
)
@ -231,7 +211,7 @@ void Foam::diameterModels::shapeModels::fractal::correct()
kappa_ =
min
(
max(kappa_, 6/sizeGroup_.dSph()),
max(kappa_, 6/group().dSph()),
6/popBal.sizeGroups().first().dSph()
);
@ -245,7 +225,7 @@ void Foam::diameterModels::shapeModels::fractal::correct()
const Foam::tmp<Foam::volScalarField>
Foam::diameterModels::shapeModels::fractal::a() const
{
return kappa_*sizeGroup_.x();
return kappa_*group().x();
}
@ -271,7 +251,7 @@ void Foam::diameterModels::shapeModels::fractal::addDrift
{
case sgHardSphere:
{
Su_ += sourceKappa*fu.dSph()/sizeGroup_.dSph()*Su;
Su_ += sourceKappa*fu.dSph()/group().dSph()*Su;
break;
}
@ -286,7 +266,7 @@ void Foam::diameterModels::shapeModels::fractal::addDrift
volScalarField dp(6/sourceKappa);
const volScalarField a(sourceKappa*fu.x());
const dimensionedScalar dv(sizeGroup_.x() - fu.x());
const dimensionedScalar dv(group().x() - fu.x());
const volScalarField da1
(
@ -299,7 +279,7 @@ void Foam::diameterModels::shapeModels::fractal::addDrift
dp += 6*(dv*a - fu.x()*da1)/sqr(a);
const volScalarField np(6*sizeGroup_.x()/pi/pow3(dp));
const volScalarField np(6*group().x()/pi/pow3(dp));
const volScalarField dc(dp*pow(np/alphaC_, 1/Df_));
const volScalarField da2
@ -307,7 +287,7 @@ void Foam::diameterModels::shapeModels::fractal::addDrift
dv*(4/dp + 2*Df_/3*(1/dc - 1/dp))
);
Su_ += (a + 0.5*da1 + 0.5*da2)/sizeGroup_.x()*Su;
Su_ += (a + 0.5*da1 + 0.5*da2)/group().x()*Su;
break;
}

View File

@ -127,6 +127,7 @@ private:
// Private Member Functions
//- Compute and return the collisional diameter
tmp<volScalarField> dColl() const;
@ -138,11 +139,12 @@ public:
// Constructors
//- Construct from dictionary and sizeGroup
//- Construct from dictionaries and sizeGroup
fractal
(
const dictionary& dict,
const sizeGroup& group
const sizeGroup& group,
const dictionary& groupDict
);
//- Disallow default bitwise copy construction

View File

@ -81,16 +81,16 @@ Foam::diameterModels::shapeModels::sinteringModels::KochFriedlander::tau() const
volScalarField::Internal::New
(
"tau",
fractal_.SizeGroup().mesh(),
fractal_.group().mesh(),
dimensionedScalar(dimTime, Zero)
)
);
volScalarField::Internal& tau = tTau.ref();
const sizeGroup& fi = fractal_.SizeGroup();
const sizeGroup& fi = fractal_.group();
const volScalarField& kappai = fractal_.fld();
const volScalarField& T = fractal_.SizeGroup().phase().thermo().T();
const volScalarField& T = fractal_.group().phase().thermo().T();
forAll(tau, celli)
{
@ -107,7 +107,7 @@ Foam::diameterModels::shapeModels::sinteringModels::KochFriedlander::tau() const
Foam::tmp<Foam::fvScalarMatrix>
Foam::diameterModels::shapeModels::sinteringModels::KochFriedlander::R() const
{
const sizeGroup& fi = fractal_.SizeGroup();
const sizeGroup& fi = fractal_.group();
const volScalarField& kappai = fractal_.fld();
const volScalarField& alpha = fi.phase();

View File

@ -68,7 +68,7 @@ Foam::diameterModels::shapeModels::sinteringModels::noSintering::~noSintering()
Foam::tmp<Foam::fvScalarMatrix>
Foam::diameterModels::shapeModels::sinteringModels::noSintering::R() const
{
const sizeGroup& fi = fractal_.SizeGroup();
const sizeGroup& fi = fractal_.group();
volScalarField::Internal R
(

View File

@ -39,13 +39,9 @@ namespace diameterModels
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::diameterModels::shapeModel::shapeModel
(
const dictionary& dict,
const sizeGroup& group
)
Foam::diameterModels::shapeModel::shapeModel(const sizeGroup& group)
:
sizeGroup_(group)
group_(group)
{}
@ -55,7 +51,8 @@ Foam::autoPtr<Foam::diameterModels::shapeModel>
Foam::diameterModels::shapeModel::New
(
const dictionary& dict,
const sizeGroup& group
const sizeGroup& group,
const dictionary& groupDict
)
{
word shapeModelType(dict.lookup("shapeModel"));
@ -73,7 +70,7 @@ Foam::diameterModels::shapeModel::New
<< exit(FatalError);
}
return cstrIter()(dict, group);
return cstrIter()(dict, group, groupDict);
}
@ -85,10 +82,10 @@ Foam::diameterModels::shapeModel::~shapeModel()
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
const Foam::diameterModels::sizeGroup& Foam::diameterModels::shapeModel::
SizeGroup() const
const Foam::diameterModels::sizeGroup&
Foam::diameterModels::shapeModel::group() const
{
return sizeGroup_;
return group_;
}

View File

@ -66,7 +66,7 @@ protected:
// Protected Data
//- Reference to sizeGroup
const sizeGroup& sizeGroup_;
const sizeGroup& group_;
public:
@ -84,20 +84,17 @@ public:
dictionary,
(
const dictionary& dict,
const sizeGroup& group
const sizeGroup& group,
const dictionary& groupDict
),
(dict, group)
(dict, group, groupDict)
);
// Constructors
//- Construct from dictionary and sizeGroup
shapeModel
(
const dictionary& dict,
const sizeGroup& group
);
//- Construct from sizeGroup
shapeModel(const sizeGroup& group);
//- Disallow default bitwise copy construction
shapeModel(const shapeModel&) = delete;
@ -108,7 +105,8 @@ public:
static autoPtr<shapeModel> New
(
const dictionary& dict,
const sizeGroup& group
const sizeGroup& group,
const dictionary& groupDict
);
@ -121,7 +119,7 @@ public:
// Access
//- Return reference to size group
const sizeGroup& SizeGroup() const;
const sizeGroup& group() const;
//- Return representative surface area of the sizeGroup
virtual const tmp<volScalarField> a() const = 0;

View File

@ -50,14 +50,14 @@ using Foam::constant::mathematical::pi;
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::diameterModels::shapeModels::spherical::
spherical
Foam::diameterModels::shapeModels::spherical::spherical
(
const dictionary& dict,
const sizeGroup& group
const sizeGroup& group,
const dictionary& groupDict
)
:
shapeModel(dict, group)
shapeModel(group)
{}
@ -77,8 +77,8 @@ Foam::diameterModels::shapeModels::spherical::a() const
volScalarField::New
(
"a",
sizeGroup_.mesh(),
6/sizeGroup_.dSph()*sizeGroup_.x()
group().mesh(),
6/group().dSph()*group().x()
)
);
}
@ -89,7 +89,7 @@ Foam::diameterModels::shapeModels::spherical::d() const
{
return tmp<volScalarField>
(
volScalarField::New("d", sizeGroup_.mesh(), sizeGroup_.dSph())
volScalarField::New("d", group().mesh(), group().dSph())
);
}

View File

@ -62,11 +62,12 @@ public:
// Constructors
//- Construct from dictionary and sizeGroup
//- Construct from dictionaries and sizeGroup
spherical
(
const dictionary& dict,
const sizeGroup& group
const sizeGroup& group,
const dictionary& groupDict
);

View File

@ -27,68 +27,91 @@ License
#include "mixedFvPatchField.H"
#include "shapeModel.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
using Foam::constant::mathematical::pi;
// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
Foam::IOobject Foam::diameterModels::sizeGroup::fieldIo
(
const word& name,
const label i,
const velocityGroup& group,
const IOobject::readOption r,
const bool registerObject
)
{
return
IOobject
(
IOobject::groupName
(
name + (i == -1 ? "Default" : Foam::name(i)),
group.phase().name()
),
group.phase().mesh().time().name(),
group.phase().mesh(),
r,
IOobject::AUTO_WRITE,
registerObject
);
}
Foam::tmp<Foam::volScalarField> Foam::diameterModels::sizeGroup::field
(
const word& name,
const label i,
const velocityGroup& group
)
{
typeIOobject<volScalarField> io
(
fieldIo(name, i, group, IOobject::MUST_READ, false)
);
return
tmp<volScalarField>
(
new volScalarField
(
io.headerOk()
? io
: fieldIo(name, -1, group, IOobject::MUST_READ, false),
group.phase().mesh()
)
);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::diameterModels::sizeGroup::sizeGroup
(
const word& name,
const label i,
const dictionary& dict,
const phaseModel& phase,
const velocityGroup& velocityGroup,
const fvMesh& mesh
const velocityGroup& group
)
:
volScalarField
(
IOobject
(
IOobject::groupName
(
name,
velocityGroup.phase().name()
),
mesh.time().name(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar(name, dimless, dict.lookup<scalar>("value")),
velocityGroup.f().boundaryField().types()
),
dict_(dict),
phase_(phase),
velocityGroup_(velocityGroup),
volScalarField(fieldIo("f", i, group), field("f", i, group)),
i_(i),
group_(group),
dSph_("dSph", dimLength, dict),
x_("x", pi/6*pow3(dSph_)),
value_(dict.lookup<scalar>("value"))
shapeModel_(shapeModel::New(group_.diameterProperties(), *this, dict))
{
// Adjust refValue at mixedFvPatchField boundaries
forAll(this->boundaryField(), patchi)
// Check and filter for old syntax (remove in due course)
if (dict.found("value"))
{
typedef mixedFvPatchField<scalar> mixedFvPatchScalarField;
if
(
isA<const mixedFvPatchScalarField>(this->boundaryField()[patchi])
)
{
mixedFvPatchScalarField& f =
refCast<mixedFvPatchScalarField>
(
this->boundaryFieldRef()[patchi]
);
f.refValue() = value_;
}
FatalErrorInFunction
<< "A 'value' entry should not be specified for size-group #"
<< i << " of population balance "
<< group.popBalName()
<< ". Instead, the value should be initialised within the field, "
<< this->name() << " (or the default field, "
<< IOobject::groupName("fDefault", group.phase().name())
<< ", as appropriate)."
<< exit(FatalError);
}
shapeModel_ = shapeModel::New(velocityGroup_.diameterProperties(), *this);
}
@ -103,34 +126,11 @@ Foam::diameterModels::sizeGroup::~sizeGroup()
Foam::autoPtr<Foam::diameterModels::sizeGroup>
Foam::diameterModels::sizeGroup::clone() const
{
notImplemented("sizeGroup::clone() const");
NotImplemented;
return autoPtr<sizeGroup>(nullptr);
}
const Foam::label& Foam::diameterModels::sizeGroup::i() const
{
if (!i_.valid())
{
const populationBalanceModel& popBal =
this->mesh().lookupObject<populationBalanceModel>
(
velocityGroup_.popBalName()
);
forAll(popBal.sizeGroups(), j)
{
if (&popBal.sizeGroups()[j] == &*this)
{
i_.set(new label(j));
}
}
}
return i_();
}
const Foam::tmp<Foam::volScalarField>
Foam::diameterModels::sizeGroup::a() const
{

View File

@ -87,13 +87,11 @@ private:
// Private Data
dictionary dict_;
//- Phase this sizeGroup belongs to
const phaseModel& phase_;
//- Label of this sizeGroup within the corresponding populationBalance
const label i_;
//- VelocityGroup this sizeGroup belongs to
const velocityGroup& velocityGroup_;
const velocityGroup& group_;
//- Sphere equivalent diameter of the sizeGroup
const dimensionedScalar dSph_;
@ -101,12 +99,6 @@ private:
//- Representative volume of the sizeGroup
const dimensionedScalar x_;
//- Initial value and value at boundaries
const scalar value_;
//- Label of this sizeGroup within the corresponding populationBalance
mutable autoPtr<label> i_;
//- Model for describing the representative shape of the elements in the
// sizeGroup
autoPtr<shapeModel> shapeModel_;
@ -114,53 +106,87 @@ private:
public:
// Constructors
// Static Member Functions
sizeGroup
//- Return IO for a size-group field. Construction helper.
static IOobject fieldIo
(
const word& name,
const label i,
const velocityGroup& group,
const IOobject::readOption r = IOobject::NO_READ,
const bool registerObject = true
);
//- Return IO a size-group field. Construction helper.
static tmp<volScalarField> field
(
const word& name,
const label i,
const velocityGroup& group
);
// Constructors
//- Construct from index, dictionary and velocity group
sizeGroup
(
const label i,
const dictionary& dict,
const phaseModel& phase,
const velocityGroup& velocityGroup,
const fvMesh& mesh
const velocityGroup& group
);
//- Return clone
autoPtr<sizeGroup> clone() const;
//- Return a pointer to a new sizeGroup created on freestore
// from Istream
//- Return a pointer to a new sizeGroup created from Istream
class iNew
{
const phaseModel& phase_;
const velocityGroup& velocityGroup_;
const velocityGroup& group_;
mutable label i_;
public:
iNew
(
const phaseModel& phase,
const velocityGroup& velocityGroup
)
iNew(const velocityGroup& group, const label i0)
:
phase_(phase),
velocityGroup_(velocityGroup)
group_(group),
i_(i0)
{}
autoPtr<sizeGroup> operator()(Istream& is) const
{
dictionaryEntry ent(dictionary::null, is);
return autoPtr<sizeGroup>
(
new sizeGroup
(
ent.keyword(),
ent,
phase_,
velocityGroup_,
phase_.mesh()
)
);
token t(is);
// Check and filter for old syntax (remove in due course)
if (t.isWord())
{
const word fName = "f" + Foam::name(i_);
if (t.wordToken() != fName)
{
FatalErrorInFunction
<< "The name '" << t.wordToken() << "' should not "
<< "have been provided for the fraction field "
<< IOobject::groupName(fName, group_.phase().name())
<< " of size-group #" << i_
<< " of population balance " << group_.popBalName()
<< ". Only the coefficients are required."
<< exit(FatalError);
}
}
else
{
is.putBack(t);
}
autoPtr<sizeGroup> result(new sizeGroup(i_, is, group_));
i_ ++;
return result;
}
};
@ -171,14 +197,14 @@ public:
// Member Functions
//- Return const-reference to the dictionary
inline const dictionary& dict() const;
//- Return index of the size group within the population balance
label i() const;
//- Return const-reference to the phase
inline const phaseModel& phase() const;
//- Return const-reference to the velocityGroup
inline const velocityGroup& VelocityGroup() const;
inline const velocityGroup& group() const;
//- Return representative spherical diameter of the sizeGroup
inline const dimensionedScalar& dSph() const;
@ -192,9 +218,6 @@ public:
//- Return const-reference to diameterModel of the phase
inline const autoPtr<shapeModel>& shapeModelPtr() const;
//- Return index of the size group within the population balance
const label& i() const;
//- Return representative surface area of the sizeGroup
const tmp<volScalarField> a() const;

View File

@ -23,26 +23,27 @@ License
\*---------------------------------------------------------------------------*/
#include "sizeGroup.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
inline const Foam::dictionary&
Foam::diameterModels::sizeGroup::dict() const
inline Foam::label Foam::diameterModels::sizeGroup::i() const
{
return dict_;
return i_;
}
inline const Foam::phaseModel&
Foam::diameterModels::sizeGroup::phase() const
{
return phase_;
return group().phase();
}
inline const Foam::diameterModels::velocityGroup&
Foam::diameterModels::sizeGroup::VelocityGroup() const
Foam::diameterModels::sizeGroup::group() const
{
return velocityGroup_;
return group_;
}

View File

@ -122,11 +122,11 @@ void Foam::diameterModels::velocityGroup::scale()
sizeGroups_[i].max(0);
};
f_ = fSum();
const volScalarField fSum(this->fSum());
forAll(sizeGroups_, i)
{
sizeGroups_[i] /= f_;
sizeGroups_[i] /= fSum;
sizeGroups_[i].correctBoundaryConditions();
};
@ -143,29 +143,27 @@ Foam::diameterModels::velocityGroup::velocityGroup
:
diameterModel(diameterProperties, phase),
popBalName_(diameterProperties.lookup("populationBalance")),
f_
(
IOobject
(
IOobject::groupName
(
"f",
phase.name()
),
phase.time().name(),
phase.mesh(),
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
phase.mesh()
),
sizeGroups_
(
diameterProperties.lookup("sizeGroups"),
sizeGroup::iNew(phase, *this)
sizeGroup::iNew
(
*this,
populationBalanceModel::groups::New
(
popBalName_,
phase.mesh()
).nSizeGroups()
)
),
d_(IOobject::groupName("d", phase.name()), dsm())
{}
{
populationBalanceModel::groups::New
(
popBalName_,
phase.mesh()
).insert(*this);
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
@ -232,14 +230,12 @@ void Foam::diameterModels::velocityGroup::correct()
scale();
}
f_ = fSum();
f_.correctBoundaryConditions();
volScalarField::Internal fSum(this->fSum());
Info<< phase().name() << " sizeGroups-sum volume fraction, min, max = "
<< f_.weightedAverage(phase().mesh().V()).value()
<< ' ' << min(f_).value()
<< ' ' << max(f_).value()
<< fSum.weightedAverage(phase().mesh().V()).value()
<< ' ' << min(fSum).value()
<< ' ' << max(fSum).value()
<< endl;
d_ = dsm();

View File

@ -90,10 +90,6 @@ class velocityGroup
//- Name of the populationBalance this velocityGroup belongs to
word popBalName_;
//- Sum of the sizeGroup volume fractions and reference field from which
// the sizeGroup fields are derived
volScalarField f_;
//- sizeGroups belonging to this velocityGroup
PtrList<sizeGroup> sizeGroups_;
@ -137,12 +133,12 @@ public:
//- Return name of populationBalance this velocityGroup belongs to
inline const word& popBalName() const;
//- Return reference field for sizeGroup's
inline const volScalarField& f() const;
//- Return sizeGroups belonging to this velocityGroup
inline const PtrList<sizeGroup>& sizeGroups() const;
//- Return sizeGroups belonging to this velocityGroup
inline PtrList<sizeGroup>& sizeGroups();
//- Get the diameter field
virtual tmp<volScalarField> d() const;

View File

@ -23,6 +23,8 @@ License
\*---------------------------------------------------------------------------*/
#include "velocityGroup.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
inline const Foam::word&
@ -32,13 +34,6 @@ Foam::diameterModels::velocityGroup::popBalName() const
}
inline const Foam::volScalarField&
Foam::diameterModels::velocityGroup::f() const
{
return f_;
}
inline const Foam::PtrList<Foam::diameterModels::sizeGroup>&
Foam::diameterModels::velocityGroup::sizeGroups() const
{
@ -46,4 +41,11 @@ Foam::diameterModels::velocityGroup::sizeGroups() const
}
inline Foam::PtrList<Foam::diameterModels::sizeGroup>&
Foam::diameterModels::velocityGroup::sizeGroups()
{
return sizeGroups_;
}
// ************************************************************************* //

View File

@ -148,9 +148,9 @@ Foam::tmp<Foam::volScalarField> Foam::phaseModel::d() const
}
const Foam::autoPtr<Foam::diameterModel>& Foam::phaseModel::dPtr() const
const Foam::diameterModel& Foam::phaseModel::diameter() const
{
return diameterModel_;
return diameterModel_();
}

View File

@ -194,8 +194,8 @@ public:
//- Return the Sauter-mean diameter
tmp<volScalarField> d() const;
//- Return const-reference to diameterModel of the phase
const autoPtr<diameterModel>& dPtr() const;
//- Return a reference to the diameterModel of the phase
const diameterModel& diameter() const;
//- Correct the phase properties
virtual void correct();

View File

@ -97,29 +97,26 @@ void Foam::diameterModels::driftModels::phaseChange::precompute()
forAll(interfaces_, k)
{
forAllConstIter
(
HashTable<const velocityGroup*>,
popBal_.velocityGroupPtrs(),
iter
)
forAllConstIter(phaseInterface, interfaces_[k], iter)
{
const velocityGroup& velGrp = *iter();
const phaseModel& phase = iter();
if (interfaces_[k].contains(velGrp.phase()))
if (!isA<velocityGroup>(phase.diameter())) continue;
const velocityGroup& velGroup =
refCast<const velocityGroup>(phase.diameter());
forAll(velGroup.sizeGroups(), i)
{
forAll(velGrp.sizeGroups(), i)
{
const sizeGroup& fi = velGrp.sizeGroups()[i];
const sizeGroup& fi = velGroup.sizeGroups()[i];
if (numberWeighted_)
{
W_[k] += fi*max(fi.phase(), small)/fi.x();
}
else
{
W_[k] += fi*max(fi.phase(), small)/fi.x()*fi.a();
}
if (numberWeighted_)
{
W_[k] += fi*max(fi.phase(), small)/fi.x();
}
else
{
W_[k] += fi*max(fi.phase(), small)/fi.x()*fi.a();
}
}
}
@ -133,7 +130,7 @@ void Foam::diameterModels::driftModels::phaseChange::addToDriftRate
const label i
)
{
const velocityGroup& velGrp = popBal_.sizeGroups()[i].VelocityGroup();
const velocityGroup& velGrp = popBal_.sizeGroups()[i].group();
forAll(interfaces_, k)
{

View File

@ -81,14 +81,7 @@ Foam::diameterModels::nucleationModel::nucleationModel
(
refCast<const velocityGroup>
(
popBal.mesh().lookupObject<phaseModel>
(
IOobject::groupName
(
"alpha",
dict.lookup("velocityGroup")
)
).dPtr()()
popBal.fluid().phases()[dict.lookup("velocityGroup")].diameter()
)
)
{}

View File

@ -52,152 +52,12 @@ namespace diameterModels
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
void Foam::diameterModels::populationBalanceModel::registerVelocityGroups()
{
forAll(fluid_.phases(), phasei)
{
if (isA<velocityGroup>(fluid_.phases()[phasei].dPtr()()))
{
const velocityGroup& velGroup =
refCast<const velocityGroup>(fluid_.phases()[phasei].dPtr()());
if (velGroup.popBalName() == this->name())
{
velocityGroupPtrs_.insert(velGroup.phase().name(), &velGroup);
dilatationErrors_.insert
(
velGroup.phase().name(),
volScalarField
(
IOobject
(
IOobject::groupName
(
"dilatationError",
velGroup.phase().name()
),
fluid_.time().name(),
mesh_
),
mesh_,
dimensionedScalar(inv(dimTime), 0)
)
);
forAll(velGroup.sizeGroups(), i)
{
this->registerSizeGroups
(
const_cast<sizeGroup&>(velGroup.sizeGroups()[i])
);
}
}
}
}
}
void Foam::diameterModels::populationBalanceModel::registerSizeGroups
(
sizeGroup& group
)
{
if
(
sizeGroups().size() != 0
&&
group.x().value() <= sizeGroups().last().x().value()
)
{
FatalErrorInFunction
<< "Size groups must be entered according to their representative"
<< " size"
<< exit(FatalError);
}
sizeGroups_.resize(sizeGroups().size() + 1);
sizeGroups_.set(sizeGroups().size() - 1, &group);
if (sizeGroups().size() == 1)
{
v_.append
(
new dimensionedScalar
(
"v",
sizeGroups().last().x()
)
);
v_.append
(
new dimensionedScalar
(
"v",
sizeGroups().last().x()
)
);
}
else
{
v_.last() =
0.5
*(
sizeGroups()[sizeGroups().size()-2].x()
+ sizeGroups().last().x()
);
v_.append
(
new dimensionedScalar
(
"v",
sizeGroups().last().x()
)
);
}
delta_.append(new PtrList<dimensionedScalar>());
Su_.append
(
new volScalarField
(
IOobject
(
"Su",
fluid_.time().name(),
mesh_
),
mesh_,
dimensionedScalar(inv(dimTime), 0)
)
);
Sp_.append
(
new volScalarField
(
IOobject
(
"Sp",
fluid_.time().name(),
mesh_
),
mesh_,
dimensionedScalar(inv(dimTime), 0)
)
);
}
void Foam::diameterModels::populationBalanceModel::initialiseDmdtfs()
{
forAllConstIter
(
HashTable<const diameterModels::velocityGroup*>,
velocityGroupPtrs(),
velocityGroupPtrs_,
iter1
)
{
@ -206,7 +66,7 @@ void Foam::diameterModels::populationBalanceModel::initialiseDmdtfs()
forAllConstIter
(
HashTable<const diameterModels::velocityGroup*>,
velocityGroupPtrs(),
velocityGroupPtrs_,
iter2
)
{
@ -857,7 +717,7 @@ Foam::diameterModels::populationBalanceModel::populationBalanceModel
U_(),
sourceUpdateCounter_(0)
{
this->registerVelocityGroups();
groups::retrieve(*this, velocityGroupPtrs_, sizeGroups_);
if (sizeGroups().size() < 3)
{
@ -867,6 +727,89 @@ Foam::diameterModels::populationBalanceModel::populationBalanceModel
<< exit(FatalError);
}
// Create velocity-group dilatation errors
forAllConstIter
(
HashTable<const diameterModels::velocityGroup*>,
velocityGroupPtrs_,
iter
)
{
const velocityGroup& velGroup = *iter();
dilatationErrors_.insert
(
velGroup.phase().name(),
volScalarField
(
IOobject
(
IOobject::groupName
(
"dilatationError",
velGroup.phase().name()
),
fluid_.time().name(),
mesh_
),
mesh_,
dimensionedScalar(inv(dimTime), 0)
)
);
}
// Create size-group boundaries
v_.setSize(sizeGroups().size() + 1);
v_.set(0, new dimensionedScalar("v", sizeGroups()[0].x()));
for (label i = 1; i < sizeGroups().size(); ++ i)
{
v_.set
(
i,
new dimensionedScalar
(
"v",
(sizeGroups()[i-1].x() + sizeGroups()[i].x())/2
)
);
}
v_.set(v_.size() - 1, new dimensionedScalar("v", sizeGroups().last().x()));
// ???
delta_.setSize(sizeGroups().size());
forAll(sizeGroups(), i)
{
delta_.set(i, new PtrList<dimensionedScalar>());
}
// Create size-group source terms
Su_.setSize(sizeGroups().size());
Sp_.setSize(sizeGroups().size());
forAll(sizeGroups(), i)
{
Su_.set
(
i,
new volScalarField
(
IOobject("Su", fluid_.time().name(), mesh_),
mesh_,
dimensionedScalar(inv(dimTime), 0)
)
);
Sp_.set
(
i,
new volScalarField
(
IOobject("Sp", fluid_.time().name(), mesh_),
mesh_,
dimensionedScalar(inv(dimTime), 0)
)
);
}
this->initialiseDmdtfs();
if (coalescenceModels_.size() != 0)

View File

@ -231,6 +231,147 @@ class populationBalanceModel
:
public regIOobject
{
public:
// Public Classes
//- Class to accumulate population balance sub-class pointers
class groups
:
public regIOobject
{
// Private Data
//- Velocity group pointers
HashTable<const velocityGroup*> velocityGroupPtrs_;
//- Size group pointers
UPtrList<sizeGroup> sizeGroups_;
// Private Constructor
//- Construct with a name on a database
groups(const word& popBalName, const objectRegistry& db)
:
regIOobject
(
IOobject
(
name(popBalName),
db.time().constant(),
db
)
)
{}
// Private Member Functions
//- Return the name of the pointer cache
static word name(const word& popBalName)
{
return popBalName + ":groups";
}
public:
// Constructors
//- Lookup in the registry or construct new
static groups& New
(
const word& popBalName,
const objectRegistry& db
)
{
if (db.foundObject<groups>(name(popBalName)))
{
return db.lookupObjectRef<groups>(name(popBalName));
}
groups* ps = new groups(popBalName, db);
ps->store();
return *ps;
}
// Member Functions
//- Return the current number of size groups
label nSizeGroups()
{
return sizeGroups_.size();
}
//- Insert a velocity group into the table
void insert(velocityGroup& group)
{
velocityGroupPtrs_.insert(group.phase().name(), &group);
const label i0 = nSizeGroups();
sizeGroups_.resize(i0 + group.sizeGroups().size());
forAll(group.sizeGroups(), i)
{
sizeGroups_.set(i0 + i, &group.sizeGroups()[i]);
if
(
i0 + i != 0
&& sizeGroups_[i0 + i - 1].x().value()
>= sizeGroups_[i0 + i].x().value()
)
{
FatalErrorInFunction
<< "Size groups must be specified in order of "
<< "their representative size"
<< exit(FatalError);
}
}
}
//- Retrieve the pointers
static void retrieve
(
const populationBalanceModel& popBal,
HashTable<const velocityGroup*>& velGroupPtrs,
UPtrList<sizeGroup>& szGroupPtrs
)
{
const objectRegistry& db = popBal.fluid().mesh();
if (!db.foundObject<groups>(name(popBal.name())))
{
FatalErrorInFunction
<< "No velocity groups exist for population "
<< "balance \"" << popBal.name() << "\""
<< exit(FatalError);
}
groups& ps =
db.lookupObjectRef<groups>(name(popBal.name()));
velGroupPtrs.transfer(ps.velocityGroupPtrs_);
szGroupPtrs.transfer(ps.sizeGroups_);
ps.checkOut();
}
//- Dummy write for regIOobject
virtual bool writeData(Ostream&) const
{
return true;
}
};
private:
// Private Data
//- Reference to the phaseSystem
@ -328,8 +469,6 @@ class populationBalanceModel
void registerVelocityGroups();
void registerSizeGroups(sizeGroup& group);
void initialiseDmdtfs();
void createPhasePairs();
@ -441,9 +580,6 @@ public:
//- Return continuous phase
inline const phaseModel& continuousPhase() const;
//- Return the velocity groups belonging to this populationBalance
inline const HashTable<const velocityGroup*>& velocityGroupPtrs() const;
//- Return the size groups belonging to this populationBalance
inline const UPtrList<sizeGroup>& sizeGroups() const;

View File

@ -89,13 +89,6 @@ Foam::diameterModels::populationBalanceModel::continuousPhase() const
}
inline const Foam::HashTable<const Foam::diameterModels::velocityGroup*>&
Foam::diameterModels::populationBalanceModel::velocityGroupPtrs() const
{
return velocityGroupPtrs_;
}
inline const Foam::UPtrList<Foam::diameterModels::sizeGroup>&
Foam::diameterModels::populationBalanceModel::sizeGroups() const
{
@ -133,7 +126,7 @@ Foam::diameterModels::populationBalanceModel::alphas() const
}
else
{
return velocityGroupPtrs_[velocityGroupPtrs_.begin().key()]->phase();
return velocityGroupPtrs_.begin()()->phase();
}
}
@ -147,8 +140,7 @@ Foam::diameterModels::populationBalanceModel::U() const
}
else
{
return
velocityGroupPtrs_[velocityGroupPtrs_.begin().key()]->phase().U();
return velocityGroupPtrs_.begin()()->phase().U();
}
}

View File

@ -0,0 +1,111 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
-------------------------------------------------------------------------------
Description
Generates initial size group fractions given a distribution. Uses the
fDefault.<phase> field file as a reference from which to construct boundary
conditions. All boundary conditions in this file must be default
constructable, or this will not work.
\*---------------------------------------------------------------------------*/
type coded;
libs ("libutilityFunctionObjects.so");
phase <phaseName>; // The phase to write
// size-group fractions
// for
initialDistributionFile <initialDistributionFileName>; // The file containing
// the distribution. In
// foam format.
codeInclude
#{
#include "stringOps.H"
#include "Table.H"
#include "volFields.H"
#};
codeRead
#{
const word phaseName = dict.lookup<word>("phase");
const fileName initialDistributionFileName =
dict.lookup<fileName>("initialDistributionFile");
const List<dictionary> sizeGroupDicts
(
IOdictionary
(
IOobject
(
"phaseProperties",
mesh().time().constant(),
mesh(),
IOobject::MUST_READ,
IOobject::NO_WRITE
)
)
.subDict(phaseName)
.subDict("velocityGroupCoeffs")
.lookup("sizeGroups")
);
const Function1s::Table<scalar> initialDistribution
(
"initialDistribution",
dictionary
(
"format", "foam",
"file", initialDistributionFileName
)
);
const volScalarField fDefault
(
IOobject
(
IOobject::groupName("fDefault", phaseName),
mesh().time().timeName(),
mesh(),
IOobject::MUST_READ
),
mesh()
);
forAll(sizeGroupDicts, i)
{
volScalarField
(
IOobject
(
IOobject::groupName("f" + Foam::name(i), phaseName),
mesh().time().timeName(),
mesh(),
IOobject::READ_IF_PRESENT
),
mesh(),
dimensionedScalar
(
dimless,
initialDistribution.value
(
dimensionedScalar
(
"dSph",
dimLength,
sizeGroupDicts[i]
).value()
)
),
fDefault.boundaryField().types()
).write();
}
#};
// ************************************************************************* //

View File

@ -27,7 +27,7 @@ laminar
nu0 [0 2 -1 0 0 0 0] 0.01;
nuInf [0 2 -1 0 0 0 0] 10;
m [0 0 1 0 0 0 0] 0.4;
n [0 0 0 0 0 0 0] 3;
n [] 3;
}
}

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.5;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.5;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.99;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.01;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.99;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.01;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.05;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.95;

View File

@ -1,23 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField {}
// ************************************************************************* //

View File

@ -1,23 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField {}
// ************************************************************************* //

View File

@ -10,13 +10,13 @@ FoamFile
format ascii;
class volScalarField;
location "0";
object f.air;
object f19.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1.0;
internalField uniform 1;
boundaryField {}

View File

@ -10,13 +10,13 @@ FoamFile
format ascii;
class volScalarField;
location "0";
object f.air;
object f24.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1.0;
internalField uniform 1;
boundaryField {}

View File

@ -10,13 +10,13 @@ FoamFile
format ascii;
class volScalarField;
location "0";
object f.air3;
object f28.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1.0;
internalField uniform 1;
boundaryField {}

View File

@ -10,13 +10,13 @@ FoamFile
format ascii;
class volScalarField;
location "0";
object f.air1;
object fDefault.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1.0;
internalField uniform 0;
boundaryField {}

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -23,7 +23,9 @@ populationBalances (bubbles);
air1
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -32,26 +34,26 @@ air1
sizeGroups
(
f0 {dSph 2.8193481473E-02; value 0.0;}
f1 {dSph 3.2273479789E-02; value 0.0;}
f2 {dSph 3.6943911970E-02; value 0.0;}
f3 {dSph 4.2290222209E-02; value 0.0;}
f4 {dSph 4.8410219684E-02; value 0.0;}
f5 {dSph 5.5415867956E-02; value 0.0;}
f6 {dSph 6.3435333314E-02; value 0.0;}
f7 {dSph 7.2615329525E-02; value 0.0;}
f8 {dSph 8.3123801935E-02; value 0.0;}
f9 {dSph 9.5152999970E-02; value 0.0;}
f10{dSph 1.0892299429E-01; value 0.0;}
f11{dSph 1.2468570290E-01; value 0.0;}
f12{dSph 1.4272949995E-01; value 0.0;}
f13{dSph 1.6338449143E-01; value 0.0;}
f14{dSph 1.8702855435E-01; value 0.0;}
f15{dSph 2.1409424994E-01; value 0.0;}
f16{dSph 2.4507673715E-01; value 0.0;}
f17{dSph 2.8054283153E-01; value 0.0;}
f18{dSph 3.2114137490E-01; value 0.0;}
f19{dSph 3.6761510572E-01; value 1.0;}
{ dSph 2.8193481473E-02; }
{ dSph 3.2273479789E-02; }
{ dSph 3.6943911970E-02; }
{ dSph 4.2290222209E-02; }
{ dSph 4.8410219684E-02; }
{ dSph 5.5415867956E-02; }
{ dSph 6.3435333314E-02; }
{ dSph 7.2615329525E-02; }
{ dSph 8.3123801935E-02; }
{ dSph 9.5152999970E-02; }
{ dSph 1.0892299429E-01; }
{ dSph 1.2468570290E-01; }
{ dSph 1.4272949995E-01; }
{ dSph 1.6338449143E-01; }
{ dSph 1.8702855435E-01; }
{ dSph 2.1409424994E-01; }
{ dSph 2.4507673715E-01; }
{ dSph 2.8054283153E-01; }
{ dSph 3.2114137490E-01; }
{ dSph 3.6761510572E-01; }
);
}
@ -61,7 +63,9 @@ air1
air2
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -70,11 +74,11 @@ air2
sizeGroups
(
f20{dSph 4.2081424730E-01; value 1.0;}
f21{dSph 4.8171206235E-01; value 0.0;}
f22{dSph 5.5142265857E-01; value 0.0;}
f23{dSph 6.3122137094E-01; value 0.0;}
f24{dSph 7.2256809352E-01; value 0.0;}
{ dSph 4.2081424730E-01; }
{ dSph 4.8171206235E-01; }
{ dSph 5.5142265857E-01; }
{ dSph 6.3122137094E-01; }
{ dSph 7.2256809352E-01; }
);
}
@ -84,7 +88,9 @@ air2
air3
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -93,10 +99,10 @@ air3
sizeGroups
(
f25{dSph 8.2713398787E-01; value 0.0;}
f26{dSph 9.4683205641E-01; value 0.0;}
f27{dSph 1.0838521403E+00; value 0.0;}
f28{dSph 1.2407009818E+00; value 1.0;}
{ dSph 8.2713398787E-01; }
{ dSph 9.4683205641E-01; }
{ dSph 1.0838521403E+00; }
{ dSph 1.2407009818E+00; }
);
}
@ -106,6 +112,7 @@ air3
water
{
type pureIsothermalPhaseModel;
diameterModel none;
residualAlpha 1e-6;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.05;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.95;

View File

@ -1,23 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField {}
// ************************************************************************* //

View File

@ -1,23 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f19.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 1;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f24.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 1;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f28.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 1;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -23,7 +23,9 @@ populationBalances (bubbles);
air1
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -32,26 +34,26 @@ air1
sizeGroups
(
f0 {dSph 2.8193481473E-02; value 0.0;}
f1 {dSph 3.2273479789E-02; value 0.0;}
f2 {dSph 3.6943911970E-02; value 0.0;}
f3 {dSph 4.2290222209E-02; value 0.0;}
f4 {dSph 4.8410219684E-02; value 0.0;}
f5 {dSph 5.5415867956E-02; value 0.0;}
f6 {dSph 6.3435333314E-02; value 0.0;}
f7 {dSph 7.2615329525E-02; value 0.0;}
f8 {dSph 8.3123801935E-02; value 0.0;}
f9 {dSph 9.5152999970E-02; value 0.0;}
f10{dSph 1.0892299429E-01; value 0.0;}
f11{dSph 1.2468570290E-01; value 0.0;}
f12{dSph 1.4272949995E-01; value 0.0;}
f13{dSph 1.6338449143E-01; value 0.0;}
f14{dSph 1.8702855435E-01; value 0.0;}
f15{dSph 2.1409424994E-01; value 0.0;}
f16{dSph 2.4507673715E-01; value 0.0;}
f17{dSph 2.8054283153E-01; value 0.0;}
f18{dSph 3.2114137490E-01; value 0.0;}
f19{dSph 3.6761510572E-01; value 1.0;}
{ dSph 2.8193481473E-02; }
{ dSph 3.2273479789E-02; }
{ dSph 3.6943911970E-02; }
{ dSph 4.2290222209E-02; }
{ dSph 4.8410219684E-02; }
{ dSph 5.5415867956E-02; }
{ dSph 6.3435333314E-02; }
{ dSph 7.2615329525E-02; }
{ dSph 8.3123801935E-02; }
{ dSph 9.5152999970E-02; }
{ dSph 1.0892299429E-01; }
{ dSph 1.2468570290E-01; }
{ dSph 1.4272949995E-01; }
{ dSph 1.6338449143E-01; }
{ dSph 1.8702855435E-01; }
{ dSph 2.1409424994E-01; }
{ dSph 2.4507673715E-01; }
{ dSph 2.8054283153E-01; }
{ dSph 3.2114137490E-01; }
{ dSph 3.6761510572E-01; }
);
}
@ -61,7 +63,9 @@ air1
air2
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -70,11 +74,11 @@ air2
sizeGroups
(
f20{dSph 4.2081424730E-01; value 1.0;}
f21{dSph 4.8171206235E-01; value 0.0;}
f22{dSph 5.5142265857E-01; value 0.0;}
f23{dSph 6.3122137094E-01; value 0.0;}
f24{dSph 7.2256809352E-01; value 0.0;}
{ dSph 4.2081424730E-01; }
{ dSph 4.8171206235E-01; }
{ dSph 5.5142265857E-01; }
{ dSph 6.3122137094E-01; }
{ dSph 7.2256809352E-01; }
);
}
@ -84,7 +88,9 @@ air2
air3
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -93,10 +99,10 @@ air3
sizeGroups
(
f25{dSph 8.2713398787E-01; value 0.0;}
f26{dSph 9.4683205641E-01; value 0.0;}
f27{dSph 1.0838521403E+00; value 0.0;}
f28{dSph 1.2407009818E+00; value 1.0;}
{ dSph 8.2713398787E-01; }
{ dSph 9.4683205641E-01; }
{ dSph 1.0838521403E+00; }
{ dSph 1.2407009818E+00; }
);
}
@ -106,6 +112,7 @@ air3
water
{
type pureIsothermalPhaseModel;
diameterModel none;
residualAlpha 1e-6;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 5.408481e-02;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 9.459152e-01;

View File

@ -1,23 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField {}
// ************************************************************************* //

View File

@ -1,23 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField {}
// ************************************************************************* //

View File

@ -1,23 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f47.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 1;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f56.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 1;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -6,6 +6,6 @@ cd "${0%/*}" || exit 1
# Source clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase && rm -f numberDensity.eps
cleanCase && rm -f 0/f[0-9]*.air1 numberDensity.eps
#------------------------------------------------------------------------------

View File

@ -7,6 +7,13 @@ cd "${0%/*}" || exit 1
. $WM_PROJECT_DIR/bin/tools/RunFunctions
runApplication zeroDimensionalMesh
runApplication foamPostProcess -func "
populationBalanceInitialDistributionFs
(
phase=air1,
initialDistributionFile=\"constant/initialDistribution.air1\"
)
"
runApplication $(getApplication)
( cd validation && ./createGraphs )

View File

@ -0,0 +1,49 @@
(
(2.6472201610E-02 5.0000000000E-10)
(2.8516314790E-02 2.0000000000E-10)
(3.0718268709E-02 4.0000000000E-10)
(3.3090252012E-02 8.0000000000E-10)
(3.5645392557E-02 1.5000000000E-09)
(3.8397835576E-02 2.9000000000E-09)
(4.1362814395E-02 5.7000000000E-09)
(4.4556741007E-02 1.1000000000E-08)
(4.7997294160E-02 2.1500000000E-08)
(5.1703518614E-02 4.2000000000E-08)
(5.5695926879E-02 8.1900000000E-08)
(5.9996618320E-02 1.5950000000E-07)
(6.4629397027E-02 3.1070000000E-07)
(6.9619908288E-02 6.0460000000E-07)
(7.4995772590E-02 1.1757000000E-06)
(8.0786746904E-02 2.2836000000E-06)
(8.7024884740E-02 4.4295000000E-06)
(9.3744716047E-02 8.5770000000E-06)
(1.0098343332E-01 1.6572400000E-05)
(1.0878110624E-01 3.1934500000E-05)
(1.1718089506E-01 6.1329900000E-05)
(1.2622929258E-01 1.1728840000E-04)
(1.3597638341E-01 2.2312640000E-04)
(1.4647611820E-01 4.2168510000E-04)
(1.5778661510E-01 7.9041010000E-04)
(1.6997047865E-01 1.4663924000E-03)
(1.8309514838E-01 2.6857456000E-03)
(1.9723326857E-01 4.8406166000E-03)
(2.1246309893E-01 8.5509222000E-03)
(2.2886893516E-01 1.4730611700E-02)
(2.4654158664E-01 2.4592238100E-02)
(2.6557887273E-01 3.9476363300E-02)
(2.8608616864E-01 6.0336272800E-02)
(3.0817698237E-01 8.6735651800E-02)
(3.3197359122E-01 1.1548859450E-01)
(3.5760771049E-01 1.3972798580E-01)
(3.8522122921E-01 1.4997928090E-01)
(4.1496698934E-01 1.3860649860E-01)
(4.4700963811E-01 1.0624083860E-01)
(4.8152653620E-01 6.4453106200E-02)
(5.1870873668E-01 2.9191189700E-02)
(5.5876204826E-01 9.1744326000E-03)
(6.0190816932E-01 1.8262321000E-03)
(6.4838592116E-01 2.0539720000E-04)
(6.9845255939E-01 1.1316400000E-05)
(7.5238521196E-01 2.5550000000E-07)
(8.1048240020E-01 1.9000000000E-09)
)

View File

@ -23,7 +23,9 @@ populationBalances (bubbles);
air1
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -32,54 +34,53 @@ air1
sizeGroups
(
f0 {dSph 2.6472201610E-02; value 5.0000000000E-10;}
f1 {dSph 2.8516314790E-02; value 2.0000000000E-10;}
f2 {dSph 3.0718268709E-02; value 4.0000000000E-10;}
f3 {dSph 3.3090252012E-02; value 8.0000000000E-10;}
f4 {dSph 3.5645392557E-02; value 1.5000000000E-09;}
f5 {dSph 3.8397835576E-02; value 2.9000000000E-09;}
f6 {dSph 4.1362814395E-02; value 5.7000000000E-09;}
f7 {dSph 4.4556741007E-02; value 1.1000000000E-08;}
f8 {dSph 4.7997294160E-02; value 2.1500000000E-08;}
f9 {dSph 5.1703518614E-02; value 4.2000000000E-08;}
f10{dSph 5.5695926879E-02; value 8.1900000000E-08;}
f11{dSph 5.9996618320E-02; value 1.5950000000E-07;}
f12{dSph 6.4629397027E-02; value 3.1070000000E-07;}
f13{dSph 6.9619908288E-02; value 6.0460000000E-07;}
f14{dSph 7.4995772590E-02; value 1.1757000000E-06;}
f15{dSph 8.0786746904E-02; value 2.2836000000E-06;}
f16{dSph 8.7024884740E-02; value 4.4295000000E-06;}
f17{dSph 9.3744716047E-02; value 8.5770000000E-06;}
f18{dSph 1.0098343332E-01; value 1.6572400000E-05;}
f19{dSph 1.0878110624E-01; value 3.1934500000E-05;}
f20{dSph 1.1718089506E-01; value 6.1329900000E-05;}
f21{dSph 1.2622929258E-01; value 1.1728840000E-04;}
f22{dSph 1.3597638341E-01; value 2.2312640000E-04;}
f23{dSph 1.4647611820E-01; value 4.2168510000E-04;}
f24{dSph 1.5778661510E-01; value 7.9041010000E-04;}
f25{dSph 1.6997047865E-01; value 1.4663924000E-03;}
f26{dSph 1.8309514838E-01; value 2.6857456000E-03;}
f27{dSph 1.9723326857E-01; value 4.8406166000E-03;}
f28{dSph 2.1246309893E-01; value 8.5509222000E-03;}
f29{dSph 2.2886893516E-01; value 1.4730611700E-02;}
f30{dSph 2.4654158664E-01; value 2.4592238100E-02;}
f31{dSph 2.6557887273E-01; value 3.9476363300E-02;}
f32{dSph 2.8608616864E-01; value 6.0336272800E-02;}
f33{dSph 3.0817698237E-01; value 8.6735651800E-02;}
f34{dSph 3.3197359122E-01; value 1.1548859450E-01;}
f35{dSph 3.5760771049E-01; value 1.3972798580E-01;}
f36{dSph 3.8522122921E-01; value 1.4997928090E-01;}
f37{dSph 4.1496698934E-01; value 1.3860649860E-01;}
f38{dSph 4.4700963811E-01; value 1.0624083860E-01;}
f39{dSph 4.8152653620E-01; value 6.4453106200E-02;}
f40{dSph 5.1870873668E-01; value 2.9191189700E-02;}
f41{dSph 5.5876204826E-01; value 9.1744326000E-03;}
f42{dSph 6.0190816932E-01; value 1.8262321000E-03;}
f43{dSph 6.4838592116E-01; value 2.0539720000E-04;}
f44{dSph 6.9845255939E-01; value 1.1316400000E-05;}
f45{dSph 7.5238521196E-01; value 2.5550000000E-07;}
f46{dSph 8.1048240020E-01; value 1.9000000000E-09;}
{ dSph 2.6472201610E-02; }
{ dSph 2.8516314790E-02; }
{ dSph 3.0718268709E-02; }
{ dSph 3.3090252012E-02; }
{ dSph 3.5645392557E-02; }
{ dSph 3.8397835576E-02; }
{ dSph 4.1362814395E-02; }
{ dSph 4.4556741007E-02; }
{ dSph 4.7997294160E-02; }
{ dSph 5.1703518614E-02; }
{ dSph 5.5695926879E-02; }
{ dSph 5.9996618320E-02; }
{ dSph 6.4629397027E-02; }
{ dSph 6.9619908288E-02; }
{ dSph 7.4995772590E-02; }
{ dSph 8.0786746904E-02; }
{ dSph 8.7024884740E-02; }
{ dSph 9.3744716047E-02; }
{ dSph 1.0098343332E-01; }
{ dSph 1.0878110624E-01; }
{ dSph 1.1718089506E-01; }
{ dSph 1.2622929258E-01; }
{ dSph 1.3597638341E-01; }
{ dSph 1.4647611820E-01; }
{ dSph 1.5778661510E-01; }
{ dSph 1.6997047865E-01; }
{ dSph 1.8309514838E-01; }
{ dSph 1.9723326857E-01; }
{ dSph 2.1246309893E-01; }
{ dSph 2.2886893516E-01; }
{ dSph 2.4654158664E-01; }
{ dSph 2.6557887273E-01; }
{ dSph 2.8608616864E-01; }
{ dSph 3.0817698237E-01; }
{ dSph 3.3197359122E-01; }
{ dSph 3.5760771049E-01; }
{ dSph 3.8522122921E-01; }
{ dSph 4.1496698934E-01; }
{ dSph 4.4700963811E-01; }
{ dSph 4.8152653620E-01; }
{ dSph 5.1870873668E-01; }
{ dSph 5.5876204826E-01; }
{ dSph 6.0190816932E-01; }
{ dSph 6.4838592116E-01; }
{ dSph 6.9845255939E-01; }
{ dSph 7.5238521196E-01; }
{ dSph 8.1048240020E-01; }
);
}
@ -89,7 +90,9 @@ air1
air2
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -98,15 +101,15 @@ air2
sizeGroups
(
f47{dSph 8.7306570017E-01; value 1.0000000000E+00;}
f48{dSph 9.4048151557E-01; value 0.0000000000E+00;}
f49{dSph 1.0131030009E+00; value 0.0000000000E+00;}
f50{dSph 1.0913321246E+00; value 0.0000000000E+00;}
f51{dSph 1.1756018938E+00; value 0.0000000000E+00;}
f52{dSph 1.2663787514E+00; value 0.0000000000E+00;}
f53{dSph 1.3641651564E+00; value 0.0000000000E+00;}
f54{dSph 1.4695023670E+00; value 0.0000000000E+00;}
f55{dSph 1.5829734383E+00; value 0.0000000000E+00;}
{ dSph 8.7306570017E-01; }
{ dSph 9.4048151557E-01; }
{ dSph 1.0131030009E+00; }
{ dSph 1.0913321246E+00; }
{ dSph 1.1756018938E+00; }
{ dSph 1.2663787514E+00; }
{ dSph 1.3641651564E+00; }
{ dSph 1.4695023670E+00; }
{ dSph 1.5829734383E+00; }
);
}
@ -116,7 +119,9 @@ air2
air3
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -125,21 +130,21 @@ air3
sizeGroups
(
f56{dSph 1.7052064454E+00; value 1.0000000000E+00;}
f57{dSph 1.8368779600E+00; value 0.0000000000E+00;}
f58{dSph 1.9787167982E+00; value 0.0000000000E+00;}
f59{dSph 2.1315080559E+00; value 0.0000000000E+00;}
f60{dSph 2.2960974494E+00; value 0.0000000000E+00;}
f61{dSph 2.4733959981E+00; value 0.0000000000E+00;}
f62{dSph 2.6643850705E+00; value 0.0000000000E+00;}
f63{dSph 2.8701218120E+00; value 0.0000000000E+00;}
f64{dSph 3.0917449976E+00; value 0.0000000000E+00;}
f65{dSph 3.3304813381E+00; value 0.0000000000E+00;}
f66{dSph 3.5876522644E+00; value 0.0000000000E+00;}
f67{dSph 3.8646812476E+00; value 0.0000000000E+00;}
f68{dSph 4.1631016726E+00; value 0.0000000000E+00;}
f69{dSph 4.4845653305E+00; value 0.0000000000E+00;}
f70{dSph 4.8308515589E+00; value 0.0000000000E+00;}
{ dSph 1.7052064454E+00; }
{ dSph 1.8368779600E+00; }
{ dSph 1.9787167982E+00; }
{ dSph 2.1315080559E+00; }
{ dSph 2.2960974494E+00; }
{ dSph 2.4733959981E+00; }
{ dSph 2.6643850705E+00; }
{ dSph 2.8701218120E+00; }
{ dSph 3.0917449976E+00; }
{ dSph 3.3304813381E+00; }
{ dSph 3.5876522644E+00; }
{ dSph 3.8646812476E+00; }
{ dSph 4.1631016726E+00; }
{ dSph 4.4845653305E+00; }
{ dSph 4.8308515589E+00; }
);
}

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.066553351;

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f10.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0.1429;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f11.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0.1758;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f12.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0.2146;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f13.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0.2599;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f8.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0.0918;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f9.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0.1151;
boundaryField {}
// ************************************************************************* //

View File

@ -0,0 +1,23 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField {}
// ************************************************************************* //

View File

@ -25,7 +25,9 @@ populationBalances (bubbles);
air
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
@ -34,35 +36,35 @@ air
sizeGroups
(
f0 {dSph 1.000; value 0.0000;}
f1 {dSph 1.074; value 0.0000;}
f2 {dSph 1.147; value 0.0000;}
f3 {dSph 1.221; value 0.0000;}
f4 {dSph 1.294; value 0.0000;}
f5 {dSph 1.368; value 0.0000;}
f6 {dSph 1.441; value 0.0000;}
f7 {dSph 1.515; value 0.0000;}
f8 {dSph 1.588; value 0.0918;}
f9 {dSph 1.662; value 0.1151;}
f10{dSph 1.735; value 0.1429;}
f11{dSph 1.809; value 0.1758;}
f12{dSph 1.882; value 0.2146;}
f13{dSph 1.956; value 0.2599;}
f14{dSph 2.029; value 0.0000;}
f15{dSph 2.103; value 0.0000;}
f16{dSph 2.176; value 0.0000;}
f17{dSph 2.250; value 0.0000;}
f18{dSph 2.323; value 0.0000;}
f19{dSph 2.397; value 0.0000;}
f20{dSph 2.470; value 0.0000;}
f21{dSph 2.544; value 0.0000;}
f22{dSph 2.617; value 0.0000;}
f23{dSph 2.691; value 0.0000;}
f24{dSph 2.764; value 0.0000;}
f25{dSph 2.838; value 0.0000;}
f26{dSph 2.911; value 0.0000;}
f27{dSph 2.985; value 0.0000;}
f28{dSph 3.058; value 0.0000;}
{ dSph 1.000; }
{ dSph 1.074; }
{ dSph 1.147; }
{ dSph 1.221; }
{ dSph 1.294; }
{ dSph 1.368; }
{ dSph 1.441; }
{ dSph 1.515; }
{ dSph 1.588; }
{ dSph 1.662; }
{ dSph 1.735; }
{ dSph 1.809; }
{ dSph 1.882; }
{ dSph 1.956; }
{ dSph 2.029; }
{ dSph 2.103; }
{ dSph 2.176; }
{ dSph 2.250; }
{ dSph 2.323; }
{ dSph 2.397; }
{ dSph 2.470; }
{ dSph 2.544; }
{ dSph 2.617; }
{ dSph 2.691; }
{ dSph 2.764; }
{ dSph 2.838; }
{ dSph 2.911; }
{ dSph 2.985; }
{ dSph 3.058; }
);
}
@ -72,6 +74,7 @@ air
water
{
type pureIsothermalPhaseModel;
diameterModel none;
residualAlpha 1e-6;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 0.0;

View File

@ -14,7 +14,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1.0;

View File

@ -1,37 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1.0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
value uniform 1.0;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -10,13 +10,13 @@ FoamFile
format ascii;
class volScalarField;
location "0";
object f.air2;
object f0.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1.0;
internalField uniform 1;
boundaryField
{
@ -25,7 +25,7 @@ boundaryField
inlet
{
type fixedValue;
value uniform 1.0;
value $internalField;
}
outlet

View File

@ -10,13 +10,13 @@ FoamFile
format ascii;
class volScalarField;
location "0";
object f.air3;
object f11.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
dimensions [];
internalField uniform 1.0;
internalField uniform 1;
boundaryField
{
@ -25,7 +25,7 @@ boundaryField
inlet
{
type fixedValue;
value uniform 1.0;
value $internalField;
}
outlet

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object f6.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 1;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,37 @@
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
format ascii;
class volScalarField;
location "0";
object fDefault.air3;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [];
internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
}
// ************************************************************************* //

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