gmsh-TingyuanDoc
0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
6 #ifndef HELMHOLTZ_TERM_H
7 #define HELMHOLTZ_TERM_H
53 if(
_k)
_k->setElement(e);
54 if(
_a)
_a->setElement(e);
69 double Grads[100][3], grads[100][3];
74 for(
int i = 0; i < npts; i++) {
76 const double u = GP[i].
pt[0];
77 const double v = GP[i].
pt[1];
78 const double w = GP[i].
pt[2];
82 const scalar K =
_k ? (*_k)(p.
x(), p.
y(), p.
z()) : 0.0;
83 const scalar A =
_a ? (*_a)(p.
x(), p.
y(), p.
z()) : 0.0;
87 for(
int j = 0; j < nbSF; j++) {
88 Grads[j][0] = invjac[0][0] * grads[j][0] + invjac[0][1] * grads[j][1] +
89 invjac[0][2] * grads[j][2];
90 Grads[j][1] = invjac[1][0] * grads[j][0] + invjac[1][1] * grads[j][1] +
91 invjac[1][2] * grads[j][2];
92 Grads[j][2] = invjac[2][0] * grads[j][0] + invjac[2][1] * grads[j][1] +
93 invjac[2][2] * grads[j][2];
96 for(
int j = 0; j < nbSF; j++) {
97 for(
int k = 0; k <= j; k++) {
99 (K * (Grads[j][0] * Grads[k][0] + Grads[j][1] * Grads[k][1] +
100 Grads[j][2] * Grads[k][2]) +
106 for(
int j = 0; j < nbSF; j++)
107 for(
int k = 0; k < j; k++) m(k, j) = m(j, k);
double inv3x3(double mat[3][3], double inv[3][3])
Dof getLocalDofR(SElement *se, int iRow) const
const simpleFunction< scalar > * _a
virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
void setAll(const scalar &m)
std::size_t getNum() const
const simpleFunction< scalar > * _k
virtual const MVertex * getShapeFunctionNode(int i) const
Dof getLocalDofC(SElement *se, int iRow) const
virtual int sizeOfR(SElement *se) const
static int createTypeWithTwoInts(int i1, int i2)
virtual std::size_t getNumShapeFunctions() const
MElement * getMeshElement() const
virtual void pnt(double u, double v, double w, SPoint3 &p) const
helmholtzTerm(GModel *gm, int iFieldR, int iFieldC, simpleFunction< scalar > *k, simpleFunction< scalar > *a)
virtual int sizeOfC(SElement *se) const
virtual void getShapeFunctions(double u, double v, double w, double s[], int order=-1) const
virtual double getJacobian(const fullMatrix< double > &gsf, double jac[3][3]) const
virtual int getPolynomialOrder() const
virtual void elementMatrix(SElement *se, fullMatrix< scalar > &m) const
virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int order=-1) const