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

#include <MSubElement.h>

Inheritance diagram for MSubTriangle:
Collaboration diagram for MSubTriangle:

Public Member Functions

 MSubTriangle (MVertex *v0, MVertex *v1, MVertex *v2, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
 
 MSubTriangle (const std::vector< MVertex * > &v, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
 
 MSubTriangle (const MTriangle &tri, bool owner=false, MElement *orig=nullptr)
 
 ~MSubTriangle ()
 
virtual int getTypeForMSH () 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 order=-1) const
 
virtual void getGradShapeFunctions (double u, double v, double w, double s[][3], int order=-1) const
 
virtual void getHessShapeFunctions (double u, double v, double w, double s[][3][3], int order=-1) 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 (double u, double v, double w, double jac[3][3]) const
 
virtual double getPrimaryJacobian (double u, double v, double w, double jac[3][3]) const
 
virtual std::size_t getNumShapeFunctions () const
 
virtual std::size_t getNumPrimaryShapeFunctions () const
 
virtual const MVertexgetShapeFunctionNode (int i) const
 
virtual MVertexgetShapeFunctionNode (int i)
 
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
 
virtual bool isInside (double u, double v, double w) const
 
virtual void getIntegrationPoints (int pOrder, int *npts, IntPt **pts)
 
virtual MElementgetParent () const
 
virtual void setParent (MElement *p, bool owner=false)
 
virtual bool ownsParent () const
 
virtual std::vector< MElement * > getMultiParents () const
 
virtual void setMultiParent (std::vector< MElement * > &parents, bool owner=false)
 
virtual const MElementgetBaseElement () const
 
virtual MElementgetBaseElement ()
 
- Public Member Functions inherited from MTriangle
 MTriangle (MVertex *v0, MVertex *v1, MVertex *v2, int num=0, int part=0)
 
 MTriangle (const std::vector< MVertex * > &v, int num=0, int part=0)
 
 ~MTriangle ()
 
virtual int getDim () const
 
virtual double etaShapeMeasure ()
 
virtual double gammaShapeMeasure ()
 
virtual double getInnerRadius ()
 
virtual double getOuterRadius ()
 
virtual double angleShapeMeasure ()
 
virtual std::size_t getNumVertices () const
 
virtual MVertexgetVertex (int num)
 
virtual const MVertexgetVertex (int num) const
 
virtual void setVertex (int num, MVertex *v)
 
virtual MVertexgetOtherVertex (MVertex *v1, MVertex *v2)
 
virtual int getNumEdges () const
 
virtual MEdge getEdge (int num) const
 
virtual int numEdge2numVertex (int numEdge, int numVert) 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 bool getFaceInfo (const MFace &face, int &ithFace, int &sign, int &rot) const
 
virtual MFaceN getHighOrderFace (int num, int sign, int rot)
 
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 getTypeForUNV () const
 
virtual int getTypeForVTK () 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
 
virtual const char * getStringForTOCHNOG () const
 
virtual void reverse ()
 
virtual void reorient (int rotation, bool swap)
 
virtual void getNode (int num, double &u, double &v, double &w) const
 
virtual SPoint3 barycenterUVW () const
 
virtual SPoint3 circumcenter ()
 
virtual double getVolume ()
 
virtual int numCommonNodesInDualGraph (const MElement *const other) const
 
virtual MEdge getEdgeSolin (int num)
 
virtual MFace getFaceSolin (int num)
 
- 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 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 getNumFaceVertices () 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
 
MFaceN getHighOrderFace (const MFace &face)
 
virtual int getNumChildren () const
 
virtual MElementgetChild (int i) const
 
virtual MElementgetDomain (int i) const
 
virtual void setDomain (MElement *e, int i)
 
virtual double maxEdge ()
 
virtual double minEdge ()
 
double maxDistToStraight () const
 
double skewness ()
 
double minSICNShapeMeasure ()
 
double minSIGEShapeMeasure ()
 
double distoShapeMeasure ()
 
double minIsotropyMeasure (bool knownValid=false, bool reversedOk=false)
 
double minScaledJacobian (bool knownValid=false, bool reversedOk=false)
 
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 SPoint3 barycenter (bool primary=false) const
 
virtual SPoint3 fastBarycenter (bool primary=false) const
 
virtual SPoint3 barycenter_infty () const
 
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 double getJacobian (const std::vector< SVector3 > &gsf, double *jac) const
 
double getJacobian (double u, double v, double w, fullMatrix< double > &j) 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)
 
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)
 
std::string getName ()
 
virtual std::size_t getNumVerticesForMSH ()
 
virtual void getVerticesIdForMSH (std::vector< int > &verts)
 
