gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
37 MLine(
const std::vector<MVertex *> &v,
int num = 0,
int part = 0)
40 for(
int i = 0; i < 2; i++)
_v[i] = v[i];
43 virtual int getDim()
const {
return 1; }
53 ithVertex =
_v[0] == vertex ? 0 : 1;
58 virtual void getEdgeRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
71 virtual void getFaceRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
91 virtual bool isInside(
double u,
double v,
double w)
const
94 if(u < -(1. + tol) || u > (1. + tol) || fabs(v) > tol || fabs(w) > tol)
98 virtual void getNode(
int num,
double &u,
double &v,
double &w)
const
102 case 0: u = -1.;
break;
103 case 1: u = 1.;
break;
104 default: u = 0.;
break;
109 virtual void discretize(
double tol, std::vector<SPoint3> &dpts,
110 std::vector<double> &ts);
134 :
MLine(v0, v1, num, part)
139 MLine3(
const std::vector<MVertex *> &v,
int num = 0,
int part = 0)
140 :
MLine(v, num, part)
150 return num < 2 ?
_v[num] :
_vs[num - 2];
154 return num < 2 ?
_v[num] :
_vs[num - 2];
165 static const int map[3] = {0, 2, 1};
173 virtual void getEdgeRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
189 virtual void getNode(
int num,
double &u,
double &v,
double &w)
const
193 virtual void discretize(
double tol, std::vector<SPoint3> &dpts,
194 std::vector<double> &ts);
209 std::vector<MVertex *>
_vs;
213 int num = 0,
int part = 0)
216 for(std::size_t i = 0; i <
_vs.size(); i++)
217 _vs[i]->setPolynomialOrder(
_vs.size() + 1);
219 MLineN(
const std::vector<MVertex *> &v,
int num = 0,
int part = 0)
220 :
MLine(v[0], v[1], num, part)
222 for(std::size_t i = 2; i < v.size(); i++)
_vs.push_back(v[i]);
223 for(std::size_t i = 0; i <
_vs.size(); i++)
224 _vs[i]->setPolynomialOrder(
_vs.size() + 1);
231 return num < 2 ?
_v[num] :
_vs[num - 2];
235 return num < 2 ?
_v[num] :
_vs[num - 2];
246 virtual void getEdgeRep(
bool curved,
int num,
double *x,
double *y,
double *
z,
250 v.resize(2 +
_vs.size());
252 for(std::size_t i = 0; i !=
_vs.size(); ++i) v[i + 2] =
_vs[i];
268 Msg::Error(
"No MSH type found for line with %d nodes", 8 +
_vs.size());
277 std::vector<MVertex *> inv;
278 inv.insert(inv.begin(),
_vs.rbegin(),
_vs.rend());
281 virtual void getNode(
int num,
double &u,
double &v,
double &w)
const
285 virtual void discretize(
double tol, std::vector<SPoint3> &dpts,
286 std::vector<double> &ts);
virtual int getDim() const
virtual void setVertex(int num, MVertex *v)
void _getEdgeVertices(std::vector< MVertex * > &v) const
virtual int getNumFaces()
virtual const char * getStringForINP() const
virtual SPoint3 barycenterUVW() const
MLine3(MVertex *v0, MVertex *v1, MVertex *v2, int num=0, int part=0)
virtual const char * getStringForTOCHNOG() const
virtual void getNode(int num, double &u, double &v, double &w) const
virtual const char * getStringForKEY() const
virtual MVertex * getVertex(int num)
virtual void getEdgeVertices(const int num, std::vector< MVertex * > &v) const
virtual int getTypeForUNV() const
void setPolynomialOrder(int order)
virtual const char * getStringForKEY() const
virtual double getVolume()
virtual const char * getStringForRAD() const
static void Error(const char *fmt,...)
virtual int getPolynomialOrder() const
virtual MVertex * getVertexRAD(int num)
virtual int getNumEdgesRep(bool curved)
virtual void getEdgeVertices(const int num, std::vector< MVertex * > &v) const
virtual void getEdgeRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual int getPolynomialOrder() const
virtual int getNumEdges() const
virtual MEdge getEdge(int num) const
virtual std::size_t getNumVertices() const
virtual void setVertex(int num, MVertex *v)
virtual void discretize(double tol, std::vector< SPoint3 > &dpts, std::vector< double > &ts)
virtual void getFaceRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual int numCommonNodesInDualGraph(const MElement *const other) const
virtual const char * getStringForINP() const
virtual void getEdgeRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual void discretize(double tol, std::vector< SPoint3 > &dpts, std::vector< double > &ts)
virtual MFace getFace(int num) const
void _getEdgeRep(MVertex *v0, MVertex *v1, double *x, double *y, double *z, SVector3 *n, int faceIndex=-1)
virtual MVertex * getVertexKEY(int num)
virtual int getType() const =0
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
virtual const MVertex * getVertex(int num) const
virtual void getEdgeRep(bool curved, int num, double *x, double *y, double *z, SVector3 *n)
virtual MVertex * getVertex(int num)
virtual bool isInside(double u, double v, double w) const
virtual int getNumFacesRep(bool curved)
virtual void discretize(double tol, std::vector< SPoint3 > &dpts, std::vector< double > &ts)
virtual std::size_t getNumVertices() const
virtual int getNumEdgesRep(bool curved)
virtual void setVertex(int num, MVertex *v)
virtual MVertex * getVertexUNV(int num)
virtual const char * getStringForPOS() const
virtual int getType() const
virtual void getEdgeVertices(const int num, std::vector< MVertex * > &v) const
virtual MVertex * getVertex(int num)
virtual std::size_t getNumVertices() const
virtual int getTypeForUNV() const
double getTolerance() const
virtual MVertex * getVertexINP(int num)
virtual int getTypeForMSH() const
virtual double getInnerRadius()
virtual int getNumEdgeVertices() const
std::vector< MVertex * > _vs
MLineN(const std::vector< MVertex * > &v, int num=0, int part=0)
virtual void getNode(int num, double &u, double &v, double &w) const
virtual void getVertexInfo(const MVertex *vertex, int &ithVertex) const
MLine(MVertex *v0, MVertex *v1, int num=0, int part=0)
virtual int getTypeForVTK() const
virtual int getNumEdgeVertices() const
virtual const char * getStringForBDF() const
virtual int getTypeForMSH() const
MLine(const std::vector< MVertex * > &v, int num=0, int part=0)
virtual int getTypeForMSH() const
virtual void getNode(int num, double &u, double &v, double &w) const
MLineN(MVertex *v0, MVertex *v1, const std::vector< MVertex * > &vs, int num=0, int part=0)
bool operator()(MLine *l1, MLine *l2) const
virtual const MVertex * getVertex(int num) const
virtual const MVertex * getVertex(int num) const
virtual const char * getStringForTOCHNOG() const
virtual const char * getStringForRAD() const
bool operator()(MLine *l1, MLine *l2) const
virtual int getNumEdgesRep(bool curved)
MLine3(const std::vector< MVertex * > &v, int num=0, int part=0)
virtual const char * getStringForPOS() const
virtual double getLength()
virtual int getTypeForVTK() const
virtual void getNode(int num, double &u, double &v, double &w) const