70 std::vector<MInt>& ) {
122 std::vector<MInt>& ,
MInt ) {
virtual MBool getLineTriangleIntersectionSimpleDistance(MFloat *, MFloat *, MFloat *, MFloat *, MFloat *, MFloat *)
MBool isOnGeometry(const MFloat, const MFloat *, MString)
virtual void ReplaceMBElementVertex(MInt, MInt, MFloat *)
virtual MInt getLineIntersectionElementsOld2(MFloat *, MInt *, std::vector< MInt > &)
virtual void writeSTL(const MChar *)
virtual MInt * GetBoundaryIds(MInt *noAllBcs)
virtual ~Geometry()=default
const MFloat * boundingBox() const
virtual MBool getClosestLineIntersectionLength(MInt, const std::vector< MInt > &, MFloat *, MFloat *)
GeometryContext m_geometryContext
virtual MInt getSphereIntersectionMBElements(MFloat *, MFloat, std::vector< MInt > &)
void getBoundingBox(MFloat *const bBox) const
Returns the bounding box for the geometry.
MFloat calcCircumference(MFloat **bndVs, MInt num)
Returns the circumference of a segment.
virtual MInt getIntersectionMBElements(MFloat *, std::vector< MInt > &)
virtual void collectGlobalMemoryUsage()
virtual MFloat GetBoundarySize(MInt)
MBool pointIsInsideMBElements2(const MFloat *const coordinates, MInt *, MInt *, MInt)
virtual MInt GetNoSegments()
virtual MBool edgeTriangleIntersection(MFloat *, MFloat *, MFloat *, MFloat *, MFloat *)
MBool pointIsInsideMBElements(const MFloat *const coordinates, MInt *, MInt *, MInt)
virtual MInt boundaryCheck(MFloat *, MFloat, MFloat *, MInt *)
MString m_parallelGeomFileName
virtual MInt getLineIntersectionElementsOld1(MFloat *, std::vector< MInt > &)
void getLineIntersectingElementsBcIds(const MFloat *const line, std::set< MInt > &bcIds)
Return the set of boundary condition ids of the elements cut by the given line.
virtual MInt getLineIntersectionMBElements2(MFloat *, MInt *, std::vector< MInt > &, MInt)
std::array< MFloat, 2 *nDim > m_minMax
std::vector< MInt > m_segmentOffsets
virtual void UpdateMBNormalVector(MInt)
virtual void MoveMBElementVertex(MInt, MInt, MFloat *)
virtual MFloat getBndMaxRadius(MFloat **, MInt)
virtual void writeParallelGeometryVTK(MString)
virtual void readSegments()
Collector< element< nDim > > * m_elements
MFloat m_parGeomMemFactor
virtual MBool getLineTriangleIntersection(const MFloat *const, const MFloat *const, const MFloat, const MFloat *const, const MFloat *const, const MFloat *const, MFloat *, MFloat *, MFloat *, MFloat *)
virtual MBool getLineTriangleIntersectionSimple(MFloat *, MFloat *, MFloat *, MFloat *, MFloat *)
virtual MInt getLineIntersectionElements(MFloat *, std::vector< MInt > &)
virtual void addElement(MFloat *)
virtual void resizeCollector(MInt)
virtual void writeSegmentsToDX()
MBool pointIsInside2(const MFloat *const coordinates, MInt *numcutsperdir=nullptr)
Determines if a point is in or outside the geometry.
element< nDim > * elements
element< nDim > * mbelements
virtual void copyElement(MInt, MInt)
virtual MInt getLineIntersectionElements(MFloat *)
MString m_segmentBaseName
std::vector< MInt > m_segmentOffsetsWithoutMB
virtual void calculateBoundingBox()
void getBoundingBoxMB(MFloat *const bBox) const
virtual void logStatistics()
Geometry(const MInt solverId_, const MPI_Comm comm)
void determineRayIntersectedElements(const MFloat *const coordinates, std::vector< std::vector< MInt > > *resultnodes)
returns the geometry elements that have a cut with rays originating in the provided coordinates
virtual MInt getIntersectionElements(MFloat *, std::vector< MInt > &)
virtual MBool isEdgeAlreadyInCollection(std::vector< std::pair< MFloat *, MFloat * > >, MFloat *, MFloat *, MInt *)
void setHaloElementOffset(MInt off)
MBool vectorsEqual(MFloat *a, MFloat *b)
Compares two vectors entry by entry.
virtual MInt GetNoElements()
virtual MFloat GetBoundarySize(MFloat *, MInt *, MInt)
virtual void readSTLNetCDF(const MChar *)
GeometryContext & geometryContext()
virtual MBool edgeTriangleIntersectionLB(MFloat *, MFloat *, MFloat *, MFloat *, MFloat *)
virtual MFloat ** GetBoundaryVertices(MInt, MFloat *, MInt *, MInt, MInt *)
virtual void writeSTLMB(const MChar *, MInt &, MInt *&)
std::set< MInt > m_uniqueOriginalTriId
Collector< element< nDim > > * m_mbelements
MBool pointIsInside(const MFloat *const coordinates)
Determines if a point is inside of the geometry.
std::array< MFloat, 2 *nDim > m_mbminMax
virtual MInt getIntersectionElements(MFloat *, std::vector< MInt > &, MFloat, const MFloat *const)
virtual void writeADTAndSTLToNetCDF(const MChar *)
virtual void rebuildAdtTree()
virtual void determineSegmentOwnership(MInt, MInt *, MInt *, MInt *, MInt *)
virtual MInt getLineIntersectionMBElements(MFloat *, std::vector< MInt > &)
GeometryAdt< nDim > * m_adt
virtual void UpdateMBBoundingBox()
virtual void MoveAllMBElementVertex(MFloat *)
MInt getHaloElementOffset() const
std::map< MString, Body * > bodyMap
bodyMap::const_iterator bodyIterator
std::basic_string< char > MString