virtual MElementcopy (std::map< int, MVertex * > &vertexMap, std::map< MElement *, MElement * > &newParents, std::map< MElement *, MElement * > &newDomains)
 

Protected Member Functions

 MSubTriangle (const std::vector< MVertex * > &v, int num, int part, bool owner, int orig)
 
virtual void updateParent (GModel *gm)
 
- Protected Member Functions inherited from MTriangle
void _getEdgeVertices (const int num, std::vector< MVertex * > &v) const
 
void _getFaceVertices (std::vector< MVertex * > &v) const
 
- 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
 
union {
   MElement *   _orig
 
   int   _orig_N
 
}; 
 
std::vector< MElement * > _parents
 
MElement_base
 
int _pOrder
 
int _npts
 
IntPt_pts
 
- Protected Attributes inherited from MTriangle
MVertex_v [3]
 

Friends

class MElementFactory
 
class GModel
 

Additional Inherited Members

- Static Public Member Functions inherited from MTriangle
static int edges_tri (const int edge, const int vert)
 
- 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 130 of file MSubElement.h.

Constructor & Destructor Documentation

◆ MSubTriangle() [1/4]

MSubTriangle::MSubTriangle ( const std::vector< MVertex * > &  v,
int  num,
int  part,
bool  owner,
int  orig 
)
inlineprotected

Definition at line 147 of file MSubElement.h.

◆ MSubTriangle() [2/4]

MSubTriangle::MSubTriangle ( MVertex v0,
MVertex v1,
MVertex v2,
int  num = 0,
int  part = 0,
bool  owner = false,
MElement orig = nullptr 
)
inline

Definition at line 156 of file MSubElement.h.

◆ MSubTriangle() [3/4]

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

Definition at line 162 of file MSubElement.h.

◆ MSubTriangle() [4/4]

MSubTriangle::MSubTriangle ( const MTriangle tri,
bool  owner = false,
MElement orig = nullptr 
)
inline

Definition at line 168 of file MSubElement.h.

◆ ~MSubTriangle()

MSubTriangle::~MSubTriangle ( )

Definition at line 225 of file MSubElement.cpp.

Member Function Documentation

◆ getBaseElement() [1/2]

virtual MElement* MSubTriangle::getBaseElement ( )
inlinevirtual

Reimplemented from MElement.

Definition at line 230 of file MSubElement.h.

Here is the call graph for this function:

◆ getBaseElement() [2/2]

virtual const MElement* MSubTriangle::getBaseElement ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 225 of file MSubElement.h.

Referenced by getGradShapeFunctions(), getIntegrationPoints(), isInside(), movePointFromElementSpaceToParentSpace(), and movePointFromParentSpaceToElementSpace().

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

◆ getFunctionSpace()

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

Reimplemented from MElement.

Definition at line 236 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getGradShapeFunctions()

void MSubTriangle::getGradShapeFunctions ( double  u,
double  v,
double  w,
double  s[][3],
int  order = -1 
) const
virtual

Reimplemented from MElement.

Definition at line 254 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getHessShapeFunctions()

void MSubTriangle::getHessShapeFunctions ( double  u,
double  v,
double  w,
double  s[][3][3],
int  order = -1 
) const
virtual

Reimplemented from MElement.

Definition at line 312 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getIntegrationPoints()

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

Reimplemented from MTriangle.

Definition at line 431 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getJacobian() [1/3]

double MSubTriangle::getJacobian ( const fullMatrix< double > &  gsf,
double  jac[3][3] 
) const
virtual

Reimplemented from MElement.

Definition at line 326 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getJacobian() [2/3]

double MSubTriangle::getJacobian ( const std::vector< SVector3 > &  gsf,
double  jac[3][3] 
) const
virtual

Reimplemented from MElement.

Definition at line 332 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getJacobian() [3/3]

double MSubTriangle::getJacobian ( double  u,
double  v,
double  w,
double  jac[3][3] 
) const
virtual

Reimplemented from MElement.

Definition at line 338 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getJacobianFuncSpace()

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

Reimplemented from MElement.

Definition at line 242 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getMultiParents()

virtual std::vector<MElement *> MSubTriangle::getMultiParents ( ) const
inlinevirtual

Definition at line 217 of file MSubElement.h.

◆ getNumPrimaryShapeFunctions()

std::size_t MSubTriangle::getNumPrimaryShapeFunctions ( ) const
virtual

Reimplemented from MElement.

Definition at line 357 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getNumShapeFunctions()

std::size_t MSubTriangle::getNumShapeFunctions ( ) const
virtual

Reimplemented from MElement.

