mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: partial restructure of film injection models
This commit is contained in:
@ -72,12 +72,14 @@ Foam::surfaceFilmModels::cloudInjection::~cloudInjection()
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::surfaceFilmModels::cloudInjection::correct
|
||||
void Foam::surfaceFilmModels::cloudInjection::inject
|
||||
(
|
||||
scalarField& massToInject,
|
||||
scalarField& diameterToInject
|
||||
)
|
||||
{
|
||||
correctDetachedFilm(massToInject);
|
||||
|
||||
const scalar pi = constant::mathematical::pi;
|
||||
const scalarField& rhoFilm = owner().rho();
|
||||
|
||||
|
||||
@ -101,8 +101,8 @@ public:
|
||||
|
||||
// Evolution
|
||||
|
||||
//- Correct
|
||||
virtual void correct
|
||||
//- Inject
|
||||
virtual void inject
|
||||
(
|
||||
scalarField& massToInject,
|
||||
scalarField& diameterToInject
|
||||
|
||||
@ -24,6 +24,7 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "injectionModel.H"
|
||||
#include "kinematicSingleLayer.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -37,6 +38,35 @@ namespace Foam
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
|
||||
void Foam::surfaceFilmModels::injectionModel::correctDetachedFilm
|
||||
(
|
||||
scalarField& mass
|
||||
) const
|
||||
{
|
||||
mass = 0.0;
|
||||
|
||||
const kinematicSingleLayer& film =
|
||||
refCast<const kinematicSingleLayer>(owner_);
|
||||
|
||||
const scalarField gNorm = film.gNorm();
|
||||
const scalarField& delta = film.delta();
|
||||
const scalarField& rho = film.rho();
|
||||
const scalarField& magSf = film.magSf();
|
||||
const scalarField& massPhaseChange = film.massPhaseChangeForPrimary();
|
||||
|
||||
forAll(gNorm, i)
|
||||
{
|
||||
if (gNorm[i] > SMALL)
|
||||
{
|
||||
const scalar ddelta = max(0.0, delta[i] - deltaStable_);
|
||||
mass[i] = max(0.0, ddelta*rho[i]*magSf[i] - massPhaseChange[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::surfaceFilmModels::injectionModel::injectionModel
|
||||
@ -45,7 +75,8 @@ Foam::surfaceFilmModels::injectionModel::injectionModel
|
||||
)
|
||||
:
|
||||
owner_(owner),
|
||||
coeffs_(dictionary::null)
|
||||
coeffs_(dictionary::null),
|
||||
injectedMass_(0.0)
|
||||
{}
|
||||
|
||||
|
||||
@ -57,7 +88,9 @@ Foam::surfaceFilmModels::injectionModel::injectionModel
|
||||
)
|
||||
:
|
||||
owner_(owner),
|
||||
coeffs_(dict.subDict(type + "Coeffs"))
|
||||
coeffs_(dict.subDict(type + "Coeffs")),
|
||||
injectedMass_(0.0),
|
||||
deltaStable_(readScalar(coeffs_.lookup("deltaStable")))
|
||||
{}
|
||||
|
||||
|
||||
@ -67,4 +100,27 @@ Foam::surfaceFilmModels::injectionModel::~injectionModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::surfaceFilmModels::injectionModel::correct
|
||||
(
|
||||
volScalarField& massToInject,
|
||||
volScalarField& diameterToInject
|
||||
)
|
||||
{
|
||||
inject(massToInject, diameterToInject);
|
||||
massToInject.correctBoundaryConditions();
|
||||
diameterToInject.correctBoundaryConditions();
|
||||
|
||||
injectedMass_ += sum(massToInject.internalField());
|
||||
}
|
||||
|
||||
|
||||
void Foam::surfaceFilmModels::injectionModel::info() const
|
||||
{
|
||||
Info<< indent << "injected mass = "
|
||||
<< returnReduce<scalar>(injectedMass_, sumOp<scalar>()) << nl;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -82,6 +82,18 @@ protected:
|
||||
//- Model coefficients dictionary
|
||||
dictionary coeffs_;
|
||||
|
||||
//- Cumulative injected mass
|
||||
scalar injectedMass_;
|
||||
|
||||
//- Stable film thickness - film cannot detach until reached
|
||||
scalar deltaStable_;
|
||||
|
||||
|
||||
// Protected Member Functions
|
||||
|
||||
//- Correct film detached mass
|
||||
void correctDetachedFilm(scalarField& mass) const;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -141,15 +153,31 @@ public:
|
||||
//- Return the model coefficients dictionary
|
||||
inline const dictionary& coeffs() const;
|
||||
|
||||
//- Return access to the injected mass [kg]
|
||||
inline scalar injectedMass() const;
|
||||
|
||||
|
||||
// Evolution
|
||||
|
||||
//- Correct
|
||||
//- Correct - wrapper around inject(...)
|
||||
virtual void correct
|
||||
(
|
||||
volScalarField& massToInject,
|
||||
volScalarField& diameterToInject
|
||||
);
|
||||
|
||||
//- Inject
|
||||
virtual void inject
|
||||
(
|
||||
scalarField& massToInject,
|
||||
scalarField& diameterToInject
|
||||
) = 0;
|
||||
|
||||
|
||||
// Input/output
|
||||
|
||||
//- Output model statistics
|
||||
virtual void info() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -41,4 +41,11 @@ Foam::surfaceFilmModels::injectionModel::coeffs() const
|
||||
}
|
||||
|
||||
|
||||
inline Foam::scalar Foam::surfaceFilmModels::injectionModel::injectedMass()
|
||||
const
|
||||
{
|
||||
return injectedMass_;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -58,7 +58,7 @@ Foam::surfaceFilmModels::noInjection::~noInjection()
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::surfaceFilmModels::noInjection::correct
|
||||
void Foam::surfaceFilmModels::noInjection::inject
|
||||
(
|
||||
scalarField& massToInject,
|
||||
scalarField& diameterToInject
|
||||
@ -66,6 +66,7 @@ void Foam::surfaceFilmModels::noInjection::correct
|
||||
{
|
||||
// no mass injected
|
||||
massToInject = 0.0;
|
||||
diameterToInject = -1.0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -83,8 +83,8 @@ public:
|
||||
|
||||
// Evolution
|
||||
|
||||
//- Correct
|
||||
virtual void correct
|
||||
//- Inject
|
||||
virtual void inject
|
||||
(
|
||||
scalarField& massToInject,
|
||||
scalarField& diameterToInject
|
||||
|
||||
@ -58,13 +58,15 @@ Foam::surfaceFilmModels::removeInjection::~removeInjection()
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
void Foam::surfaceFilmModels::removeInjection::correct
|
||||
void Foam::surfaceFilmModels::removeInjection::inject
|
||||
(
|
||||
scalarField&,
|
||||
scalarField&
|
||||
scalarField& massToInject,
|
||||
scalarField& diameterToInject
|
||||
)
|
||||
{
|
||||
// do nothing - all mass available to be removed
|
||||
// all mass available to be removed
|
||||
correctDetachedFilm(massToInject);
|
||||
diameterToInject = -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -83,8 +83,8 @@ public:
|
||||
|
||||
// Evolution
|
||||
|
||||
//- Correct
|
||||
virtual void correct
|
||||
//- Inject
|
||||
virtual void inject
|
||||
(
|
||||
scalarField& massToInject,
|
||||
scalarField& diameterToInject
|
||||
|
||||
Reference in New Issue
Block a user