23 int tr_nd = trial.
GetDof();
60 int trial_dof = trial.
GetDof();
61 int test_dof = test.
GetDof();
65 mfem_error(
"VectorFEMassIntegrator::AssembleElementMatrix2(...)\n" 66 " is not implemented for tensor materials");
68 #ifdef MFEM_THREAD_SAFE 78 elmat.
SetSize(test_dof, trial_dof);
93 VQ->
Eval(
D, test_Trans, test_ip);
96 for (
int d = 0; d <
dim; d++)
98 for (
int j = 0; j < test_dof; j++)
100 for (
int k = 0; k < trial_dof; k++)
112 int trial_dof = trial.
GetDof();
113 int test_dof = test.
GetDof();
117 mfem_error(
"VectorFEMassIntegrator::AssembleElementMatrix2(...)\n" 118 " is not implemented for vector/tensor permeability");
120 #ifdef MFEM_THREAD_SAFE 131 for (
int i = 0; i < test_ir.
GetNPoints(); i++)
146 w *= Q->
Eval(test_Trans, test_ip);
149 for (
int d = 0; d <
dim; d++)
151 for (
int j = 0; j < test_dof; j++)
153 for (
int k = 0; k < trial_dof; k++)
165 int trial_dof = trial.
GetDof();
166 int test_dof = test.
GetDof();
170 mfem_error(
"VectorFEMassIntegrator::AssembleElementMatrix2(...)\n" 171 " is not implemented for vector/tensor permeability");
173 #ifdef MFEM_THREAD_SAFE 181 elmat.
SetSize(test_dof, trial_dof);
184 for (
int i = 0; i < test_ir.
GetNPoints(); i++)
198 w *= Q->
Eval(test_Trans, test_ip);
201 for (
int d = 0; d <
dim; d++)
203 for (
int j = 0; j < test_dof; j++)
205 for (
int k = 0; k < trial_dof; k++)
Abstract class for all finite elements.
int GetNPoints() const
Returns the number of the points in the integration rule.
void AddMultVWt(const Vector &v, const Vector &w, DenseMatrix &VWt)
VWt += v w^t.
Class for an integration rule - an Array of IntegrationPoint.
virtual void Eval(Vector &V, ElementTransformation &T, const IntegrationPoint &ip)=0
Evaluate the vector coefficient in the element described by T at the point ip, storing the result in ...
void SetSize(int s)
Resize the vector to size s.
Data type dense matrix using column-major storage.
void AssembleElementMatrix(const FiniteElement &trial, const IntegrationRule &trial_ir, ElementTransformation &trial_Trans, const FiniteElement &test, const IntegrationRule &test_ir, ElementTransformation &test_Trans, DenseMatrix &elemmat) override
Implements the assembly routine.
IntegrationPoint & IntPoint(int i)
Returns a reference to the i-th integration point.
void mfem_error(const char *msg)
Function called when an error is encountered. Used by the macros MFEM_ABORT, MFEM_ASSERT, MFEM_VERIFY.
virtual void CalcShape(const IntegrationPoint &ip, Vector &shape) const =0
Evaluate the values of all shape functions of a scalar finite element in reference space at the given...
int GetDim() const
Returns the reference space dimension for the finite element.
int GetDof() const
Returns the number of degrees of freedom in the finite element.
Class for integration point with weight.
virtual void CalcVShape(const IntegrationPoint &ip, DenseMatrix &shape) const
Evaluate the values of all shape functions of a vector finite element in reference space at the given...
virtual double Eval(ElementTransformation &T, const IntegrationPoint &ip)=0
Evaluate the coefficient in the element described by T at the point ip.
int GetRangeType() const
Returns the FiniteElement::RangeType of the element, one of {SCALAR, VECTOR}.
void SetSize(int s)
Change the size of the DenseMatrix to s x s.
void AssembleElementMatrix(const FiniteElement &trial, const IntegrationRule &trial_ir, ElementTransformation &trial_Trans, const FiniteElement &test, const IntegrationRule &test_ir, ElementTransformation &test_Trans, DenseMatrix &elemmat) override
Implements the assembly routine.