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++)
virtual real_t Eval(ElementTransformation &T, const IntegrationPoint &ip)=0
Evaluate the coefficient in the element described by T at the point ip.
Data type dense matrix using column-major storage.
void SetSize(int s)
Change the size of the DenseMatrix to s x s.
Abstract class for all finite elements.
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...
int GetDim() const
Returns the reference space dimension for the finite element.
int GetRangeType() const
Returns the FiniteElement::RangeType of the element, one of {SCALAR, VECTOR}.
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.
Class for an integration rule - an Array of IntegrationPoint.
int GetNPoints() const
Returns the number of the points in the integration rule.
IntegrationPoint & IntPoint(int i)
Returns a reference to the i-th integration point.
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.
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 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.
void SetSize(int s)
Resize the vector to size s.
void mfem_error(const char *msg)
void AddMultVWt(const Vector &v, const Vector &w, DenseMatrix &VWt)
VWt += v w^t.