gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
MPolygon Class Reference

#include <MElementCut.h>

Inheritance diagram for MPolygon:
Collaboration diagram for MPolygon:

Public Member Functions

 MPolygon (std::vector< MVertex * > v, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
 
 MPolygon (std::vector< MTriangle * > vT, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
 
 ~MPolygon ()
 
virtual int getDim () const
 
virtual std::size_t getNumVertices () const
 
virtual int getNumFaceVertices () const
 
virtual MVertexgetVertex (int num)
 
virtual const MVertexgetVertex (int num) const
 
virtual int getNumEdges () const
 
virtual MEdge getEdge (int num) const
 
virtual int getNumEdgesRep (bool curved)
 
virtual void getEdgeRep (bool curved, int num, double *x, double *y, double *z, SVector3 *n)
 
virtual void getEdgeVertices (const int num, std::vector< MVertex * > &v) const
 
virtual int getNumFaces ()
 
virtual MFace getFace (int num) const
 
virtual int getNumFacesRep (bool curved)
 
virtual void getFaceRep (bool curved, int num, double *x, double *y, double *z, SVector3 *n)
 
virtual void getFaceVertices (const int num, std::vector< MVertex * > &v) const
 
virtual int getType () const
 
virtual int getTypeForMSH () const
 
virtual void reverse ()
 
virtual MElementgetParent () const
 
virtual void setParent (MElement *p, bool owner=false)
 
virtual int getNumChildren () const
 
virtual MElementgetChild (int i) const
 
virtual bool ownsParent () const
 
virtual const nodalBasisgetFunctionSpace (int order=-1, bool serendip=false) const
 
virtual const JacobianBasisgetJacobianFuncSpace (int order=-1) const
 
virtual void getShapeFunctions (double u, double v, double w, double s[], int o) const
 
virtual void getGradShapeFunctions (double u, double v, double w, double s[][3], int o) const
 
virtual void getHessShapeFunctions (double u, double v, double w, double s[][3][3], int o) const
 
virtual std::size_t getNumShapeFunctions () const
 
virtual std::size_t getNumPrimaryShapeFunctions () const
 
virtual const MVertexgetShapeFunctionNode (int i) const
 
virtual MVertexgetShapeFunctionNode (int i)
 
virtual bool isInside (double u, double v, double w) const
 
virtual void getIntegrationPoints (int pOrder, int *npts, IntPt **pts)
 
virtual std::size_t getNumVerticesForMSH ()
 
virtual void getVerticesIdForMSH (std::vector< int > &verts)
 
virtual int numCommonNodesInDualGraph (const MElement *const other) const
 
- Public Member Functions inherited from MElement
 MElement (std::size_t num=0, int part=0)
 
virtual ~MElement ()
 
double getTolerance () const
 
virtual std::size_t getNum () const
 
void forceNum (std::size_t num)
 
virtual int getPolynomialOrder () const
 
virtual bool getIsAssimilatedSerendipity () const
 
virtual bool getIsOnlySerendipity () const
 
virtual int getPartition () const
 
virtual void setPartition (int num)
 
virtual char getVisibility () const
 
virtual void setVisibility (char val)
 
void getVertices (std::vector< MVertex * > &verts)
 
virtual void setVertex (int num, MVertex *v)
 
virtual void getVertexInfo (const MVertex *vertex, int &ithVertex) const
 
virtual MVertexgetVertexUNV (int num)
 
virtual MVertexgetVertexVTK (int num)
 
virtual MVertexgetVertexMATLAB (int num)
 
virtual MVertexgetVertexTOCHNOG (int num)
 
virtual MVertexgetVertexBDF (int num)
 
virtual MVertexgetVertexDIFF (int num)
 
virtual MVertexgetVertexINP (int num)
 
virtual MVertexgetVertexKEY (int num)
 
virtual MVertexgetVertexRAD (int num)
 
virtual MVertexgetVertexNEU (int num)
 
virtual int getNumEdgeVertices () const
 
virtual int getNumVolumeVertices () const
 
std::size_t getNumPrimaryVertices () const
 
virtual MEdgeN getHighOrderEdge (int num, int sign)
 
MEdgeN getHighOrderEdge (const MEdge &edge)
 
virtual bool getEdgeInfo (const MEdge &edge, int &ithEdge, int &sign) const
 
virtual int numEdge2numVertex (int numEdge, int numVert) const
 
virtual MEdge getEdgeSolin (int numEdge)
 
virtual MFaceN getHighOrderFace (int num, int sign, int rot)
 
MFaceN getHighOrderFace (const MFace &face)
 
virtual bool getFaceInfo (const MFace &face, int &ithFace, int &sign, int &rot) const
 
virtual MFace getFaceSolin (int numFace)
 
virtual void updateParent (GModel *gm)
 
virtual const MElementgetBaseElement () const
 
virtual MElementgetBaseElement ()
 
virtual MElementgetDomain (int i) const
 
virtual void setDomain (MElement *e, int i)
 
virtual double maxEdge ()
 
virtual double minEdge ()
 
double maxDistToStraight () const
 
double skewness ()
 
virtual double gammaShapeMeasure ()
 
virtual double etaShapeMeasure ()
 
double minSICNShapeMeasure ()
 
double minSIGEShapeMeasure ()
 
double distoShapeMeasure ()
 
double minIsotropyMeasure (bool knownValid=false, bool reversedOk=false)
 
double minScaledJacobian (bool knownValid=false, bool reversedOk=false)
 
virtual double angleShapeMeasure ()
 
virtual void scaledJacRange (double &jmin, double &jmax, GEntity *ge=nullptr) const
 
virtual void idealJacRange (double &jmin, double &jmax, GEntity *ge=nullptr)
 
virtual void signedInvCondNumRange (double &iCNMin, double &iCNMax, GEntity *ge=nullptr)
 
virtual void signedInvGradErrorRange (double &minSIGE, double &maxSIGE)
 
virtual double getInnerRadius ()
 
virtual double getOuterRadius ()
 
virtual SPoint3 barycenter (bool primary=false) const
 
virtual SPoint3 fastBarycenter (bool primary=false) const
 
virtual SPoint3 barycenterUVW () const
 
virtual SPoint3 barycenter_infty () const
 
virtual double getVolume ()
 
virtual int getVolumeSign ()
 
virtual bool setVolumePositive ()
 
int getValidity ()
 
virtual std::string getInfoString (bool multline)
 
virtual const FuncSpaceData getFuncSpaceData (int order=-1, bool serendip=false) const
 
virtual const FuncSpaceData getJacobianFuncSpaceData (int orderElement=-1) const
 
virtual void getNode (int num, double &u, double &v, double &w) const
 
virtual void getThirdDerivativeShapeFunctions (double u, double v, double w, double s[][3][3][3], int order=-1) const
 
virtual double getJacobian (const fullMatrix< double > &gsf, double jac[3][3]) const
 
virtual double getJacobian (const std::vector< SVector3 > &gsf, double jac[3][3]) const
 
virtual double getJacobian (const std::vector< SVector3 > &gsf, double *jac) const
 
virtual double getJacobian (double u, double v, double w, double jac[3][3]) const
 
double getJacobian (double u, double v, double w, fullMatrix< double > &j) const
 
virtual double getPrimaryJacobian (double u, double v, double w, double jac[3][3]) const
 
double getJacobianDeterminant (double u, double v, double w) const
 
void getSignedJacobian (fullVector< double > &jacobian, int o=-1) const
 
void getNodesCoord (fullMatrix< double > &nodesXYZ) const
 
void getNodesCoordNonSerendip (fullMatrix< double > &nodesXYZ) const
 
bezierCoeffgetBezierVerticesCoord () const
 
virtual double getEigenvaluesMetric (double u, double v, double w, double values[3]) const
 
virtual void pnt (double u, double v, double w, SPoint3 &p) const
 
virtual void pnt (double u, double v, double w, double *p) const
 
virtual void pnt (const std::vector< double > &sf, SPoint3 &p) const
 
virtual void primaryPnt (double u, double v, double w, SPoint3 &p)
 
virtual void xyz2uvw (double xyz[3], double uvw[3]) const
 
virtual void movePointFromParentSpaceToElementSpace (double &u, double &v, double &w) const
 
virtual void movePointFromElementSpaceToParentSpace (double &u, double &v, double &w) const
 
double interpolate (double val[], double u, double v, double w, int stride=1, int order=-1)
 
void interpolateGrad (double val[], double u, double v, double w, double f[], int stride=1, double invjac[3][3]=nullptr, int order=-1)
 
void interpolateCurl (double val[], double u, double v, double w, double f[], int stride=3, int order=-1)
 
double interpolateDiv (double val[], double u, double v, double w, int stride=3, int order=-1)
 
double integrate (double val[], int pOrder, int stride=1, int order=-1)
 
double integrateCirc (double val[], int edge, int pOrder, int order=-1)
 
double integrateFlux (double val[], int face, int pOrder, int order=-1)
 
virtual void writeMSH2 (FILE *fp, double version=1.0, bool binary=false, int num=0, int elementary=1, int physical=1, int parentNum=0, int dom1Num=0, int dom2Num=0, std::vector< short > *ghosts=nullptr)
 
virtual void writeMSH3 (FILE *fp, bool binary=false, int elementary=1, std::vector< short > *ghosts=nullptr)
 
virtual void writePOS (FILE *fp, bool printElementary, bool printElementNumber, bool printSICN, bool printSIGE, bool printGamma, bool printDisto, double scalingFactor=1.0, int elementary=1)
 
virtual void writeSTL (FILE *fp, bool binary=false, double scalingFactor=1.0)
 
virtual void writeX3D (FILE *fp, double scalingFactor=1.0)
 
virtual void writeVRML (FILE *fp)
 
virtual void writePLY2 (FILE *fp)
 
virtual void writeUNV (FILE *fp, int num=0, int elementary=1, int physical=1)
 
virtual void writeVTK (FILE *fp, bool binary=false, bool bigEndian=false)
 
virtual void writeMATLAB (FILE *fp, int filetype, int elementary=0, int physical=0, bool binary=false)
 
virtual void writeTOCHNOG (FILE *fp, int num)
 
virtual void writeMESH (FILE *fp, int elementTagType=1, int elementary=1, int physical=0)
 
virtual void writeNEU (FILE *fp, unsigned gambitType, int adjust, int phys=0)
 
virtual void writeIR3 (FILE *fp, int elementTagType, int num, int elementary, int physical)
 
virtual void writeBDF (FILE *fp, int format=0, int elementTagType=1, int elementary=1, int physical=0)
 
virtual void writeDIFF (FILE *fp, int num, bool binary=false, int physical_property=1)
 
virtual void writeINP (FILE *fp, int num)
 
virtual void writeKEY (FILE *fp, int pid, int num)
 
virtual void writeRAD (FILE *fp, int num)
 
virtual void writeSU2 (FILE *fp, int num)
 
virtual int getTypeForUNV () const
 
virtual int getTypeForVTK () const
 
virtual const char * getStringForTOCHNOG () const
 
virtual const char * getStringForPOS () const
 
virtual const char * getStringForBDF () const
 
virtual const char * getStringForDIFF () const
 
virtual const char * getStringForINP () const
 
virtual const char * getStringForKEY () const
 
virtual const char * getStringForRAD () const
 
std::string getName ()
 
virtual MElementcopy (std::map< int, MVertex * > &vertexMap, std::map< MElement *, MElement * > &newParents, std::map< MElement *, MElement * > &newDomains)
 

Protected Member Functions

void _initVertices ()
 
- Protected Member Functions inherited from MElement
void _getEdgeRep (MVertex *v0, MVertex *v1, double *x, double *y, double *z, SVector3 *n, int faceIndex=-1)
 
void _getFaceRep (MVertex *v0, MVertex *v1, MVertex *v2, double *x, double *y, double *z, SVector3 *n)
 

Protected Attributes

bool _owner
 
MElement_orig
 
IntPt_intpt
 
std::vector< MTriangle * > _parts
 
std::vector< MVertex * > _vertices
 
std::vector< MVertex * > _innerVertices
 
std::vector< MEdge_edges
 

Additional Inherited Members

- Static Public Member Functions inherited from MElement
static unsigned int getInfoMSH (const int typeMSH, const char **const name=nullptr)
 
- Static Protected Member Functions inherited from MElement
static bool _getFaceInfo (const MFace &face, const MFace &other, int &sign, int &rot)
 
- Static Protected Attributes inherited from MElement
static double _isInsideTolerance
 

Detailed Description

Definition at line 198 of file MElementCut.h.

Constructor & Destructor Documentation

◆ MPolygon() [1/2]

MPolygon::MPolygon ( std::vector< MVertex * >  v,
int  num = 0,
int  part = 0,
bool  owner = false,
MElement orig = nullptr 
)
inline

Definition at line 210 of file MElementCut.h.

Here is the call graph for this function:

◆ MPolygon() [2/2]

MPolygon::MPolygon ( std::vector< MTriangle * >  vT,
int  num = 0,
int  part = 0,
bool  owner = false,
MElement orig = nullptr 
)
inline

Definition at line 218 of file MElementCut.h.

Here is the call graph for this function:

◆ ~MPolygon()

MPolygon::~MPolygon ( )
inline

Definition at line 228 of file MElementCut.h.

Member Function Documentation

◆ _initVertices()

void MPolygon::_initVertices ( )
protected

Definition at line 152 of file MElementCut.cpp.

Referenced by MPolygon(), and reverse().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getChild()

virtual MElement* MPolygon::getChild ( int  i) const
inlinevirtual

Reimplemented from MElement.

Definition at line 300 of file MElementCut.h.

◆ getDim()

virtual int MPolygon::getDim ( ) const
inlinevirtual

Implements MElement.

Definition at line 234 of file MElementCut.h.

◆ getEdge()

virtual MEdge MPolygon::getEdge ( int  num) const
inlinevirtual

Implements MElement.

Definition at line 253 of file MElementCut.h.

Referenced by getEdgeRep().

Here is the caller graph for this function:

◆ getEdgeRep()

virtual void MPolygon::getEdgeRep ( bool  curved,
int  num,
double *  x,
double *  y,
double *  z,
SVector3 n 
)
inlinevirtual

Implements MElement.

Definition at line 255 of file MElementCut.h.

Here is the call graph for this function:

◆ getEdgeVertices()

virtual void MPolygon::getEdgeVertices ( const int  num,
std::vector< MVertex * > &  v 
) const
inlinevirtual

Reimplemented from MElement.

Definition at line 261 of file MElementCut.h.

◆ getFace()

virtual MFace MPolygon::getFace ( int  num) const
inlinevirtual

Implements MElement.

Definition at line 268 of file MElementCut.h.

◆ getFaceRep()

virtual void MPolygon::getFaceRep ( bool  curved,
int  num,
double *  x,
double *  y,
double *  z,
SVector3 n 
)
inlinevirtual

Implements MElement.

Definition at line 270 of file MElementCut.h.

Here is the call graph for this function:

◆ getFaceVertices()

virtual void MPolygon::getFaceVertices ( const int  num,
std::vector< MVertex * > &  v 
) const
inlinevirtual

Reimplemented from MElement.

Definition at line 276 of file MElementCut.h.

◆ getFunctionSpace()

virtual const nodalBasis* MPolygon::getFunctionSpace ( int  order = -1,
bool  serendip = false 
) const
inlinevirtual

Reimplemented from MElement.

Definition at line 302 of file MElementCut.h.

Here is the call graph for this function:

◆ getGradShapeFunctions()

virtual void MPolygon::getGradShapeFunctions ( double  u,
double  v,
double  w,
double  s[][3],
int  o 
) const
inlinevirtual

Reimplemented from MElement.

Definition at line 316 of file MElementCut.h.

Here is the call graph for this function:

◆ getHessShapeFunctions()

virtual void MPolygon::getHessShapeFunctions ( double  u,
double  v,
double  w,
double  s[][3][3],
int  o 
) const
inlinevirtual

Reimplemented from MElement.

Definition at line 321 of file MElementCut.h.

Here is the call graph for this function:

◆ getIntegrationPoints()

void MPolygon::getIntegrationPoints ( int  pOrder,
int *  npts,
IntPt **  pts 
)
virtual

Reimplemented from MElement.

Definition at line 279 of file MElementCut.cpp.

Here is the call graph for this function:

◆ getJacobianFuncSpace()

virtual const JacobianBasis* MPolygon::getJacobianFuncSpace ( int  order = -1) const
inlinevirtual

Reimplemented from MElement.

Definition at line 307 of file MElementCut.h.

Here is the call graph for this function:

◆ getNumChildren()

virtual int MPolygon::getNumChildren ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 299 of file MElementCut.h.

◆ getNumEdges()

virtual int MPolygon::getNumEdges ( ) const
inlinevirtual

Implements MElement.

Definition at line 252 of file MElementCut.h.

Referenced by _initVertices(), and getNumEdgesRep().

Here is the caller graph for this function:

◆ getNumEdgesRep()

virtual int MPolygon::getNumEdgesRep ( bool  curved)
inlinevirtual

Implements MElement.

Definition at line 254 of file MElementCut.h.

Here is the call graph for this function:

◆ getNumFaces()

virtual int MPolygon::getNumFaces ( )
inlinevirtual

Implements MElement.

Definition at line 267 of file MElementCut.h.

◆ getNumFacesRep()

virtual int MPolygon::getNumFacesRep ( bool  curved)
inlinevirtual

Implements MElement.

Definition at line 269 of file MElementCut.h.

◆ getNumFaceVertices()

virtual int MPolygon::getNumFaceVertices ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 239 of file MElementCut.h.

◆ getNumPrimaryShapeFunctions()

virtual std::size_t MPolygon::getNumPrimaryShapeFunctions ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 330 of file MElementCut.h.

Here is the call graph for this function:

◆ getNumShapeFunctions()

virtual std::size_t MPolygon::getNumShapeFunctions ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 326 of file MElementCut.h.

Here is the call graph for this function:

◆ getNumVertices()

virtual std::size_t MPolygon::getNumVertices ( ) const
inlinevirtual

Implements MElement.

Definition at line 235 of file MElementCut.h.

◆ getNumVerticesForMSH()

virtual std::size_t MPolygon::getNumVerticesForMSH ( )
inlinevirtual

Reimplemented from MElement.

Definition at line 347 of file MElementCut.h.

Referenced by getVerticesIdForMSH().

Here is the caller graph for this function:

◆ getParent()

virtual MElement* MPolygon::getParent ( ) const
inlinevirtual

Reimplemented from MElement.

Reimplemented in MPolygonBorder.

Definition at line 293 of file MElementCut.h.

Referenced by getIntegrationPoints(), and isInside().

Here is the caller graph for this function:

◆ getShapeFunctionNode() [1/2]

virtual MVertex* MPolygon::getShapeFunctionNode ( int  i)
inlinevirtual

Reimplemented from MElement.

Definition at line 338 of file MElementCut.h.

Here is the call graph for this function:

◆ getShapeFunctionNode() [2/2]

virtual const MVertex* MPolygon::getShapeFunctionNode ( int  i) const
inlinevirtual

Reimplemented from MElement.

Definition at line 334 of file MElementCut.h.

Here is the call graph for this function:

◆ getShapeFunctions()

virtual void MPolygon::getShapeFunctions ( double  u,
double  v,
double  w,
double  s[],
int  o 
) const
inlinevirtual

Reimplemented from MElement.

Definition at line 311 of file MElementCut.h.

Here is the call graph for this function:

◆ getType()

virtual int MPolygon::getType ( ) const
inlinevirtual

Implements MElement.

Definition at line 283 of file MElementCut.h.

◆ getTypeForMSH()

virtual int MPolygon::getTypeForMSH ( ) const
inlinevirtual

Reimplemented from MElement.

Reimplemented in MPolygonBorder.

Definition at line 284 of file MElementCut.h.

◆ getVertex() [1/2]

virtual MVertex* MPolygon::getVertex ( int  num)
inlinevirtual

Implements MElement.

Definition at line 240 of file MElementCut.h.

Referenced by _initVertices(), getFaceRep(), and getVerticesIdForMSH().

Here is the caller graph for this function:

◆ getVertex() [2/2]

virtual const MVertex* MPolygon::getVertex ( int  num) const
inlinevirtual

Implements MElement.

Definition at line 246 of file MElementCut.h.

◆ getVerticesIdForMSH()

virtual void MPolygon::getVerticesIdForMSH ( std::vector< int > &  verts)
inlinevirtual

Reimplemented from MElement.

Definition at line 348 of file MElementCut.h.

Here is the call graph for this function:

◆ isInside()

bool MPolygon::isInside ( double  u,
double  v,
double  w 
) const
virtual

Implements MElement.

Definition at line 257 of file MElementCut.cpp.

Referenced by _initVertices().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ numCommonNodesInDualGraph()

virtual int MPolygon::numCommonNodesInDualGraph ( const MElement *const  other) const
inlinevirtual

Implements MElement.

Definition at line 356 of file MElementCut.h.

◆ ownsParent()

virtual bool MPolygon::ownsParent ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 301 of file MElementCut.h.

◆ reverse()

virtual void MPolygon::reverse ( )
inlinevirtual

Reimplemented from MElement.

Definition at line 285 of file MElementCut.h.

Here is the call graph for this function:

◆ setParent()

virtual void MPolygon::setParent ( MElement p,
bool  owner = false 
)
inlinevirtual

Reimplemented from MElement.

Definition at line 294 of file MElementCut.h.

Member Data Documentation

◆ _edges

std::vector<MEdge> MPolygon::_edges
protected

Definition at line 206 of file MElementCut.h.

Referenced by _initVertices(), getEdge(), getEdgeVertices(), getNumEdges(), and reverse().

◆ _innerVertices

std::vector<MVertex *> MPolygon::_innerVertices
protected

◆ _intpt

IntPt* MPolygon::_intpt
protected

Definition at line 202 of file MElementCut.h.

Referenced by getIntegrationPoints(), and ~MPolygon().

◆ _orig

◆ _owner

bool MPolygon::_owner
protected

Definition at line 200 of file MElementCut.h.

Referenced by ownsParent(), setParent(), and ~MPolygon().

◆ _parts

◆ _vertices

std::vector<MVertex *> MPolygon::_vertices
protected

The documentation for this class was generated from the following files: