populationBalance: Standardise default field handling
Population balance size-group fraction 'f<index>.<phase>' fields are now
read from an 'fDefault.<phase>' field if they are not provided
explicitly. This is the same process as is applied to species fractions
or fvDOM rays. The sum-of-fs field 'f.<phase>' is no longer required.
The value of a fraction field and its boundary conditions must now be
specified in the corresponding field file. Value entries are no longer
given in the size group dictionaries in the constant/phaseProperties
file, and an error message will be generated if a value entry is found.
The fraction fields are now numbered programatically, rather than being
named. So, the size-group dictionaries do not require a name any more.
All of the above is also true for any 'kappa<index>.<phase>' fields that
are constructed and solved for as part of a fractal shape model.
The following is an example of a specification of a population balance
with two phases in it:
populationBalances (bubbles);
air1
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
shapeModel spherical;
sizeGroups
(
{ dSph 1e-3; } // Size-group #0: Fraction field f0.air1
{ dSph 2e-3; } // ...
{ dSph 3e-3; }
{ dSph 4e-3; }
{ dSph 5e-3; }
);
}
residualAlpha 1e-6;
}
air2
{
type pureIsothermalPhaseModel;
diameterModel velocityGroup;
velocityGroupCoeffs
{
populationBalance bubbles;
shapeModel spherical;
sizeGroups
(
{ dSph 6e-3; } // Size-group #5: Fraction field f5.air2
{ dSph 7e-3; } // ...
{ dSph 8e-3; }
{ dSph 9e-3; }
{ dSph 10e-3; }
{ dSph 11e-3; }
{ dSph 12e-3; }
);
}
residualAlpha 1e-6;
}
Previously a fraction field was constructed automatically using the
boundary condition types from the sum-of-fs field, and the value of both
the internal and boundary field was then overridden by the value setting
provided for the size-group. This procedure doesn't generalise to
boundary conditions other than basic types that store no additional
data, like zeroGradient and fixedValue. More complex boundary conditions
such as inletOutlet and uniformFixedValue are incompatible with this
approach.
This is arguably less convenient than the previous specification, where
the sizes and fractions appeared together in a table-like list in the
sizeGroups entry. In the event that a substantial proportion of the
size-groups have a non-zero initial fraction, writing out all the field
files manually is extremely tedious. To mitigate this somewhat, a
packaged function has been added to initialise the fields given a file
containing a size distribution (see the pipeBend tutorial for an example
of its usage). This function has the same limitations as the previous
code in that it requires all boundary conditions to be default
constructable.
Ultimately, the "correct" fix for the issue of how to set the boundary
conditions conveniently is to create customised inlet-outlet boundary
conditions that determine their field's position within the population
balance and evaluate a distribution to determine the appropriate inlet
value. This work is pending funding.
This commit is contained in:
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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_ =
|
||||
|
||||
@ -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>
|
||||
>();
|
||||
|
||||
@ -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
|
||||
|
||||
@ -31,6 +31,8 @@ License
|
||||
#include "fvmSup.H"
|
||||
#include "mixedFvPatchField.H"
|
||||
|
||||
using Foam::constant::mathematical::pi;
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
@ -60,7 +62,84 @@ const Foam::NamedEnum
|
||||
> Foam::diameterModels::shapeModels::fractal::sgTypeNames_;
|
||||
|
||||
|
||||
using Foam::constant::mathematical::pi;
|
||||
// * * * * * * * * * * * Private Static Member Functions * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::diameterModels::shapeModels::fractal::readKappa(const sizeGroup& group)
|
||||
{
|
||||
auto io = [&](const word& name, const IOobject::readOption r)
|
||||
{
|
||||
return
|
||||
IOobject
|
||||
(
|
||||
IOobject::groupName
|
||||
(
|
||||
"kappa" + name,
|
||||
group.phase().name()
|
||||
),
|
||||
group.mesh().time().name(),
|
||||
group.mesh(),
|
||||
r,
|
||||
IOobject::AUTO_WRITE
|
||||
);
|
||||
};
|
||||
|
||||
const word name(Foam::name(group.i()));
|
||||
|
||||
typeIOobject<volScalarField> fio(io(name, IOobject::MUST_READ));
|
||||
|
||||
// Read the field, if it is available
|
||||
if (fio.headerOk())
|
||||
{
|
||||
return tmp<volScalarField>(new volScalarField(fio, group.mesh()));
|
||||
}
|
||||
|
||||
// Read the default field
|
||||
tmp<volScalarField> tfDefault
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
io("Default", IOobject::MUST_READ),
|
||||
group.mesh()
|
||||
)
|
||||
);
|
||||
|
||||
// Transfer it into a result field with the correct name
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
io(name, IOobject::NO_READ),
|
||||
tfDefault
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * 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 +147,14 @@ 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),
|
||||
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()
|
||||
),
|
||||
Df_("Df", dimless, group.dict()),
|
||||
alphaC_("alphaC", dimless, group.dict()),
|
||||
SecondaryPropertyModel<shapeModel>(group),
|
||||
kappa_(readKappa(group)),
|
||||
Df_("Df", dimless, groupDict),
|
||||
alphaC_("alphaC", dimless, groupDict),
|
||||
dColl_
|
||||
(
|
||||
IOobject
|
||||
@ -113,32 +175,24 @@ 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);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -162,39 +216,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 +247,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 +262,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 +276,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 +302,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 +317,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 +330,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 +338,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;
|
||||
}
|
||||
|
||||
@ -125,8 +125,15 @@ private:
|
||||
autoPtr<sinteringModel> sinteringModel_;
|
||||
|
||||
|
||||
// Private Static Member Functions
|
||||
|
||||
//- Read and return the kappa field. Construction helper.
|
||||
static tmp<volScalarField> readKappa(const sizeGroup& group);
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Compute and return the collisional diameter
|
||||
tmp<volScalarField> dColl() const;
|
||||
|
||||
|
||||
@ -138,11 +145,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
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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
|
||||
(
|
||||
|
||||
@ -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_;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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())
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -27,70 +27,101 @@ License
|
||||
#include "mixedFvPatchField.H"
|
||||
#include "shapeModel.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
using Foam::constant::mathematical::pi;
|
||||
|
||||
// * * * * * * * * * * * Private Static Member Functions * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::diameterModels::sizeGroup::readF
|
||||
(
|
||||
const label i,
|
||||
const velocityGroup& group
|
||||
)
|
||||
{
|
||||
auto io = [&](const word& name, const IOobject::readOption r)
|
||||
{
|
||||
return
|
||||
IOobject
|
||||
(
|
||||
IOobject::groupName
|
||||
(
|
||||
"f" + name,
|
||||
group.phase().name()
|
||||
),
|
||||
group.phase().mesh().time().name(),
|
||||
group.phase().mesh(),
|
||||
r,
|
||||
IOobject::AUTO_WRITE
|
||||
);
|
||||
};
|
||||
|
||||
const word name(Foam::name(i));
|
||||
|
||||
typeIOobject<volScalarField> fio(io(name, IOobject::MUST_READ));
|
||||
|
||||
// Read the field, if it is available
|
||||
if (fio.headerOk())
|
||||
{
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField(fio, group.phase().mesh())
|
||||
);
|
||||
}
|
||||
|
||||
// Read the default field
|
||||
tmp<volScalarField> tfDefault
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
io("Default", IOobject::MUST_READ),
|
||||
group.phase().mesh()
|
||||
)
|
||||
);
|
||||
|
||||
// Transfer it into a result field with the correct name
|
||||
return
|
||||
tmp<volScalarField>
|
||||
(
|
||||
new volScalarField
|
||||
(
|
||||
io(name, IOobject::NO_READ),
|
||||
tfDefault
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * 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(readF(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);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -103,34 +134,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
|
||||
{
|
||||
|
||||
@ -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,66 +99,83 @@ 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_;
|
||||
|
||||
|
||||
// Private Static Member Functions
|
||||
|
||||
//- Read and return the fraction field. Construction helper.
|
||||
static tmp<volScalarField> readF
|
||||
(
|
||||
const label i,
|
||||
const velocityGroup& group
|
||||
);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from index, dictionary and velocity group
|
||||
sizeGroup
|
||||
(
|
||||
const word& name,
|
||||
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 +186,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 +207,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;
|
||||
|
||||
|
||||
@ -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_;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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_;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -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_();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -97,20 +97,18 @@ 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_)
|
||||
{
|
||||
@ -124,7 +122,6 @@ void Foam::diameterModels::driftModels::phaseChange::precompute()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Foam::diameterModels::driftModels::phaseChange::addToDriftRate
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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()
|
||||
)
|
||||
)
|
||||
{}
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
#};
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -10,13 +10,13 @@ FoamFile
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object f.air1;
|
||||
object f19.air1;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
@ -10,13 +10,13 @@ FoamFile
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object f.air2;
|
||||
object f24.air2;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
@ -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];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -10,13 +10,13 @@ FoamFile
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object f.air1;
|
||||
object f19.air1;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
23
test/multiphaseEuler/populationBalance/breakup/0/f24.air2
Normal file
23
test/multiphaseEuler/populationBalance/breakup/0/f24.air2
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
23
test/multiphaseEuler/populationBalance/breakup/0/f28.air3
Normal file
23
test/multiphaseEuler/populationBalance/breakup/0/f28.air3
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -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 )
|
||||
|
||||
@ -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)
|
||||
)
|
||||
@ -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; }
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
23
test/multiphaseEuler/populationBalance/drift/0/f10.air
Normal file
23
test/multiphaseEuler/populationBalance/drift/0/f10.air
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.1429;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
23
test/multiphaseEuler/populationBalance/drift/0/f11.air
Normal file
23
test/multiphaseEuler/populationBalance/drift/0/f11.air
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.1758;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
23
test/multiphaseEuler/populationBalance/drift/0/f12.air
Normal file
23
test/multiphaseEuler/populationBalance/drift/0/f12.air
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.2146;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
23
test/multiphaseEuler/populationBalance/drift/0/f13.air
Normal file
23
test/multiphaseEuler/populationBalance/drift/0/f13.air
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.2599;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
23
test/multiphaseEuler/populationBalance/drift/0/f8.air
Normal file
23
test/multiphaseEuler/populationBalance/drift/0/f8.air
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.0918;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
23
test/multiphaseEuler/populationBalance/drift/0/f9.air
Normal file
23
test/multiphaseEuler/populationBalance/drift/0/f9.air
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.1151;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
23
test/multiphaseEuler/populationBalance/drift/0/fDefault.air
Normal file
23
test/multiphaseEuler/populationBalance/drift/0/fDefault.air
Normal 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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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;
|
||||
|
||||
@ -10,13 +10,13 @@ FoamFile
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object f.air1;
|
||||
object f0.air1;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
@ -25,7 +25,7 @@ boundaryField
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1.0;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
@ -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];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
@ -25,7 +25,7 @@ boundaryField
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1.0;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
@ -10,13 +10,13 @@ FoamFile
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object f.air2;
|
||||
object f6.air2;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
@ -25,7 +25,7 @@ boundaryField
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1.0;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -24,7 +24,9 @@ populationBalances (bubbles);
|
||||
air1
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel velocityGroup;
|
||||
|
||||
velocityGroupCoeffs
|
||||
{
|
||||
populationBalance bubbles;
|
||||
@ -33,12 +35,12 @@ air1
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f0 {dSph 3.00e-03; value 1;}
|
||||
f1 {dSph 3.01e-03; value 0;}
|
||||
f2 {dSph 3.02e-03; value 0;}
|
||||
f3 {dSph 3.03e-03; value 0;}
|
||||
f4 {dSph 3.04e-03; value 0;}
|
||||
f5 {dSph 3.05e-03; value 0;}
|
||||
{ dSph 3.00e-03; }
|
||||
{ dSph 3.01e-03; }
|
||||
{ dSph 3.02e-03; }
|
||||
{ dSph 3.03e-03; }
|
||||
{ dSph 3.04e-03; }
|
||||
{ dSph 3.05e-03; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -48,7 +50,9 @@ air1
|
||||
air2
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel velocityGroup;
|
||||
|
||||
velocityGroupCoeffs
|
||||
{
|
||||
populationBalance bubbles;
|
||||
@ -57,11 +61,11 @@ air2
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f6 {dSph 3.06e-03; value 1;}
|
||||
f7 {dSph 3.07e-03; value 0;}
|
||||
f8 {dSph 3.08e-03; value 0;}
|
||||
f9 {dSph 3.09e-03; value 0;}
|
||||
f10{dSph 3.10e-03; value 0;}
|
||||
{ dSph 3.06e-03; }
|
||||
{ dSph 3.07e-03; }
|
||||
{ dSph 3.08e-03; }
|
||||
{ dSph 3.09e-03; }
|
||||
{ dSph 3.10e-03; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -71,7 +75,9 @@ air2
|
||||
air3
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel velocityGroup;
|
||||
|
||||
velocityGroupCoeffs
|
||||
{
|
||||
populationBalance bubbles;
|
||||
@ -80,11 +86,11 @@ air3
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f11{dSph 3.11e-03; value 1;}
|
||||
f12{dSph 3.12e-03; value 0;}
|
||||
f13{dSph 3.13e-03; value 0;}
|
||||
f14{dSph 3.14e-03; value 0;}
|
||||
f15{dSph 3.15e-03; value 0;}
|
||||
{ dSph 3.11e-03; }
|
||||
{ dSph 3.12e-03; }
|
||||
{ dSph 3.13e-03; }
|
||||
{ dSph 3.14e-03; }
|
||||
{ dSph 3.15e-03; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -94,6 +100,7 @@ air3
|
||||
water
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel none;
|
||||
|
||||
residualAlpha 1e-6;
|
||||
|
||||
@ -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.air;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 f20.air;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.1989;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 f21.air;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.2304;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 f22.air;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.2656;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 f23.air;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.3051;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -34,35 +34,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.0000;}
|
||||
f9 {dSph 1.662; value 0.0000;}
|
||||
f10{dSph 1.735; value 0.0000;}
|
||||
f11{dSph 1.809; value 0.0000;}
|
||||
f12{dSph 1.882; value 0.0000;}
|
||||
f13{dSph 1.956; value 0.0000;}
|
||||
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.1989;}
|
||||
f21{dSph 2.544; value 0.2304;}
|
||||
f22{dSph 2.617; value 0.2656;}
|
||||
f23{dSph 2.691; value 0.3051;}
|
||||
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; }
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -10,13 +10,13 @@ FoamFile
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object f.air;
|
||||
object f0.air1;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
@ -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.air2;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 f23.air3;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -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 [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField {}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -23,7 +23,9 @@ populationBalances (bubbles);
|
||||
air1
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel velocityGroup;
|
||||
|
||||
velocityGroupCoeffs
|
||||
{
|
||||
populationBalance bubbles;
|
||||
@ -32,19 +34,19 @@ air1
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f0 {dSph 1.2407009818E+00; value 1.0;}
|
||||
f1 {dSph 1.3400311786E+00; value 0.0;}
|
||||
f2 {dSph 1.4473137252E+00; value 0.0;}
|
||||
f3 {dSph 1.5631852837E+00; value 0.0;}
|
||||
f4 {dSph 1.6883334890E+00; value 0.0;}
|
||||
f5 {dSph 1.8235010272E+00; value 0.0;}
|
||||
f6 {dSph 1.9694900437E+00; value 0.0;}
|
||||
f7 {dSph 2.1271669027E+00; value 0.0;}
|
||||
f8 {dSph 2.2974673296E+00; value 0.0;}
|
||||
f9 {dSph 2.4814019636E+00; value 0.0;}
|
||||
f10{dSph 2.6800623572E+00; value 0.0;}
|
||||
f11{dSph 2.8946274492E+00; value 0.0;}
|
||||
f12{dSph 3.1263705674E+00; value 0.0;}
|
||||
{ dSph 1.2407009818E+00; }
|
||||
{ dSph 1.3400311786E+00; }
|
||||
{ dSph 1.4473137252E+00; }
|
||||
{ dSph 1.5631852837E+00; }
|
||||
{ dSph 1.6883334890E+00; }
|
||||
{ dSph 1.8235010272E+00; }
|
||||
{ dSph 1.9694900437E+00; }
|
||||
{ dSph 2.1271669027E+00; }
|
||||
{ dSph 2.2974673296E+00; }
|
||||
{ dSph 2.4814019636E+00; }
|
||||
{ dSph 2.6800623572E+00; }
|
||||
{ dSph 2.8946274492E+00; }
|
||||
{ dSph 3.1263705674E+00; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -54,7 +56,9 @@ air1
|
||||
air2
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel velocityGroup;
|
||||
|
||||
velocityGroupCoeffs
|
||||
{
|
||||
populationBalance bubbles;
|
||||
@ -63,16 +67,16 @@ air2
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f13{dSph 3.3766669780E+00; value 1.0;}
|
||||
f14{dSph 3.6470020557E+00; value 0.0;}
|
||||
f15{dSph 3.9389800874E+00; value 0.0;}
|
||||
f16{dSph 4.2543338042E+00; value 0.0;}
|
||||
f17{dSph 4.5949346580E+00; value 0.0;}
|
||||
f18{dSph 4.9628039272E+00; value 0.0;}
|
||||
f19{dSph 5.3601247143E+00; value 0.0;}
|
||||
f20{dSph 5.7892548984E+00; value 0.0;}
|
||||
f21{dSph 6.2527411349E+00; value 0.0;}
|
||||
f22{dSph 6.7533339573E+00; value 0.0;}
|
||||
{ dSph 3.3766669780E+00; }
|
||||
{ dSph 3.6470020557E+00; }
|
||||
{ dSph 3.9389800874E+00; }
|
||||
{ dSph 4.2543338042E+00; }
|
||||
{ dSph 4.5949346580E+00; }
|
||||
{ dSph 4.9628039272E+00; }
|
||||
{ dSph 5.3601247143E+00; }
|
||||
{ dSph 5.7892548984E+00; }
|
||||
{ dSph 6.2527411349E+00; }
|
||||
{ dSph 6.7533339573E+00; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -82,7 +86,9 @@ air2
|
||||
air3
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel velocityGroup;
|
||||
|
||||
velocityGroupCoeffs
|
||||
{
|
||||
populationBalance bubbles;
|
||||
@ -91,14 +97,14 @@ air3
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f23{dSph 7.2940041101E+00; value 1.0;}
|
||||
f24{dSph 7.8779601749E+00; value 0.0;}
|
||||
f25{dSph 8.5086676096E+00; value 0.0;}
|
||||
f26{dSph 9.1898693161E+00; value 0.0;}
|
||||
f27{dSph 9.9256078544E+00; value 0.0;}
|
||||
f28{dSph 1.0720249427E+01; value 0.0;}
|
||||
f29{dSph 1.1578509798E+01; value 0.0;}
|
||||
f30{dSph 1.2505482270E+01; value 0.0;}
|
||||
{ dSph 7.2940041101E+00; }
|
||||
{ dSph 7.8779601749E+00; }
|
||||
{ dSph 8.5086676096E+00; }
|
||||
{ dSph 9.1898693161E+00; }
|
||||
{ dSph 9.9256078544E+00; }
|
||||
{ dSph 1.0720249427E+01; }
|
||||
{ dSph 1.1578509798E+01; }
|
||||
{ dSph 1.2505482270E+01; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -108,6 +114,7 @@ air3
|
||||
water
|
||||
{
|
||||
type pureIsothermalPhaseModel;
|
||||
|
||||
diameterModel none;
|
||||
|
||||
residualAlpha 1e-6;
|
||||
|
||||
41
tutorials/multiphaseEuler/bubblePipe/0/f0.air1
Normal file
41
tutorials/multiphaseEuler/bubblePipe/0/f0.air1
Normal file
@ -0,0 +1,41 @@
|
||||
/*--------------------------------*- 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;
|
||||
object f0.air1;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 1;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/multiphaseEuler/bubblePipe/0/f5.air2
Normal file
41
tutorials/multiphaseEuler/bubblePipe/0/f5.air2
Normal file
@ -0,0 +1,41 @@
|
||||
/*--------------------------------*- 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;
|
||||
object f5.air2;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 1;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/multiphaseEuler/bubblePipe/0/fDefault.air1
Normal file
41
tutorials/multiphaseEuler/bubblePipe/0/fDefault.air1
Normal file
@ -0,0 +1,41 @@
|
||||
/*--------------------------------*- 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;
|
||||
object fDefault.air1;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 0;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
41
tutorials/multiphaseEuler/bubblePipe/0/fDefault.air2
Normal file
41
tutorials/multiphaseEuler/bubblePipe/0/fDefault.air2
Normal file
@ -0,0 +1,41 @@
|
||||
/*--------------------------------*- 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;
|
||||
object fDefault.air2;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type uniformFixedValue;
|
||||
uniformValue 0;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
walls
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -27,11 +27,11 @@ massSource
|
||||
|
||||
fieldValues
|
||||
{
|
||||
f0.air1 0;
|
||||
f1.air1 0;
|
||||
f2.air1 0;
|
||||
f3.air1 1;
|
||||
f2.air1 1;
|
||||
f3.air1 0;
|
||||
f4.air1 0;
|
||||
f5.air1 0;
|
||||
U.air1 (0 0 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,11 +33,11 @@ air1
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f1 {dSph 1e-3; value 1.0;}
|
||||
f2 {dSph 2e-3; value 0.0;}
|
||||
f3 {dSph 3e-3; value 0.0;}
|
||||
f4 {dSph 4e-3; value 0.0;}
|
||||
f5 {dSph 5e-3; value 0.0;}
|
||||
{ dSph 1e-3; }
|
||||
{ dSph 2e-3; }
|
||||
{ dSph 3e-3; }
|
||||
{ dSph 4e-3; }
|
||||
{ dSph 5e-3; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -58,13 +58,13 @@ air2
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f6 {dSph 6e-3; value 1.0;}
|
||||
f7 {dSph 7e-3; value 0.0;}
|
||||
f8 {dSph 8e-3; value 0.0;}
|
||||
f9 {dSph 9e-3; value 0.0;}
|
||||
f10{dSph 10e-3; value 0.0;}
|
||||
f11{dSph 11e-3; value 0.0;}
|
||||
f12{dSph 12e-3; value 0.0;}
|
||||
{ dSph 6e-3; }
|
||||
{ dSph 7e-3; }
|
||||
{ dSph 8e-3; }
|
||||
{ dSph 9e-3; }
|
||||
{ dSph 10e-3; }
|
||||
{ dSph 11e-3; }
|
||||
{ dSph 12e-3; }
|
||||
);
|
||||
}
|
||||
|
||||
@ -88,12 +88,14 @@ populationBalanceCoeffs
|
||||
|
||||
coalescenceModels
|
||||
(
|
||||
LehrMilliesMewes{}
|
||||
LehrMilliesMewes
|
||||
{}
|
||||
);
|
||||
|
||||
binaryBreakupModels
|
||||
(
|
||||
LehrMilliesMewes{}
|
||||
LehrMilliesMewes
|
||||
{}
|
||||
);
|
||||
|
||||
breakupModels
|
||||
@ -101,7 +103,8 @@ populationBalanceCoeffs
|
||||
|
||||
driftModels
|
||||
(
|
||||
densityChange{}
|
||||
densityChange
|
||||
{}
|
||||
);
|
||||
|
||||
nucleationModels
|
||||
|
||||
@ -15,7 +15,7 @@ FoamFile
|
||||
|
||||
dimensions [];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
@ -10,6 +10,13 @@ runApplication topoSet
|
||||
|
||||
# Run
|
||||
runApplication decomposePar
|
||||
runParallel -s populationBalanceInitialDistributionFs foamPostProcess -func "
|
||||
populationBalanceInitialDistributionFs
|
||||
(
|
||||
phase=particles,
|
||||
initialDistributionFile=\"constant/initialDistribution.particles\"
|
||||
)
|
||||
"
|
||||
runParallel $(getApplication)
|
||||
runApplication reconstructPar -latestTime
|
||||
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
(
|
||||
(1e-6 0)
|
||||
(1.21e-6 0)
|
||||
(1.463e-6 0.0001)
|
||||
(1.77e-6 0.0002)
|
||||
(2.142e-6 0.0004)
|
||||
(2.591e-6 0.0008)
|
||||
(3.134e-6 0.0015)
|
||||
(3.792e-6 0.0025)
|
||||
(4.587e-6 0.004)
|
||||
(5.549e-6 0.0062)
|
||||
(6.71e-6 0.0093)
|
||||
(8.12e-6 0.0137)
|
||||
(9.82e-6 0.0198)
|
||||
(11.88e-6 0.0279)
|
||||
(14.38e-6 0.0383)
|
||||
(17.39e-6 0.0512)
|
||||
(21.04e-6 0.0663)
|
||||
(25.45e-6 0.0829)
|
||||
(30.79e-6 0.0991)
|
||||
(37.24e-6 0.1121)
|
||||
(45.06e-6 0.1183)
|
||||
(54.51e-6 0.1141)
|
||||
(65.94e-6 0.0977)
|
||||
(79.77e-6 0.0712)
|
||||
(96.49e-6 0.0412)
|
||||
(116.7e-6 0.0170)
|
||||
(141.2e-6 0.004)
|
||||
(170.8e-6 0.0002)
|
||||
(206.7e-6 0)
|
||||
(250e-6 0)
|
||||
);
|
||||
@ -33,40 +33,41 @@ particles
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f1 {dSph 1e-6; value 0;}
|
||||
f2 {dSph 1.21e-6; value 0.000;}
|
||||
f3 {dSph 1.463e-6; value 0.0001;}
|
||||
f4 {dSph 1.77e-6; value 0.0002;}
|
||||
f5 {dSph 2.142e-6; value 0.0004;}
|
||||
f6 {dSph 2.591e-6; value 0.0008;}
|
||||
f7 {dSph 3.134e-6; value 0.0015;}
|
||||
f8 {dSph 3.792e-6; value 0.0025;}
|
||||
f9 {dSph 4.587e-6; value 0.004;}
|
||||
f10 {dSph 5.549e-6; value 0.0062;}
|
||||
f11 {dSph 6.71e-6; value 0.0093;}
|
||||
f12 {dSph 8.12e-6; value 0.0137;}
|
||||
f13 {dSph 9.82e-6; value 0.0198;}
|
||||
f14 {dSph 11.88e-6; value 0.0279;}
|
||||
f15 {dSph 14.38e-6; value 0.0383;}
|
||||
f16 {dSph 17.39e-6; value 0.0512;}
|
||||
f17 {dSph 21.04e-6; value 0.0663;}
|
||||
f18 {dSph 25.45e-6; value 0.0829;}
|
||||
f19 {dSph 30.79e-6; value 0.0991;}
|
||||
f20 {dSph 37.24e-6; value 0.1121;}
|
||||
f21 {dSph 45.06e-6; value 0.1183;}
|
||||
f22 {dSph 54.51e-6; value 0.1141;}
|
||||
f23 {dSph 65.94e-6; value 0.0977;}
|
||||
f24 {dSph 79.77e-6; value 0.0712;}
|
||||
f25 {dSph 96.49e-6; value 0.0412;}
|
||||
f26 {dSph 116.7e-6; value 0.0170;}
|
||||
f27 {dSph 141.2e-6; value 0.004;}
|
||||
f28 {dSph 170.8e-6; value 0.0002;}
|
||||
f29 {dSph 206.7e-6; value 0;}
|
||||
f30 {dSph 250e-6; value 0;}
|
||||
{ dSph 1e-6; }
|
||||
{ dSph 1.21e-6; }
|
||||
{ dSph 1.463e-6; }
|
||||
{ dSph 1.77e-6; }
|
||||
{ dSph 2.142e-6; }
|
||||
{ dSph 2.591e-6; }
|
||||
{ dSph 3.134e-6; }
|
||||
{ dSph 3.792e-6; }
|
||||
{ dSph 4.587e-6; }
|
||||
{ dSph 5.549e-6; }
|
||||
{ dSph 6.71e-6; }
|
||||
{ dSph 8.12e-6; }
|
||||
{ dSph 9.82e-6; }
|
||||
{ dSph 11.88e-6; }
|
||||
{ dSph 14.38e-6; }
|
||||
{ dSph 17.39e-6; }
|
||||
{ dSph 21.04e-6; }
|
||||
{ dSph 25.45e-6; }
|
||||
{ dSph 30.79e-6; }
|
||||
{ dSph 37.24e-6; }
|
||||
{ dSph 45.06e-6; }
|
||||
{ dSph 54.51e-6; }
|
||||
{ dSph 65.94e-6; }
|
||||
{ dSph 79.77e-6; }
|
||||
{ dSph 96.49e-6; }
|
||||
{ dSph 116.7e-6; }
|
||||
{ dSph 141.2e-6; }
|
||||
{ dSph 170.8e-6; }
|
||||
{ dSph 206.7e-6; }
|
||||
{ dSph 250e-6; }
|
||||
);
|
||||
}
|
||||
|
||||
alphaMax 0.62;
|
||||
|
||||
residualAlpha 1e-8;
|
||||
}
|
||||
|
||||
@ -87,7 +88,8 @@ populationBalanceCoeffs
|
||||
|
||||
coalescenceModels
|
||||
(
|
||||
AdachiStuartFokkink{}
|
||||
AdachiStuartFokkink
|
||||
{}
|
||||
);
|
||||
|
||||
binaryBreakupModels
|
||||
|
||||
@ -9,13 +9,13 @@ FoamFile
|
||||
{
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object f.particles;
|
||||
object f0.particles;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
@ -24,7 +24,7 @@ boundaryField
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1.0;
|
||||
value uniform 1;
|
||||
}
|
||||
|
||||
outlet
|
||||
@ -9,13 +9,13 @@ FoamFile
|
||||
{
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
object f.air2;
|
||||
object fDefault.particles;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [];
|
||||
|
||||
internalField uniform 1.0;
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
@ -24,7 +24,7 @@ boundaryField
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value $internalField;
|
||||
value uniform 0;
|
||||
}
|
||||
|
||||
outlet
|
||||
@ -32,10 +32,11 @@ boundaryField
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
walls
|
||||
wall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,42 @@
|
||||
/*--------------------------------*- 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;
|
||||
object kappaDefault.particles;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 -1 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1.5e10;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
inlet
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform 1.5e10;
|
||||
}
|
||||
|
||||
outlet
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
wall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -47,35 +47,35 @@ particles
|
||||
|
||||
sizeGroups
|
||||
(
|
||||
f01{dSph 4.000E-10; value 1.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f02{dSph 5.769E-10; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f03{dSph 8.320E-10; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f04{dSph 1.200E-09; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f05{dSph 1.731E-09; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f06{dSph 2.496E-09; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f07{dSph 3.600E-09; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f08{dSph 5.192E-09; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f09{dSph 7.488E-09; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f10{dSph 1.080E-08; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f11{dSph 1.558E-08; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f12{dSph 2.246E-08; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f13{dSph 3.240E-08; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f14{dSph 4.673E-08; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f15{dSph 6.739E-08; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f16{dSph 9.720E-08; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f17{dSph 1.402E-07; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f18{dSph 2.022E-07; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f19{dSph 2.916E-07; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f20{dSph 4.206E-07; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f21{dSph 6.066E-07; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f22{dSph 8.748E-07; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f23{dSph 1.262E-06; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f24{dSph 1.820E-06; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f25{dSph 2.624E-06; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f26{dSph 3.785E-06; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f27{dSph 5.459E-06; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f28{dSph 7.873E-06; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
f29{dSph 1.136E-05; value 0.0; kappa 1.5E+10; Df 1.8; alphaC 1;}
|
||||
{ dSph 4.000E-10; Df 1.8; alphaC 1; }
|
||||
{ dSph 5.769E-10; Df 1.8; alphaC 1; }
|
||||
{ dSph 8.320E-10; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.200E-09; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.731E-09; Df 1.8; alphaC 1; }
|
||||
{ dSph 2.496E-09; Df 1.8; alphaC 1; }
|
||||
{ dSph 3.600E-09; Df 1.8; alphaC 1; }
|
||||
{ dSph 5.192E-09; Df 1.8; alphaC 1; }
|
||||
{ dSph 7.488E-09; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.080E-08; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.558E-08; Df 1.8; alphaC 1; }
|
||||
{ dSph 2.246E-08; Df 1.8; alphaC 1; }
|
||||
{ dSph 3.240E-08; Df 1.8; alphaC 1; }
|
||||
{ dSph 4.673E-08; Df 1.8; alphaC 1; }
|
||||
{ dSph 6.739E-08; Df 1.8; alphaC 1; }
|
||||
{ dSph 9.720E-08; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.402E-07; Df 1.8; alphaC 1; }
|
||||
{ dSph 2.022E-07; Df 1.8; alphaC 1; }
|
||||
{ dSph 2.916E-07; Df 1.8; alphaC 1; }
|
||||
{ dSph 4.206E-07; Df 1.8; alphaC 1; }
|
||||
{ dSph 6.066E-07; Df 1.8; alphaC 1; }
|
||||
{ dSph 8.748E-07; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.262E-06; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.820E-06; Df 1.8; alphaC 1; }
|
||||
{ dSph 2.624E-06; Df 1.8; alphaC 1; }
|
||||
{ dSph 3.785E-06; Df 1.8; alphaC 1; }
|
||||
{ dSph 5.459E-06; Df 1.8; alphaC 1; }
|
||||
{ dSph 7.873E-06; Df 1.8; alphaC 1; }
|
||||
{ dSph 1.136E-05; Df 1.8; alphaC 1; }
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user