Definition at line 351 of file MSubElement.cpp.

Referenced by getGradShapeFunctions().

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

◆ getParent()

virtual MElement* MSubTriangle::getParent ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 210 of file MSubElement.h.

◆ getPrimaryJacobian()

double MSubTriangle::getPrimaryJacobian ( double  u,
double  v,
double  w,
double  jac[3][3] 
) const
virtual

Reimplemented from MElement.

Definition at line 344 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getShapeFunctionNode() [1/2]

MVertex * MSubTriangle::getShapeFunctionNode ( int  i)
virtual

Reimplemented from MElement.

Definition at line 369 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getShapeFunctionNode() [2/2]

const MVertex * MSubTriangle::getShapeFunctionNode ( int  i) const
virtual

Reimplemented from MElement.

Definition at line 363 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getShapeFunctions()

void MSubTriangle::getShapeFunctions ( double  u,
double  v,
double  w,
double  s[],
int  order = -1 
) const
virtual

Reimplemented from MElement.

Definition at line 248 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getThirdDerivativeShapeFunctions()

void MSubTriangle::getThirdDerivativeShapeFunctions ( double  u,
double  v,
double  w,
double  s[][3][3][3],
int  order = -1 
) const
virtual

Reimplemented from MElement.

Definition at line 318 of file MSubElement.cpp.

Here is the call graph for this function:

◆ getTypeForMSH()

virtual int MSubTriangle::getTypeForMSH ( ) const
inlinevirtual

Reimplemented from MTriangle.

Definition at line 176 of file MSubElement.h.

◆ isInside()

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

Reimplemented from MTriangle.

Definition at line 408 of file MSubElement.cpp.

Here is the call graph for this function:

◆ movePointFromElementSpaceToParentSpace()

void MSubTriangle::movePointFromElementSpaceToParentSpace ( double &  u,
double &  v,
double &  w 
) const
virtual

Reimplemented from MElement.

Definition at line 394 of file MSubElement.cpp.

Referenced by getIntegrationPoints().

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

◆ movePointFromParentSpaceToElementSpace()

void MSubTriangle::movePointFromParentSpaceToElementSpace ( double &  u,
double &  v,
double &  w 
) const
virtual

Reimplemented from MElement.

Definition at line 380 of file MSubElement.cpp.

Referenced by isInside().

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

◆ ownsParent()

virtual bool MSubTriangle::ownsParent ( ) const
inlinevirtual

Reimplemented from MElement.

Definition at line 216 of file MSubElement.h.

◆ setMultiParent()

virtual void MSubTriangle::setMultiParent ( std::vector< MElement * > &  parents,
bool  owner = false 
)
inlinevirtual

Definition at line 218 of file MSubElement.h.

◆ setParent()

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

Reimplemented from MElement.

Definition at line 211 of file MSubElement.h.

◆ updateParent()

void MSubTriangle::updateParent ( GModel gm)
protectedvirtual

Reimplemented from MElement.

Definition at line 231 of file MSubElement.cpp.

Here is the call graph for this function:

◆ xyz2uvw()

void MSubTriangle::xyz2uvw ( double  xyz[3],
double  uvw[3] 
) const
virtual

Reimplemented from MTriangle.

Definition at line 375 of file MSubElement.cpp.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ GModel

friend class GModel
friend

Definition at line 132 of file MSubElement.h.

◆ MElementFactory

friend class MElementFactory
friend

Definition at line 131 of file MSubElement.h.

Member Data Documentation

◆ @24

union { ... }

◆ _base

MElement* MSubTriangle::_base
mutableprotected

Definition at line 141 of file MSubElement.h.

Referenced by getBaseElement(), and ~MSubTriangle().

◆ _npts

int MSubTriangle::_npts
protected

Definition at line 144 of file MSubElement.h.

Referenced by getIntegrationPoints().

◆ _orig

◆ _orig_N

int MSubTriangle::_orig_N

Definition at line 138 of file MSubElement.h.

Referenced by updateParent().

◆ _owner

bool MSubTriangle::_owner
protected

Definition at line 135 of file MSubElement.h.

Referenced by ownsParent(), setMultiParent(), and setParent().

◆ _parents

std::vector<MElement *> MSubTriangle::_parents
protected

Definition at line 140 of file MSubElement.h.

Referenced by getMultiParents(), and setMultiParent().

◆ _pOrder

int MSubTriangle::_pOrder
protected

Definition at line 143 of file MSubElement.h.

Referenced by getIntegrationPoints().

◆ _pts

IntPt* MSubTriangle::_pts
protected

Definition at line 145 of file MSubElement.h.

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


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