46 const scalar isoAlpha,
47 const word& cellZoneName
77 auto cutCell = [&](
const label celli)
90 nCutCells += !
cellCuts[celli].empty();
96 forAll(zoneCells, zoneCelli)
98 cutCell(zoneCells[zoneCelli]);
110 const label nAllocate = nCutCells + nCutCells/10;
121 if (
cellCuts[celli][cellCuti].size() < 3)
continue;
128 const label cfi = cAddrs[celli].ceiToCfiAndFei()[cei][0][0];
129 const label fei = cAddrs[celli].ceiToCfiAndFei()[cei][0][1];
132 mesh.
faces()[mesh.
cells()[celli][cfi]].faceEdge(fei);
136 const label surfacePointi =
137 iter != meshEdgePoint.
end() ? *iter : pointsDyn.
size();
139 if (surfacePointi == pointsDyn.
size())
141 meshEdgePoint.
insert(
e, surfacePointi);
154 facesDyn.
last()[i] = surfacePointi;
157 faceCellsDyn.
append(celli);
163 pointEdges_.
transfer(pointEdgesDyn);
164 pointEdgeLambdas_.
transfer(pointEdgeLambdasDyn);
170 const label nLabels =
173 Pout<< typeName <<
" : constructed surface of size "
195 nFaces += isos[i].faces_.
size();
202 faceCells_.
resize(nFaces);
204 label pointi0 = 0, facei0 = 0;
207 const label nPs = isos[i].points_.
size();
211 SubList<edge>(pointEdges_, nPs, pointi0) = isos[i].pointEdges_;
213 isos[i].pointEdgeLambdas_;
217 forAll(isos[i].faces_, fi)
219 forAll(faces_[facei0 + fi], fpi)
221 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 word &cellZoneName=word::null)
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.
const cellZoneList & cellZones() const
Return cell zones.
virtual const faceList & faces() const
Return raw faces.
virtual const pointField & points() const
Return raw points.
const cellList & cells() const
A class for handling words, derived from string.
static const word null
An empty word.
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.
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
vector point
Point is a vector.
defineTypeNameAndDebug(combustionModel, 0)
prefixOSstream Pout(cout, "Pout")
static iteratorEnd end()
iteratorEnd set to beyond the end of any HashTable