Go to the documentation of this file.
51 Info <<
"Smoothing mesh surface before mapping. Iteration:" <<
flush;
61 for(
label iterI=0;iterI<nIterations;++iterI)
67 # pragma omp parallel for schedule(dynamic, 40)
80 lp.
coordinates() += faceCentres[edgeFaces(beI, efI)];
96 preMapPositions[eI] = lp;
108 std::map<label, LongList<refLabelledPoint> > exchangeData;
123 edgeToActiveAddressing.insert(beI, parBndEdges[i]);
127 const label neiProc = beAtProcs(beI, procI);
132 exchangeData[neiProc].append
136 globalEdgeLabel[beI],
154 const label eI = edgeToActiveAddressing[beI];
164 # pragma omp parallel for schedule(dynamic, 50)
173 <<
" has no active faces" <<
endl;
184 # pragma omp parallel for schedule(dynamic, 50)
189 const edge&
e = edges[beI];
207 point newP = 0.5 * (pMap +
p);
const vectorField & faceCentres() const
const VRWGraph & beAtProcs() const
processors which contain the edges
const labelList & bp() const
void append(const T &e)
Append an element at the end of the list.
const point & coordinates() const
return point coordinates
const Map< label > & globalToLocalBndEdgeAddressing() const
global boundary edge label to local label. Only for processor edges
const labelList & globalBoundaryEdgeLabel() const
global boundary edge label
#define forAll(list, i)
Loop across all elements in list.
Template functions to aid in the implementation of demand driven data.
void findNearestSurfacePoint(point &nearest, scalar &distSq, label &nearestTriangle, label ®ion, const point &p) const
find nearest surface point for vertex and its region
static bool & parRun()
Is this a parallel run?
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Ostream & endl(Ostream &os)
Add newline and flush stream.
label size() const
Size of the active part of the list.
Ostream & flush(Ostream &os)
Flush stream.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
void moveBoundaryVertexNoUpdate(const label bpI, const point &newP)
relocate the selected boundary vertex
const DynList< label > & beNeiProcs() const
communication matrix for sending edge data
labelLongList activeBoundaryEdges_
#define forAllRow(graph, rowI, index)
const pointFieldPMG & points() const
PtrList< coordinateSystem > coordinates(solidRegions.size())
label sizeOfRow(const label rowI) const
Returns the number of elements in the given row.
void preMapVertices(const label nIterations=2)
const VRWGraph & edgeFaces() const
void updateGeometry(const labelLongList &)
const double e
Elementary charge.
const meshOctree & meshOctree_
reference to the octree
const edgeList & edges() const
label objectLabel() const
return label of the object it is associated to
const meshSurfaceEngine & surfaceEngine_
reference to mesh surface
static int myProcNo(const label communicator=0)
Number of this process (starting from masterNo() = 0)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void exchangeMap(const std::map< label, ListType > &m, LongList< T > &data, const Pstream::commsTypes commsType)
const labelledPoint & lPoint() const
return labelledPoint
label pointLabel() const
return point label
void syncVerticesAtParallelBoundaries()