46 const scalar isoAlpha,
77 auto cutCell = [&](
const label celli)
90 nCutCells += !
cellCuts[celli].empty();
109 const label nAllocate = nCutCells + nCutCells/10;
120 if (
cellCuts[celli][cellCuti].size() < 3)
continue;
127 const label cfi = cAddrs[celli].ceiToCfiAndFei()[cei][0][0];
128 const label fei = cAddrs[celli].ceiToCfiAndFei()[cei][0][1];
135 const label surfacePointi =
136 iter != meshEdgePoint.
end() ? *iter : pointsDyn.
size();
138 if (surfacePointi == pointsDyn.
size())
140 meshEdgePoint.
insert(
e, surfacePointi);
153 facesDyn.
last()[i] = surfacePointi;
156 faceCellsDyn.
append(celli);
162 pointEdges_.
transfer(pointEdgesDyn);
163 pointEdgeLambdas_.
transfer(pointEdgeLambdasDyn);
169 const label nLabels =
194 nFaces += isos[i].faces_.
size();
201 faceCells_.
resize(nFaces);
203 label pointi0 = 0, facei0 = 0;
206 const label nPs = isos[i].points_.
size();
210 SubList<edge>(pointEdges_, nPs, pointi0) = isos[i].pointEdges_;
212 isos[i].pointEdgeLambdas_;
216 forAll(isos[i].faces_, fi)
218 forAll(faces_[facei0 + fi], fpi)
220 faces_[facei0 + fi][fpi] += pointi0;
#define forAll(list, i)
Loop across all elements in list.
static cellEdgeAddressingList & New(const word &name, const polyMesh &mesh)
Construct and return the named DemandDrivenMeshObject.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
bool insert(const Key &, const T &newElmt)
Insert a new hashedEntry.
iterator find(const Key &)
Find and return an iterator set at the hashedEntry.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void transfer(List< T > &)
Transfer the contents of the argument List into this list.
void resize(const label)
Alias for setSize(const label)
void size(const label)
Override size to be inconsistent with allocated storage.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
A List obtained as a section of another List.
T & last()
Return the last element of the list.
label size() const
Return the number of elements in the UPtrList.
Description of cuts across cells.
Starts timing CPU usage and return elapsed time from start.
double cpuTimeIncrement() const
Return CPU time (in seconds) since last call to cpuTimeIncrement()
Iso-surface class based on the cutPoly cutting routines.
virtual ~cutPolyIsoSurface()
Destructor.
const faceList & faces() const
Faces of the iso-surface.
cutPolyIsoSurface(const polyMesh &mesh, const scalarField &pAlphas, const scalar isoAlpha, const labelUList &cells=NullObjectRef< labelUList >())
Construct from a mesh, point values and an iso-value.
const pointField & points() const
Points of the iso-surface.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
A face is a list of labels corresponding to mesh vertices.
Mesh consisting of general polyhedral cells.
virtual const faceList & faces() const
Return raw faces.
virtual const pointField & points() const
Return raw points.
const cellList & cells() const
Template function which returns the un-mangled name of a given type. Useful for types which do not ha...
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
dimensionedScalar lambda(viscosity->lookup("lambda"))
labelList subSizes(const List< T > &, AccessOp aop=accessOp< T >())
Gets sizes of sublists.
scalar edgeCutLambda(const edge &e, const scalarField &pAlphas, const scalar isoAlpha)
Get the local coordinate within an edge, given end point values and an.
Type edgeCutValue(const edge &e, const scalar lambda, const Field< Type > &pPsis)
Linearly interpolate a value from the end points to the cut point of an.
List< labelPair > faceCuts(const face &f, const scalarField &pAlphas, const scalar isoAlpha)
Return the cuts for a given face. This returns a list of pairs of.
labelListList cellCuts(const cell &c, const cellEdgeAddressing &cAddr, const faceUList &fs, const List< List< labelPair >> &fCuts, const scalarField &pAlphas, const scalar isoAlpha)
Return the cuts for a given cell. This returns a list of lists of cell-edge.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
vector point
Point is a vector.
bool notNull(const T &t)
Return true if t is not a reference to the nullObject of type T.
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
prefixOSstream Pout(cout, "Pout")
defineTypeNameAndDebug(atmosphericBoundaryLayer, 0)
static iteratorEnd end()
iteratorEnd set to beyond the end of any HashTable