45 sampledThresholdCellFaces,
54 bool Foam::sampledThresholdCellFaces::updateGeometry()
const 56 const fvMesh& fvm =
static_cast<const fvMesh&
>(
mesh());
59 if (fvm.time().timeIndex() == prevTimeIndex_)
64 prevTimeIndex_ = fvm.time().timeIndex();
68 const auto* cellFldPtr = fvm.findObject<
volScalarField>(fieldName_);
79 <<
"Reading " << fieldName_
80 <<
" from time " << fvm.time().timeName()
86 autoPtr<volScalarField> fieldReadPtr;
97 fvm.time().timeName(),
108 (fieldReadPtr ? *fieldReadPtr : *cellFldPtr);
112 thresholdCellFaces surf
115 cellFld.primitiveField(),
121 mySurface.transfer(static_cast<Mesh&>(surf));
122 meshCells_.
transfer(surf.meshCells());
129 Pout<<
"sampledThresholdCellFaces::updateGeometry() : constructed" 131 <<
" field : " << fieldName_ <<
nl 132 <<
" lowerLimit : " << lowerThreshold_ <<
nl 133 <<
" upperLimit : " << upperThreshold_ <<
nl 136 <<
" cut cells : " << meshCells_.
size() <<
endl;
154 lowerThreshold_(
dict.getOrDefault<scalar>(
"lowerLimit", -VGREAT)),
155 upperThreshold_(
dict.getOrDefault<scalar>(
"upperLimit", VGREAT)),
156 triangulate_(
dict.getOrDefault(
"triangulate", false)),
160 if (!
dict.found(
"lowerLimit") && !
dict.found(
"upperLimit"))
163 <<
"require at least one of 'lowerLimit' or 'upperLimit'" <<
endl 182 if (prevTimeIndex_ == -1)
195 return updateGeometry();
204 return sampleOnFaces(sampler);
213 return sampleOnFaces(sampler);
222 return sampleOnFaces(sampler);
231 return sampleOnFaces(sampler);
240 return sampleOnFaces(sampler);
249 return sampleOnPoints(interpolator);
258 return sampleOnPoints(interpolator);
267 return sampleOnPoints(interpolator);
276 return sampleOnPoints(interpolator);
285 return sampleOnPoints(interpolator);
291 os <<
"sampledThresholdCellFaces: " <<
name() <<
" :" 292 <<
" field:" << fieldName_
293 <<
" lowerLimit:" << lowerThreshold_
294 <<
" upperLimit:" << upperThreshold_;
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
virtual bool update()
Update the surface as required.
void size(const label n)
Older name for setAddressableSize.
bool interpolate() const noexcept
Same as isPointData()
virtual tmp< scalarField > sample(const interpolation< scalar > &sampler) const
Sample volume field onto surface faces.
void transfer(List< T > &list)
Transfer the contents of the argument List into this list and annul the argument list.
const polyMesh & mesh() const noexcept
Access to the underlying mesh.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
An abstract class for surfaces with sampling.
constexpr char nl
The newline '\n' character (0x0a)
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual bool needsUpdate() const
Does the surface need an update?
Ignore writing from objectRegistry::writeObject()
const Time & time() const
Return the top-level database.
Macros for easy insertion into run-time selection tables.
addNamedToRunTimeSelectionTable(topoSetCellSource, badQualityToCell, word, badQuality)
sampledThresholdCellFaces(const word &name, const polyMesh &, const dictionary &)
Construct from dictionary.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
virtual void clearGeom() const
Additional cleanup when clearing the geometry.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
A class for handling words, derived from Foam::string.
virtual bool expire()
Mark the surface as needing an update.
label timeIndex() const noexcept
Return the current time index.
errorManip< error > abort(error &err)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
int debug
Static debugging option.
OBJstream os(runTime.globalPath()/outputName)
defineTypeNameAndDebug(combustionModel, 0)
virtual void print(Ostream &os, int level=0) const
Print information.
virtual const pointField & points() const
Points of surface.
Mesh data needed to do the Finite Volume discretisation.
Mesh consisting of general polyhedral cells.
A class for managing temporary objects.
static autoPtr< T > New(Args &&... args)
Construct autoPtr with forwarding arguments.
virtual const faceList & faces() const
Faces of surface.
prefixOSstream Pout
OSstream wrapped stdout (std::cout) with parallel prefix.
Do not request registration (bool: false)
#define InfoInFunction
Report an information message using Foam::Info.