gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
57 for(; it != L.
end(); ++it) {
59 if(&C == &L || C.
find(eL)) {
78 const int nbR = localMatrix.
size1();
79 const int nbC = localMatrix.
size2();
80 std::vector<Dof> R, C;
86 for(
int j = 0; j < nbR; j++) {
91 if(!(r ==
c)) sym =
false;
96 for(
int j = 0; j < nbR; j++) R.push_back(
getLocalDofR(se, j));
97 for(
int k = 0; k < nbC; k++) C.push_back(
getLocalDofC(se, k));
109 std::vector<MVertex *> v;
112 for(std::size_t i = 0; i < v.size(); i++)
113 dm.
fixVertex(v[i], comp, field, e(v[i]->x(), v[i]->y(), v[i]->
z()));
126 for(
int ip = 0; ip < npts; ip++) {
127 const double u = GP[ip].
pt[0];
128 const double v = GP[ip].
pt[1];
129 const double w = GP[ip].
pt[2];
130 const double weight = GP[ip].
weight;
138 detJ * weight * sf[k] * FCT);
147 std::map<int, std::vector<GEntity *> > groups[4];
151 groups[dim].find(physical);
152 if(it == groups[dim].end())
return;
153 for(std::size_t i = 0; i < it->second.size(); ++i) {
165 std::map<int, std::vector<GEntity *> > groups[4];
169 groups[dim].find(physical);
170 if(it == groups[dim].end())
return;
171 for(std::size_t i = 0; i < it->second.size(); ++i) {
186 for(; it != C.
end(); ++it) {
virtual Dof getLocalDofC(SElement *se, int iCol) const
elementContainer::const_iterator end() const
virtual int sizeOfR(SElement *se) const =0
virtual int sizeOfC(SElement *se) const
void neumannNodalBC(MElement *e, int comp, int field, const simpleFunction< dataVec > &fct, dofManager< dataVec > &dm)
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
void addToRightHandSide(dofManager< dataVec > &dm, groupOfElements &C) const
static double c(int i, int j, fullMatrix< double > &CA, const std::vector< SPoint3 > &P, const std::vector< SPoint3 > &Q)
virtual void elementVector(SElement *se, fullVector< dataVec > &m) const
void scale(const scalar s)
virtual const MVertex * getShapeFunctionNode(int i) const
void scale(const scalar s)
dofTraits< double >::VecType dataVec
void addToMatrix(dofManager< dataVec > &dm, groupOfElements &L, groupOfElements &C) const
virtual void elementMatrix(SElement *se, fullMatrix< dataMat > &m) const
virtual Dof getLocalDofR(SElement *se, int iRow) const
void addToMatrix(dofManager< dataVec > &dm, SElement *se) const
void getPhysicalGroups(std::map< int, std::vector< GEntity * > > groups[4]) const
virtual std::size_t getNumMeshElements() const
virtual std::size_t getNumShapeFunctions() const
void getMeshVerticesForPhysicalGroup(int dim, int num, std::vector< MVertex * > &)
dofTraits< double >::MatType dataMat
virtual Dof getLocalDofR(SElement *se, int iRow) const =0
void addToMatrix(dofManager< dataVec > &dm, fullMatrix< dataMat > &localMatrix, SElement *se) const
dofTraits< T >::MatType dataMat
virtual void assemble(const Dof &R, const Dof &C, const dataMat &value)
virtual int sizeOfR(SElement *se) const
elementContainer::const_iterator begin() const
virtual void pnt(double u, double v, double w, SPoint3 &p) const
void neumannNodalBC(int physical, int dim, int comp, int field, const simpleFunction< dataVec > &fct, dofManager< dataVec > &dm)
void dirichletNodalBC(int physical, int dim, int comp, int field, const simpleFunction< dataVec > &e, dofManager< dataVec > &dm)
virtual MElement * getMeshElement(std::size_t index) const
virtual void getShapeFunctions(double u, double v, double w, double s[], int order=-1) const
virtual void elementVector(SElement *se, fullVector< dataVec > &m) const
virtual double getJacobian(const fullMatrix< double > &gsf, double jac[3][3]) const
virtual int getPolynomialOrder() const
dofTraits< T >::VecType dataVec
void fixVertex(MVertex const *v, int iComp, int iField, const dataVec &value)
virtual Dof getLocalDofC(SElement *se, int iCol) const
virtual int sizeOfC(SElement *se) const =0
void neumannNormalNodalBC(int physical, int dim, int field, const simpleFunction< dataVec > &fct, dofManager< dataVec > &dm)
bool find(MElement *e) const
virtual void elementMatrix(SElement *se, fullMatrix< dataMat > &m) const =0