50 void Foam::fv::bXiKernelCorr::readCoeffs(
const dictionary&
dict)
58 inline auto Foam::fv::bXiKernelCorr::bFunc(
const Type&
b,
const Type&
R)
const
61 return (
R - (
R - 1)*
b)*(1 -
b);
73 const word& modelType,
88 duration_(
"duration",
mesh.
time().userUnits(), coeffs(
dict)),
103 return ignition_.addSupFields();
114 if (!ignition_.igniting(duration_))
return;
123 if (bMin < 1 - bMin_.value() && bMin > bMin_.value())
128 <<
": applying source to " << eqn.
psi().name() <<
endl;
154 const scalar Ak(kernelShape_->Ak(Vk).value());
157 const scalar Vkd =
gSum(bFunc(bc, Rc)*bc*Vc);
164 const scalar
b = bc[i];
168 Vc[i]*rhou[celli]*Sl[celli]*Xi[celli]
169 *
max(Ak*bFunc(
b, Rc[i])/Vkd - mgb[celli]/
max(
b, bMin), 0);
180 zone_.topoChange(map);
195 zone_.distribute(map);
210 zone_.read(coeffs(
dict));
211 readCoeffs(coeffs(
dict));
#define forAll(list, i)
Loop across all elements in list.
Macros for easy insertion into run-time selection tables.
Generic GeometricField class.
static word groupName(Name name, const word &group)
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
void read(const dictionary &, const unitSet &defaultUnits=NullObjectRef< unitSet >())
Update the value of dimensioned<Type>
bool readIfPresent(const dictionary &, const unitSet &defaultUnits=NullObjectRef< unitSet >())
Update the value of dimensioned<Type> if found in the dictionary.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Mesh data needed to do the Finite Volume discretisation.
const DimensionedField< scalar, fvMesh > & V() const
Return cell volumes.
Finite volume model abstract base class.
virtual bool read(const dictionary &dict)
Read source dictionary.
const fvMesh & mesh() const
Return const access to the mesh database.
Abstract base-class for ignition models for the Weller b-Xi combustion models.
Early kernel propagation rate correction based on specified shape.
virtual bool movePoints()
Update for mesh motion.
virtual wordList addSupFields() const
Return the list of fields for which the option adds source term.
bXiKernelCorr(const word &name, const word &modelType, const fvMesh &mesh, const dictionary &dict)
Construct from explicit source name and mesh.
dimensionedScalar duration_
Maximum correction duration.
virtual void topoChange(const polyTopoChangeMap &)
Update topology using the given map.
dimensionedScalar bMin_
Minimum b below which the Xi correction is not applied.
virtual void distribute(const polyDistributionMap &)
Redistribute or update using the given distribution map.
virtual bool read(const dictionary &dict)
Read source dictionary.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
virtual void addSup(const volScalarField &rho, const volScalarField &b, fvMatrix< scalar > &eqn) const
Add ignition contribution to b equation.
Base class for ignition kernel flame wrinkling Xi correction.
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type and name.
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
Class containing mesh-to-mesh mapping information.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Abstract base class for run-time selectable region solvers.
Template function which returns the un-mangled name of a given type. Useful for types which do not ha...
static const word burntPhaseName
static const word unburntPhaseName
A class for handling words, derived from string.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
addToRunTimeSelectionTable(fvConstraint, bound, dictionary)
defineTypeNameAndDebug(bound, 0)
tmp< VolField< Type > > Sp(const volScalarField &sp, const VolField< Type > &vf)
const unitSet & lookup(const word &unitName)
Lookup and return the named unit from the table.
const dimensionSet & dimless
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
To & refCast(From &r)
Reference type cast template function.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const dimensionSet & dimVolume
Type gSum(const UList< Type > &f, const label comm)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
dimensioned< Type > min(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
static scalar R(const scalar a, const scalar x)
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)
dimensioned< Type > max(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.