Go to the documentation of this file.
61 const face&
f = mesh_.faces()[faceI];
63 label firstFullySubmergedPoint = -1;
69 scalar value = (mesh_.points()[
f[i]] - base) & normal;
70 if (
mag(value) < SMALL)
75 pointStatus_.append(value);
76 if (pointStatus_[i] > 0)
79 if (firstFullySubmergedPoint == -1)
81 firstFullySubmergedPoint = i;
86 if (inLiquid ==
f.size())
89 subFaceCentre_ = mesh_.faceCentres()[faceI];
90 subFaceArea_ = mesh_.faceAreas()[faceI];
93 else if (inLiquid == 0)
96 subFaceCentre_ =
Zero;
106 firstFullySubmergedPoint,
120 return subFaceCentre_;
132 return subFacePoints_;
138 return surfacePoints_;
144 subFaceCentre_ =
Zero;
146 subFacePoints_.clear();
147 surfacePoints_.clear();
148 pointStatus_.clear();
label calcSubFace(const label faceI, const vector &normal, const vector &base)
Calculate cut points along edges of faceI.
static constexpr const zero Zero
Global zero (0)
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
cutFacePLIC(const fvMesh &mesh)
Construct from fvMesh and a scalarField.
const point & subFaceCentre() const
Returns centre of cutted face.
#define forAll(list, i)
Loop across all elements in list.
const DynamicList< point > & subFacePoints() const
Returns the cut edge of the cutted face.
Mesh data needed to do the Finite Volume discretisation.
Base class for cutting a face, faceI, of an fvMesh, mesh_, at its intersections.
void clearStorage()
Resets internal variables.
void calcSubFace(const label faceI, const scalarList &pointStatus, label firstFullySubmergedPoint, DynamicList< point > &subFacePoints, DynamicList< point > &surfacePoints, label &faceStatus, vector &subFaceCentre, vector &subFaceArea)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const DynamicList< point > & surfacePoints() const
Returns point of the face in sorted of cutted face.
A face is a list of labels corresponding to mesh vertices.
const vector & subFaceArea() const
Returns area vector of cutted face.