33 namespace regionModels
35 namespace surfaceFilmModels
52 deltaStable_(coeffDict_.lookupOrDefault<scalar>(
"deltaStable", 0.0))
60 if (coeffDict_.found(
"patches"))
65 Info<<
" applying to patches:" <<
nl;
71 patchIDs_[pidi++] =
patchi;
74 patchIDs_.setSize(pidi);
75 patchEjectedMasses_.setSize(pidi, 0);
79 Info<<
" applying to all patches" <<
endl;
86 patchEjectedMasses_.setSize(patchIDs_.size(), 0);
89 if (!patchIDs_.size())
92 <<
"No patches selected" 129 scalar dMassPatch = 0;
133 label celli = faceCells[fci];
136 scalar dMass = ddelta*rho[celli]*magSf[celli];
137 massToEject[celli] += dMass;
138 availableMass[celli] -= dMass;
152 getModelProperty<scalarField>
154 "patchEjectedMasses",
163 setModelProperty<scalarField>
165 "patchEjectedMasses",
181 getModelProperty<scalarField>
183 "patchEjectedMasses",
195 patchEjectedMasses[pidi] + patchEjectedMassTotals[pidi];
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
#define forAll(list, i)
Loop across all elements in list.
const labelList & processorPatches() const
Return list of processor patch labels.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
const word & name() const
Return name.
Base class for surface film models.
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by any number of values (e...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Base class for film ejection models, handling mass transfer from the film.
void size(const label)
Override size to be inconsistent with allocated storage.
Ostream & endl(Ostream &os)
Add newline and flush stream.
labelHashSet patchSet(const UList< wordRe > &patchNames, const bool warnNotFound=true, const bool usePatchGroups=true) const
Return the set of patch IDs corresponding to the given names.
static void listCombineGather(const List< commsStruct > &comms, List< T > &Value, const CombineOp &cop, const int tag, const label comm)
virtual const volScalarField & rho() const =0
Return the film density [kg/m^3].
Macros for easy insertion into run-time selection tables.
const surfaceFilmRegionModel & film() const
Return const access to the film surface film model.
virtual bool writeTime() const
Flag to indicate when to write a property.
addToRunTimeSelectionTable(ejectionModel, BrunDrippingEjection, dictionary)
const labelUList & faceCells() const
Return face-cell addressing.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
wordList patchNames(nPatches)
virtual const volScalarField & delta() const =0
Return the film thickness [m].
scalarField patchEjectedMasses_
Ejected mass for each patch at which the film is removed.
const fvMesh & regionMesh() const
Return the region mesh database.
patchEjection(surfaceFilmRegionModel &film, const dictionary &dict)
Construct from surface film model.
const globalMeshData & globalData() const
Return parallel info.
void setSize(const label)
Reset size of PtrList. If extending the PtrList, new entries are.
void addToEjectedMass(const scalar dMass)
Add to ejected mass.
label size() const
Return the number of elements in the UPtrList.
const volScalarField::Internal & magSf() const
Return the face area magnitudes [m^2].
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
virtual ~patchEjection()
Destructor.
A patch is a list of labels that address the faces in the global face list.
virtual void patchEjectedMassTotals(scalarField &patchMasses) const
Accumulate the total mass ejected for the patches into the.
scalar deltaStable_
Stable film thickness - mass only removed if thickness exceeds.
defineTypeNameAndDebug(kinematicSingleLayer, 0)
labelList patchIDs_
List of patch IDs at which the film is removed.