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
73 trial_vshape.
SetSize(trial_dof, dim);
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
124 trial_vshape.
SetSize(trial_dof, dim);
128 elmat.
SetSize(dim * test_dof, trial_dof);
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
177 trial_vshape.
SetSize(trial_dof, dim);
178 test_vshape.
SetSize(test_dof, dim);
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++)
int GetNPoints() const
Returns the number of the points in the integration rule.
Abstract class for all finite elements.
int GetDim() const
Returns the reference space dimension for the finite element.
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 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 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 GetDof() const
Returns the number of degrees of freedom in the finite element.
Class for integration point with weight.
virtual double Eval(ElementTransformation &T, const IntegrationPoint &ip)=0
Evaluate the coefficient in the element described by T at the point ip.
void SetSize(int s)
Change the size of the DenseMatrix to s x s.
int GetRangeType() const
Returns the FiniteElement::RangeType of the element, one of {SCALAR, VECTOR}.
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.