gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
34 MPolyhedron(std::vector<MVertex *> v,
int num = 0,
int part = 0,
35 bool owner =
false,
MElement *orig =
nullptr)
39 Msg::Error(
"Got %d nodes for polyhedron", (
int)v.size());
42 for(std::size_t i = 0; i < v.size(); i += 4)
46 MPolyhedron(std::vector<MTetrahedron *> vT,
int num = 0,
int part = 0,
47 bool owner =
false,
MElement *orig =
nullptr)
50 for(std::size_t i = 0; i < vT.size(); i++)
_parts.push_back(vT[i]);
56 for(std::size_t i = 0; i <
_parts.size(); i++)
delete _parts[i];
59 virtual int getDim()
const {
return 3; }
80 virtual void getEdgeRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
84 for(std::size_t i = 0; i <
_faces.size(); i++)
85 for(
int j = 0; j < 3; j++)
92 v[0] =
_edges[num].getVertex(0);
93 v[1] =
_edges[num].getVertex(1);
98 virtual void getFaceRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
107 v[0] =
_faces[num].getVertex(0);
108 v[1] =
_faces[num].getVertex(1);
109 v[2] =
_faces[num].getVertex(2);
125 for(std::size_t i = 0; i <
_parts.size(); i++)
130 bool serendip =
false)
const
144 double s[][3],
int o)
const
149 double s[][3][3],
int o)
const
172 virtual bool isInside(
double u,
double v,
double w)
const;
188 for(std::size_t i = 0; i <
_parts.size(); i++)
189 for(
int j = 0; j < 4; j++)
210 MPolygon(std::vector<MVertex *> v,
int num = 0,
int part = 0,
211 bool owner =
false,
MElement *orig =
nullptr)
214 for(std::size_t i = 0; i < v.size() / 3; i++)
218 MPolygon(std::vector<MTriangle *> vT,
int num = 0,
int part = 0,
219 bool owner =
false,
MElement *orig =
nullptr)
222 for(std::size_t i = 0; i < vT.size(); i++) {
231 for(std::size_t i = 0; i <
_parts.size(); i++)
delete _parts[i];
255 virtual void getEdgeRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
264 v[0] =
_edges[num].getVertex(0);
265 v[1] =
_edges[num].getVertex(1);
270 virtual void getFaceRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
303 bool serendip =
false)
const
317 double s[][3],
int o)
const
322 double s[][3][3],
int o)
const
345 virtual bool isInside(
double u,
double v,
double w)
const;
352 for(std::size_t i = 0; i <
_parts.size(); i++)
353 for(
int j = 0; j < 3; j++)
370 bool owner =
false,
MElement *orig =
nullptr)
374 MLineChild(
const std::vector<MVertex *> &v,
int num = 0,
int part = 0,
375 bool owner =
false,
MElement *orig =
nullptr)
385 bool serendip =
false)
const
401 double s[][3],
int o)
const
406 double s[][3][3],
int o)
const
412 virtual bool isInside(
double u,
double v,
double w)
const;
455 virtual bool isInside(
double u,
double v,
double w)
const;
468 bool own =
false,
MElement *p =
nullptr,
476 bool own =
false,
MElement *p =
nullptr,
508 MLineBorder(
const std::vector<MVertex *> &v,
int num = 0,
int part = 0,
525 virtual bool isInside(
double u,
double v,
double w)
const;
541 std::map<
int, std::vector<MElement *> > elements[10],
542 std::map<int, MVertex *> &vertexMap,
543 std::map<
int, std::map<int, std::string> > physicals[4],
virtual void getFaceVertices(const int num, std::vector< MVertex * > &v) const
virtual MElement * getParent() const
virtual int getTypeForMSH() const
virtual int numCommonNodesInDualGraph(const MElement *const other) const
virtual void getFaceVertices(const int num, std::vector< MVertex * > &v) const
virtual MElement * getChild(int i) const
std::vector< MEdge > _edges
MLineBorder(const std::vector< MVertex * > &v, int num=0, int part=0, MElement *d1=nullptr, MElement *d2=nullptr)
MLineChild(MVertex *v0, MVertex *v1, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
virtual void getFaceRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual bool ownsParent() const
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
virtual void getShapeFunctions(double u, double v, double w, double s[], int o) const
MPolygon(std::vector< MVertex * > v, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
virtual int getNumEdgesRep(bool curved)
virtual MElement * getChild(int i) const
virtual int numCommonNodesInDualGraph(const MElement *const other) const
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
MTriangleBorder(const std::vector< MVertex * > &v, int num=0, int part=0, MElement *d1=nullptr, MElement *d2=nullptr)
virtual int getNumFaceVertices() const
virtual const JacobianBasis * getJacobianFuncSpace(int order=-1) const
virtual const nodalBasis * getFunctionSpace(int order=-1, bool serendip=false) const
virtual int getType() const
MPolygonBorder(const std::vector< MVertex * > &v, int num=0, int part=0, bool own=false, MElement *p=nullptr, MElement *d1=nullptr, MElement *d2=nullptr)
virtual MElement * getDomain(int i) const
static void Error(const char *fmt,...)
virtual MEdge getEdge(int num) const
virtual bool isInside(double u, double v, double w) const
virtual MElement * getDomain(int i) const
virtual MElement * getParent() const
virtual std::size_t getNumPrimaryShapeFunctions() const
MPolyhedron(std::vector< MTetrahedron * > vT, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
virtual MVertex * getVertex(int num)
virtual const MVertex * getShapeFunctionNode(int i) const
virtual int getNumFaces()
virtual double getVolume()
virtual void getHessShapeFunctions(double u, double v, double w, double s[][3][3], int o) const
virtual void getFaceRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual int getType() const
virtual void getHessShapeFunctions(double u, double v, double w, double s[][3][3], int o) const
virtual MFace getFace(int num) const
virtual const MVertex * getShapeFunctionNode(int i) const
virtual MElement * getParent() const
std::vector< MTriangle * > _parts
MTriangleBorder(MVertex *v0, MVertex *v1, MVertex *v2, int num=0, int part=0, MElement *d1=nullptr, MElement *d2=nullptr)
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 order=-1) const
virtual void getEdgeVertices(const int num, std::vector< MVertex * > &v) const
virtual int getNumFacesRep(bool curved)
virtual const nodalBasis * getFunctionSpace(int order=-1, bool serendip=false) const
virtual int getNumEdges() const
virtual void setParent(MElement *p, bool owner=false)
virtual void setDomain(MElement *d, int i)
virtual int getTypeForMSH() const
virtual bool ownsParent() const
virtual std::size_t getNumVertices() const
virtual const JacobianBasis * getJacobianFuncSpace(int order=-1) const
void _getEdgeRep(MVertex *v0, MVertex *v1, double *x, double *y, double *z, SVector3 *n, int faceIndex=-1)
virtual void setDomain(MElement *d, int i)
MVertex * getVertex(std::size_t i) const
virtual MVertex * getShapeFunctionNode(int i)
virtual bool isInside(double u, double v, double w) const
virtual std::size_t getNumPrimaryShapeFunctions() const
MLineBorder(MVertex *v0, MVertex *v1, int num=0, int part=0, MElement *d1=nullptr, MElement *d2=nullptr)
virtual int getTypeForMSH() const
virtual MVertex * getShapeFunctionNode(int i)
virtual void getShapeFunctions(double u, double v, double w, double s[], int o) const
virtual MEdge getEdge(int num) const
virtual void getVerticesIdForMSH(std::vector< int > &verts)
virtual void setParent(MElement *p, bool owner=false)
virtual MElement * getParent() const
std::vector< MVertex * > _innerVertices
MPolyhedron(std::vector< MVertex * > v, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
virtual MFace getFace(int num) const
virtual std::size_t getNumShapeFunctions() const
virtual std::size_t getNumPrimaryShapeFunctions() const
virtual int getNumFaces()
virtual MElement * getParent() const
virtual const MVertex * getShapeFunctionNode(int i) const
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
virtual void getEdgeRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual void getEdgeRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual MElement * getParent() const
virtual const MVertex * getVertex(int num) const
virtual void setParent(MElement *p, bool owner=false)
virtual void getHessShapeFunctions(double u, double v, double w, double s[][3][3], int o) const
virtual bool isInside(double u, double v, double w) const
virtual bool isInside(double u, double v, double w) const
virtual bool isInside(double u, double v, double w) const
virtual void setDomain(MElement *d, int i)
virtual const MVertex * getVertex(int num) const
virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) const
virtual int getNumEdges() const
virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) const
void _getFaceRep(MVertex *v0, MVertex *v1, MVertex *v2, double *x, double *y, double *z, SVector3 *n)
virtual MElement * getParent() const
virtual int getTypeForMSH() const
long int getIndex() const
virtual bool ownsParent() const
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
virtual int getNumFacesRep(bool curved)
MPolygon(std::vector< MTriangle * > vT, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
virtual int getNumChildren() const
virtual void getShapeFunctions(double u, double v, double w, double s[], int o) const
virtual int getNumEdgesRep(bool curved)
virtual MElement * getDomain(int i) const
virtual void getEdgeVertices(const int num, std::vector< MVertex * > &v) const
virtual void getVerticesIdForMSH(std::vector< int > &verts)
virtual const JacobianBasis * getJacobianFuncSpace(int orderElement=-1) const
std::vector< MTetrahedron * > _parts
virtual void getShapeFunctions(double u, double v, double w, double s[], int order=-1) const
virtual int getNumChildren() const
virtual int getNumVolumeVertices() const
std::vector< MVertex * > _vertices
virtual std::size_t getNumShapeFunctions() const
GModel * buildCutMesh(GModel *gm, gLevelset *ls, std::map< int, std::vector< MElement * > > elements[10], std::map< int, MVertex * > &vertexMap, std::map< int, std::map< int, std::string > > physicals[4], bool cutElem)
virtual int getTypeForMSH() const
virtual MVertex * getVertex(int num)
virtual int getTypeForMSH() const
MPolygonBorder(const std::vector< MTriangle * > &v, int num=0, int part=0, bool own=false, MElement *p=nullptr, MElement *d1=nullptr, MElement *d2=nullptr)
std::vector< MVertex * > _vertices
virtual std::size_t getNumVertices() const
virtual const JacobianBasis * getJacobianFuncSpace(int order=-1) const
std::vector< MEdge > _edges
std::vector< MFace > _faces
virtual const nodalBasis * getFunctionSpace(int order=-1, bool serendip=false) const
virtual std::size_t getNumVerticesForMSH()
virtual std::size_t getNumShapeFunctions() const
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
virtual int getDim() const
virtual std::size_t getNumVerticesForMSH()
virtual int getDim() const
virtual const nodalBasis * getFunctionSpace(int order=-1, bool serendip=false) const
std::vector< MVertex * > _innerVertices
MLineChild(const std::vector< MVertex * > &v, int num=0, int part=0, bool owner=false, MElement *orig=nullptr)
virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int order=-1) const