12 #ifndef MFEM_BILININTEG
13 #define MFEM_BILININTEG
15 #include "../config/config.hpp"
18 #include "libceed/ceed.hpp"
154 Vector &flux,
bool with_coef =
true) { }
193 { bfi = _bfi; own_bfi = _own_bfi; }
248 { bfi = _bfi; own_bfi = _own_bfi; }
266 { integrator = integ; own_integrator = own_integ; }
287 { integrators.Append(integ); }
332 return "MixedScalarIntegrator: "
333 "Trial and test spaces must both be scalar fields.";
356 #ifndef MFEM_THREAD_SAFE
406 return "MixedVectorIntegrator: "
407 "Trial and test spaces must both be vector fields";
433 #ifndef MFEM_THREAD_SAFE
459 bool _cross_2d =
false)
479 return "MixedScalarVectorIntegrator: "
480 "Trial space must be a vector field "
481 "and the test space must be a scalar field";
485 return "MixedScalarVectorIntegrator: "
486 "Trial space must be a scalar field "
487 "and the test space must be a vector field";
513 #ifndef MFEM_THREAD_SAFE
557 return (trial_fe.
GetDim() == 1 && test_fe.
GetDim() == 1 &&
564 return "MixedScalarDerivativeIntegrator: "
565 "Trial and test spaces must both be scalar fields in 1D "
566 "and the trial space must implement CaldDShape.";
592 return (trial_fe.
GetDim() == 1 && test_fe.
GetDim() == 1 &&
599 return "MixedScalarWeakDerivativeIntegrator: "
600 "Trial and test spaces must both be scalar fields in 1D "
601 "and the test space must implement CalcDShape with "
602 "map type \"VALUE\".";
636 return "MixedScalarDivergenceIntegrator: "
637 "Trial must be H(Div) and the test space must be a "
672 return "MixedVectorDivergenceIntegrator: "
673 "Trial must be H(Div) and the test space must be a "
709 return "MixedScalarWeakGradientIntegrator: "
710 "Trial space must be a scalar field "
711 "and the test space must be H(Div)";
738 return (trial_fe.
GetDim() == 2 && test_fe.
GetDim() == 2 &&
745 return "MixedScalarCurlIntegrator: "
746 "Trial must be H(Curl) and the test space must be a "
779 return (trial_fe.
GetDim() == 2 && test_fe.
GetDim() == 2 &&
786 return "MixedScalarWeakCurlIntegrator: "
787 "Trial space must be a scalar field "
788 "and the test space must be H(Curl)";
843 return "MixedDotProductIntegrator: "
844 "Trial space must be a vector field "
845 "and the test space must be a scalar field";
869 return "MixedWeakGradDotIntegrator: "
870 "Trial space must be a vector field "
871 "and the test space must be a vector field with a divergence";
892 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
900 return "MixedWeakDivCrossIntegrator: "
901 "Trial space must be a vector field in 3D "
902 "and the test space must be a scalar field with a gradient";
937 return "MixedGradGradIntegrator: "
938 "Trial and test spaces must both be scalar fields "
939 "with a gradient operator.";
983 return "MixedCrossGradGradIntegrator: "
984 "Trial and test spaces must both be scalar fields "
985 "with a gradient operator.";
1017 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1026 return "MixedCurlCurlIntegrator"
1027 "Trial and test spaces must both be vector fields in 3D "
1054 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1063 return "MixedCrossCurlCurlIntegrator: "
1064 "Trial and test spaces must both be vector fields in 3D "
1091 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1100 return "MixedCrossCurlGradIntegrator"
1101 "Trial space must be a vector field in 3D with a curl"
1102 "and the test space must be a scalar field with a gradient";
1128 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1137 return "MixedCrossGradCurlIntegrator"
1138 "Trial space must be a scalar field in 3D with a gradient"
1139 "and the test space must be a vector field with a curl";
1166 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1174 return "MixedWeakCurlCrossIntegrator: "
1175 "Trial space must be a vector field in 3D "
1176 "and the test space must be a vector field with a curl";
1198 return (trial_fe.
GetDim() == 2 && test_fe.
GetDim() == 2 &&
1206 return "MixedScalarWeakCurlCrossIntegrator: "
1207 "Trial space must be a vector field in 2D "
1208 "and the test space must be a vector field with a curl";
1233 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1241 return "MixedCrossGradIntegrator: "
1242 "Trial space must be a scalar field with a gradient operator"
1243 " and the test space must be a vector field both in 3D.";
1270 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1278 return "MixedCrossCurlIntegrator: "
1279 "Trial space must be a vector field in 3D with a curl "
1280 "and the test space must be a vector field";
1302 return (trial_fe.
GetDim() == 2 && test_fe.
GetDim() == 2 &&
1310 return "MixedCrossCurlIntegrator: "
1311 "Trial space must be a vector field in 2D with a curl "
1312 "and the test space must be a vector field";
1336 return (trial_fe.
GetDim() == 2 && test_fe.
GetDim() == 2 &&
1344 return "MixedScalarCrossGradIntegrator: "
1345 "Trial space must be a scalar field in 2D with a gradient "
1346 "and the test space must be a scalar field";
1367 return (trial_fe.
GetDim() == 2 && test_fe.
GetDim() == 2 &&
1374 return "MixedScalarCrossProductIntegrator: "
1375 "Trial space must be a vector field in 2D "
1376 "and the test space must be a scalar field";
1392 return (trial_fe.
GetDim() == 2 && test_fe.
GetDim() == 2 &&
1399 return "MixedScalarWeakCrossProductIntegrator: "
1400 "Trial space must be a scalar field in 2D "
1401 "and the test space must be a vector field";
1429 return "MixedDirectionalDerivativeIntegrator: "
1430 "Trial space must be a scalar field with a gradient "
1431 "and the test space must be a scalar field";
1460 return "MixedGradDivIntegrator: "
1461 "Trial space must be a scalar field with a gradient"
1462 "and the test space must be a vector field with a divergence";
1497 return "MixedDivGradIntegrator: "
1498 "Trial space must be a vector field with a divergence"
1499 "and the test space must be a scalar field with a gradient";
1532 return "MixedScalarWeakDivergenceIntegrator: "
1533 "Trial space must be a scalar field "
1534 "and the test space must be a scalar field with a gradient";
1568 return "MixedVectorGradientIntegrator: "
1569 "Trial spaces must be H1 and the test space must be a "
1570 "vector field in 2D or 3D";
1594 int dim, ne, dofs1D, quad1D;
1616 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1623 return "MixedVectorCurlIntegrator: "
1624 "Trial space must be H(Curl) and the test space must be a "
1625 "vector field in 3D";
1655 return (trial_fe.
GetDim() == 3 && test_fe.
GetDim() == 3 &&
1662 return "MixedVectorWeakCurlIntegrator: "
1663 "Trial space must be vector field in 3D and the "
1664 "test space must be H(Curl)";
1700 return "MixedVectorWeakDivergenceIntegrator: "
1701 "Trial space must be vector field and the "
1702 "test space must be H1";
1730 const DofToQuad *trial_maps, *test_maps;
1733 int trial_dofs1D, test_dofs1D, quad1D;
1737 Q{NULL}, trial_maps{NULL}, test_maps{NULL}, geom{NULL}
1740 Q{_q}, trial_maps{NULL}, test_maps{NULL}, geom{NULL}
1743 Q{&q}, trial_maps{NULL}, test_maps{NULL}, geom{NULL}
1747 const FiniteElement &test_fe,
1748 ElementTransformation &
Trans,
1749 DenseMatrix &elmat);
1752 virtual void AssemblePA(
const FiniteElementSpace &trial_fes,
1753 const FiniteElementSpace &test_fes);
1755 virtual void AddMultPA(
const Vector &x, Vector &y)
const;
1758 static const IntegrationRule &
GetRule(
const FiniteElement &trial_fe,
1759 const FiniteElement &test_fe,
1760 ElementTransformation &
Trans);
1772 Vector vec, pointflux, shape;
1773 #ifndef MFEM_THREAD_SAFE
1782 int dim, ne, dofs1D, quad1D;
1785 #ifdef MFEM_USE_CEED
1787 CeedData* ceedDataPtr;
1798 #ifdef MFEM_USE_CEED
1810 #ifdef MFEM_USE_CEED
1822 #ifdef MFEM_USE_CEED
1829 #ifdef MFEM_USE_CEED
1854 Vector &flux,
bool with_coef =
true);
1878 #ifndef MFEM_THREAD_SAFE
1889 #ifdef MFEM_USE_CEED
1901 #ifdef MFEM_USE_CEED
1912 #ifdef MFEM_USE_CEED
1919 #ifdef MFEM_USE_CEED
1974 #ifndef MFEM_THREAD_SAFE
1976 Vector shape, vec2, BdFidxT;
2026 Vector shape, te_shape, vec;
2044 : vdim(-1), Q_order(0),
Q(NULL),
VQ(NULL),
MQ(NULL) { }
2049 : vdim(-1),
Q(&q) {
VQ = NULL;
MQ = NULL; Q_order = qo; }
2052 {
VQ = NULL;
MQ = NULL; Q_order = 0; }
2055 : vdim(q.
GetVDim()),
VQ(&q) {
Q = NULL;
MQ = NULL; Q_order = qo; }
2058 : vdim(q.
GetVDim()),
MQ(&q) {
Q = NULL;
VQ = NULL; Q_order = qo; }
2090 #ifndef MFEM_THREAD_SAFE
2115 #ifndef MFEM_THREAD_SAFE
2142 #ifndef MFEM_THREAD_SAFE
2188 #ifndef MFEM_THREAD_SAFE
2219 Vector &flux,
bool with_coef);
2236 #ifndef MFEM_THREAD_SAFE
2237 DenseMatrix dshape_hat, dshape, curlshape, Jadj, grad_hat, grad;
2266 {
Q = q;
VQ = vq;
MQ = mq; }
2268 #ifndef MFEM_THREAD_SAFE
2327 const DofToQuad *trial_maps, *test_maps;
2330 int trial_dofs1D, test_dofs1D, quad1D;
2334 Q(NULL), trial_maps(NULL), test_maps(NULL), geom(NULL)
2337 Q(_q), trial_maps(NULL), test_maps(NULL), geom(NULL)
2340 Q(&q), trial_maps(NULL), test_maps(NULL), geom(NULL)
2367 #ifndef MFEM_THREAD_SAFE
2431 #ifndef MFEM_THREAD_SAFE
2461 Vector &flux,
bool with_coef =
true);
2636 double alpha_,
double kappa_)
2649 #ifndef MFEM_THREAD_SAFE
2671 const int dim,
const int row_ndofs,
const int col_ndofs,
2672 const int row_offset,
const int col_offset,
2673 const double jmatcoef,
const Vector &col_nL,
const Vector &col_nM,
2685 Vector face_shape, shape1, shape2;
2703 Vector face_shape, normal, shape1_n, shape2_n;
2745 { ran_fe.
Project(dom_fe, Trans, elmat); }
Abstract class for Finite Elements.
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual void CalcVShape(const FiniteElement &vector_fe, ElementTransformation &Trans, DenseMatrix &shape)
VectorCurlCurlIntegrator()
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssembleElementMatrix(const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &elmat)
Support for use in BilinearForm. Can be used only when appropriate.
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AssembleElementMatrix(const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &elmat)
Support for use in BilinearForm. Can be used only when appropriate.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
VectorFEMassIntegrator(Coefficient &q)
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssemblePA(const FiniteElementSpace &fes)
Method defining partial assembly.
int GetDim() const
Returns the reference space dimension for the finite element.
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual const char * FiniteElementTypeFailureMessage() const
Class for an integration rule - an Array of IntegrationPoint.
const DofToQuad * mapsO
Not owned. DOF-to-quad map, open.
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, Vector &shape)
MixedCrossCurlGradIntegrator(VectorCoefficient &vq)
DGTraceIntegrator(VectorCoefficient &_u, double a, double b)
Construct integrator with rho = 1.
virtual void AssemblePAInteriorFaces(const FiniteElementSpace &fes)
MixedGradDivIntegrator(VectorCoefficient &vq)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
DGDiffusionIntegrator(Coefficient &q, const double s, const double k)
Integrator defining a sum of multiple Integrators.
SumIntegrator(int own_integs=1)
static const IntegrationRule & GetRule(Geometry::Type geom, int order, FaceElementTransformations &T)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
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 const char * FiniteElementTypeFailureMessage() const
virtual const char * FiniteElementTypeFailureMessage() const
DiffusionIntegrator(Coefficient &q)
Construct a diffusion integrator with a scalar coefficient q.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
MixedScalarCrossProductIntegrator(VectorCoefficient &vq)
CurlCurlIntegrator(MatrixCoefficient &m)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void ProjectDiv(const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &div) const
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual int GetIntegrationOrder(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual void Project(Coefficient &coeff, ElementTransformation &Trans, Vector &dofs) const
MixedVectorWeakDivergenceIntegrator(VectorCoefficient &dq)
virtual double ComputeFluxEnergy(const FiniteElement &fluxelem, ElementTransformation &Trans, Vector &flux, Vector *d_energy=NULL)
Virtual method required for Zienkiewicz-Zhu type error estimators.
MixedVectorCurlIntegrator()
void CalcPhysDivShape(ElementTransformation &Trans, Vector &divshape) const
Evaluate the divergence of all shape functions of a vector finite element in physical space at the po...
virtual void AssemblePAInteriorFaces(const FiniteElementSpace &fes)
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
ElasticityIntegrator(Coefficient &l, Coefficient &m)
VectorFEMassIntegrator(VectorCoefficient *_vq)
NormalTraceJumpIntegrator()
VectorDiffusionIntegrator(Coefficient &q)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, Vector &shape)
const GeometricFactors * geom
Not owned.
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, Vector &shape)
Integrator for (curl u, curl v) for Nedelec elements.
MixedVectorMassIntegrator()
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
VectorCurlCurlIntegrator(Coefficient &q)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, Vector &shape)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Trans, DenseMatrix &elmat)
virtual void AddMultTransposePA(const Vector &x, Vector &y) const
Method for partially assembled transposed action.
virtual void AssemblePA(const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes)
MixedScalarMassIntegrator(Coefficient &q)
VectorMassIntegrator(Coefficient &q, const IntegrationRule *ir)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
alpha (q . grad u, v) using the "group" FE discretization
const GeometricFactors * geom
Not owned.
virtual void AddMultPA(const Vector &x, Vector &y) const
Method for partially assembled action.
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
VectorDiffusionIntegrator()
void SetupPA(const FiniteElementSpace &fes, const bool force=false)
int GetOrder() const
Returns the order of the finite element. In the case of anisotropic orders, returns the maximum order...
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AddMultPA(const Vector &x, Vector &y) const
Method for partially assembled action.
Data type dense matrix using column-major storage.
DivDivIntegrator(Coefficient &q)
int Size() const
Returns the size of the vector.
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
MixedVectorWeakCurlIntegrator(MatrixCoefficient &mq)
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Trans, DenseMatrix &elmat)
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
const DofToQuad * maps
Not owned.
virtual ~TransposeIntegrator()
virtual void AssemblePA(const FiniteElementSpace &fes)
Method defining partial assembly.
VectorFEDivergenceIntegrator()
int Space() const
Returns the type of space on each element.
static const IntegrationRule & GetRule(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
void AddIntegrator(BilinearFormIntegrator *integ)
const DofToQuad * mapsC
Not owned. DOF-to-quad map, closed.
virtual const char * FiniteElementTypeFailureMessage() const
Structure for storing mesh geometric factors: coordinates, Jacobians, and determinants of the Jacobia...
MixedVectorCurlIntegrator(VectorCoefficient &dq)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, Vector &shape)
virtual void ComputeElementFlux(const FiniteElement &el, ElementTransformation &Trans, Vector &u, const FiniteElement &fluxelem, Vector &flux, bool with_coef)
Virtual method required for Zienkiewicz-Zhu type error estimators.
virtual void AddMultPA(const Vector &x, Vector &y) const
Method for partially assembled action.
MixedCrossProductIntegrator(VectorCoefficient &vq)
MixedScalarVectorIntegrator(VectorCoefficient &vq, bool _transpose=false, bool _cross_2d=false)
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual void ProjectGrad(const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &grad) const
double * GetData() const
Return a pointer to the beginning of the Vector data.
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
Implements CalcDivShape methods.
MixedVectorGradientIntegrator(Coefficient &q)
(Q div u, div v) for RT elements
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
void SetupPA(const FiniteElementSpace &fes, const bool force=false)
virtual void ComputeElementFlux(const FiniteElement &el, ElementTransformation &Trans, Vector &u, const FiniteElement &fluxelem, Vector &flux, bool with_coef=true)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AddMultPA(const Vector &, Vector &) const
Method for partially assembled action.
MixedScalarCrossGradIntegrator(VectorCoefficient &vq)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
const DofToQuad * maps
Not owned.
virtual void AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Trans, DenseMatrix &elmat)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
void CalcPhysCurlShape(ElementTransformation &Trans, DenseMatrix &curl_shape) const
Evaluate the curl of all shape functions of a vector finite element in physical space at the point de...
virtual ~LumpedIntegrator()
virtual void CalcVShape(const FiniteElement &vector_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
const GeometricFactors * geom
Not owned.
MixedCurlCurlIntegrator(MatrixCoefficient &mq)
virtual void AssemblePA(const FiniteElementSpace &fes)
Method defining partial assembly.
VectorFEMassIntegrator(VectorCoefficient &vq)
VectorMassIntegrator()
Construct an integrator with coefficient 1.0.
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
VectorMassIntegrator(VectorCoefficient &q, int qo=0)
Construct an integrator with diagonal coefficient q.
Structure for storing face geometric factors: coordinates, Jacobians, determinants of the Jacobians...
virtual ~MassIntegrator()
VectorCrossProductInterpolator(VectorCoefficient &vc)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void AssembleElementMatrix2(const FiniteElement &dom_fe, const FiniteElement &ran_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void AssemblePA(const FiniteElementSpace &fes)
Method defining partial assembly.
virtual void AssembleElementMatrix2(const FiniteElement &dom_fe, const FiniteElement &ran_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
MixedGradGradIntegrator(VectorCoefficient &dq)
Integrator that inverts the matrix assembled by another integrator.
virtual void ProjectCurl(const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
ElasticityIntegrator(Coefficient &m, double q_l, double q_m)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AssembleFaceMatrix(const FiniteElement &trial_face_fe, const FiniteElement &test_fe1, const FiniteElement &test_fe2, FaceElementTransformations &Trans, DenseMatrix &elmat)
virtual const char * FiniteElementTypeFailureMessage() const
Implements CalcCurlShape methods.
virtual void CalcVShape(const FiniteElement &vector_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void AddMultPA(const Vector &x, Vector &y) const
Method for partially assembled action.
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
VectorInnerProductInterpolator(VectorCoefficient &vc)
MixedWeakDivCrossIntegrator(VectorCoefficient &vq)
virtual const char * FiniteElementTypeFailureMessage() const
virtual const char * FiniteElementTypeFailureMessage() const
MixedScalarWeakGradientIntegrator()
MixedVectorGradientIntegrator()
VectorDivergenceIntegrator(Coefficient &q)
MixedCrossCurlCurlIntegrator(VectorCoefficient &vq)
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void AddMultTransposePA(const Vector &x, Vector &y) const
Method for partially assembled transposed action.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
MixedVectorWeakCurlIntegrator(VectorCoefficient &dq)
MixedScalarWeakCurlIntegrator(Coefficient &q)
MixedCurlCurlIntegrator(Coefficient &q)
GradientIntegrator(Coefficient &q)
virtual double ComputeFluxEnergy(const FiniteElement &fluxelem, ElementTransformation &Trans, Vector &flux, Vector *d_energy=NULL)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
virtual void AssemblePA(const FiniteElementSpace &fes)
Method defining partial assembly.
virtual const char * FiniteElementTypeFailureMessage() const
const DofToQuad * mapsC
Not owned. DOF-to-quad map, closed.
virtual void AddMultPA(const Vector &x, Vector &y) const
Method for partially assembled action.
static const IntegrationRule & GetRule(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
VectorFEDivergenceIntegrator(Coefficient &q)
virtual void AssemblePA(const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
VectorFECurlIntegrator(Coefficient &q)
Implements CalcDShape methods.
virtual void AssembleElementMatrix2(const FiniteElement &h1_fe, const FiniteElement &nd_fe, ElementTransformation &Trans, DenseMatrix &elmat)
MixedVectorWeakCurlIntegrator()
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual const char * FiniteElementTypeFailureMessage() const
DiffusionIntegrator()
Construct a diffusion integrator with coefficient Q = 1.
MixedVectorMassIntegrator(MatrixCoefficient &mq)
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
MixedScalarDivergenceIntegrator(Coefficient &q)
MixedVectorIntegrator(MatrixCoefficient &mq)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
MixedVectorMassIntegrator(Coefficient &q)
virtual void AssemblePABoundaryFaces(const FiniteElementSpace &fes)
void CalcPhysDShape(ElementTransformation &Trans, DenseMatrix &dshape) const
Evaluate the gradients of all shape functions of a scalar finite element in physical space at the poi...
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
MixedDirectionalDerivativeIntegrator(VectorCoefficient &vq)
MixedScalarMassIntegrator()
MixedScalarDerivativeIntegrator()
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Given a particular Finite Element computes the element matrix elmat.
MixedCrossGradIntegrator(VectorCoefficient &vq)
virtual int GetIntegrationOrder(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
virtual void AddMultPA(const Vector &, Vector &) const
Method for partially assembled action.
ScalarProductInterpolator(Coefficient &sc)
MixedGradGradIntegrator()
virtual const char * FiniteElementTypeFailureMessage() const
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
MixedVectorCurlIntegrator(MatrixCoefficient &mq)
MixedCurlCurlIntegrator(VectorCoefficient &dq)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, Vector &shape)
virtual const char * FiniteElementTypeFailureMessage() const
BoundaryMassIntegrator(Coefficient &q)
virtual void AddMultPA(const Vector &x, Vector &y) const
Method for partially assembled action.
virtual void AssembleElementMatrix(const FiniteElement &, ElementTransformation &, DenseMatrix &)
Given a particular Finite Element computes the element matrix elmat.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AddMultTransposePA(const Vector &x, Vector &y) const
Method for partially assembled transposed action.
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
MixedScalarWeakDerivativeIntegrator()
virtual void AssemblePA(const FiniteElementSpace &)
Method defining partial assembly.
virtual void AssembleElementVector(const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, Vector &elvect)
Perform the local action of the BilinearFormIntegrator.
MixedWeakGradDotIntegrator(VectorCoefficient &vq)
ScalarVectorProductInterpolator(Coefficient &sc)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
virtual void AddMultPA(const Vector &x, Vector &y) const
Method for partially assembled action.
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
const GeometricFactors * geom
Not owned.
virtual void AssembleElementMatrix2(const FiniteElement &dom_fe, const FiniteElement &ran_fe, ElementTransformation &Trans, DenseMatrix &elmat)
MixedScalarWeakGradientIntegrator(Coefficient &q)
VectorDivergenceIntegrator(Coefficient *_q)
MixedVectorIntegrator(Coefficient &q)
DiffusionIntegrator(MatrixCoefficient &q)
Construct a diffusion integrator with a matrix coefficient q.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual const char * FiniteElementTypeFailureMessage() const
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
MixedGradGradIntegrator(MatrixCoefficient &mq)
virtual void AssembleElementMatrix(const FiniteElement &, ElementTransformation &, DenseMatrix &)
Given a particular Finite Element computes the element matrix elmat.
VectorFEMassIntegrator(MatrixCoefficient &mq)
MixedVectorMassIntegrator(VectorCoefficient &dq)
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
MixedScalarWeakCurlCrossIntegrator(VectorCoefficient &vq)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
Base class Coefficient that may optionally depend on time.
MixedScalarWeakCurlIntegrator()
virtual void AssembleDiagonalPA(Vector &diag)
Assemble diagonal and add it to Vector diag.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
MixedScalarCurlIntegrator()
static const IntegrationRule & GetRule(const FiniteElement &el, ElementTransformation &Trans)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AssemblePABoundaryFaces(const FiniteElementSpace &fes)
void CalcPhysShape(ElementTransformation &Trans, Vector &shape) const
Evaluate the values of all shape functions of a scalar finite element in physical space at the point ...
virtual const char * FiniteElementTypeFailureMessage() const
MixedCurlCurlIntegrator()
virtual void AddMultPA(const Vector &, Vector &) const
Method for partially assembled action.
MixedVectorWeakDivergenceIntegrator(Coefficient &q)
virtual void AssembleElementMatrix2(const FiniteElement &dom_fe, const FiniteElement &ran_fe, ElementTransformation &Trans, DenseMatrix &elmat)
MixedScalarWeakDivergenceIntegrator(VectorCoefficient &vq)
const FaceGeometricFactors * geom
Not owned.
virtual void AddMultPA(const Vector &, Vector &) const
Method for partially assembled action.
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
DGDiffusionIntegrator(const double s, const double k)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
LumpedIntegrator(BilinearFormIntegrator *_bfi, int _own_bfi=1)
static const IntegrationRule & GetRule(const FiniteElement &trial_fe, const FiniteElement &test_fe)
MixedCrossGradCurlIntegrator(VectorCoefficient &vq)
MixedVectorDivergenceIntegrator(VectorCoefficient &vq)
Structure representing the matrices/tensors needed to evaluate (in reference space) the values...
A class to initialize the size of a Tensor.
MassIntegrator(Coefficient &q, const IntegrationRule *ir=NULL)
Construct a mass integrator with coefficient q.
const FiniteElementSpace * fespace
virtual void AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Trans, DenseMatrix &elmat)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AddMultPA(const Vector &, Vector &) const
Method for partially assembled action.
virtual void AssembleDiagonalPA(Vector &diag)
Assemble diagonal and add it to Vector diag.
MixedCrossGradGradIntegrator(VectorCoefficient &vq)
virtual int GetIntegrationOrder(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
MixedVectorIntegrator(VectorCoefficient &dq, bool diag=true)
MixedScalarCrossCurlIntegrator(VectorCoefficient &vq)
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
Assemble an element matrix.
virtual const char * FiniteElementTypeFailureMessage() const
virtual const char * FiniteElementTypeFailureMessage() const
virtual const char * FiniteElementTypeFailureMessage() const
VectorFEWeakDivergenceIntegrator(Coefficient &q)
VectorMassIntegrator(Coefficient &q, int qo=0)
VectorFEMassIntegrator(Coefficient *_q)
DGElasticityIntegrator(double alpha_, double kappa_)
MixedScalarDerivativeIntegrator(Coefficient &q)
virtual void AssembleElementMatrix2(const FiniteElement &dom_fe, const FiniteElement &ran_fe, ElementTransformation &Trans, DenseMatrix &elmat)
VectorFEMassIntegrator(MatrixCoefficient *_mq)
virtual void ComputeElementFlux(const FiniteElement &el, ElementTransformation &Trans, Vector &u, const FiniteElement &fluxelem, Vector &flux, bool with_coef=true)
Virtual method required for Zienkiewicz-Zhu type error estimators.
MixedDotProductIntegrator(VectorCoefficient &vq)
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, DenseMatrix &shape)
MixedVectorCurlIntegrator(Coefficient &q)
const GeometricFactors * geom
Not owned.
virtual void AssemblePA(const FiniteElementSpace &fes)
Method defining partial assembly.
MixedWeakCurlCrossIntegrator(VectorCoefficient &vq)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void CalcVShape(const FiniteElement &vector_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AssembleDiagonalPA(Vector &diag)
Assemble diagonal and add it to Vector diag.
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual ~DiffusionIntegrator()
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssembleDiagonalPA(Vector &diag)
Assemble diagonal and add it to Vector diag.
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
const DofToQuad * maps
Not owned.
virtual void AssembleElementMatrix2(const FiniteElement &nd_fe, const FiniteElement &rt_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void AssembleElementMatrix2(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
VectorMassIntegrator(MatrixCoefficient &q, int qo=0)
Construct an integrator with matrix coefficient q.
GradientIntegrator(Coefficient *_q)
MixedScalarWeakCrossProductIntegrator(VectorCoefficient &vq)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssembleElementMatrix(const FiniteElement &, ElementTransformation &, DenseMatrix &)
Given a particular Finite Element computes the element matrix elmat.
virtual int GetIntegrationOrder(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
GroupConvectionIntegrator(VectorCoefficient &q, double a=1.0)
virtual void CalcVShape(const FiniteElement &vector_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void CalcVShape(const FiniteElement &vector_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
MixedVectorGradientIntegrator(VectorCoefficient &dq)
static void AssembleBlock(const int dim, const int row_ndofs, const int col_ndofs, const int row_offset, const int col_offset, const double jmatcoef, const Vector &col_nL, const Vector &col_nM, const Vector &row_shape, const Vector &col_shape, const Vector &col_dshape_dnM, const DenseMatrix &col_dshape, DenseMatrix &elmat, DenseMatrix &jmat)
virtual void CalcShape(const FiniteElement &scalar_fe, ElementTransformation &Trans, Vector &shape)
virtual ~InverseIntegrator()
virtual const char * FiniteElementTypeFailureMessage() const
virtual void AssembleElementVector(const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, Vector &elvect)
Perform the local action of the BilinearFormIntegrator.
MixedVectorWeakDivergenceIntegrator(MatrixCoefficient &mq)
MixedScalarDivergenceIntegrator()
MixedVectorWeakDivergenceIntegrator()
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssembleElementMatrix2(const FiniteElement &rt_fe, const FiniteElement &l2_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual const char * FiniteElementTypeFailureMessage() const
virtual const char * FiniteElementTypeFailureMessage() const
virtual const char * FiniteElementTypeFailureMessage() const
DGDiffusionIntegrator(MatrixCoefficient &q, const double s, const double k)
virtual void AssembleDiagonalPA(Vector &diag)
Assemble diagonal and add it to Vector diag.
const DofToQuad * maps
Not owned.
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, Vector &shape)
virtual double GetElementEnergy(const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun)
Compute element energy: (1/2) (curl u, curl u)_E.
MixedCrossCurlIntegrator(VectorCoefficient &vq)
virtual void AssembleElementMatrix2(const FiniteElement &dom_fe, const FiniteElement &ran_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual const char * FiniteElementTypeFailureMessage() const
MixedVectorProductIntegrator(VectorCoefficient &vq)
VectorScalarProductInterpolator(VectorCoefficient &vc)
virtual const char * FiniteElementTypeFailureMessage() const
ConvectionIntegrator(VectorCoefficient &q, double a=1.0)
virtual void AssembleFaceMatrix(const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Trans, DenseMatrix &elmat)
MixedScalarCurlIntegrator(Coefficient &q)
virtual void CalcTestShape(const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &shape)
virtual void AssembleDiagonalPA(Vector &diag)
Assemble diagonal and add it to Vector diag.
DerivativeIntegrator(Coefficient &q, int i)
static const IntegrationRule & GetRule(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
DGTraceIntegrator(Coefficient &_rho, VectorCoefficient &_u, double a, double b)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
CurlCurlIntegrator(Coefficient &q)
Construct a bilinear form integrator for Nedelec elements.
virtual const char * FiniteElementTypeFailureMessage() const
MixedGradGradIntegrator(Coefficient &q)
MixedVectorGradientIntegrator(MatrixCoefficient &mq)
virtual int GetIntegrationOrder(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
virtual void AssembleFaceMatrix(const FiniteElement &trial_face_fe, const FiniteElement &test_fe1, const FiniteElement &test_fe2, FaceElementTransformations &Trans, DenseMatrix &elmat)
const DofToQuad * mapsO
Not owned. DOF-to-quad map, open.
virtual void CalcTrialShape(const FiniteElement &trial_fe, ElementTransformation &Trans, Vector &shape)
virtual void AssembleElementMatrix2(const FiniteElement &dom_fe, const FiniteElement &ran_fe, ElementTransformation &Trans, DenseMatrix &elmat)
virtual void AddMultTransposePA(const Vector &x, Vector &y) const
Method for partially assembled transposed action.
virtual void AssembleElementMatrix(const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
virtual const char * FiniteElementTypeFailureMessage() const
virtual const char * FiniteElementTypeFailureMessage() const
MassIntegrator(const IntegrationRule *ir=NULL)
const GeometricFactors * geom
Not owned.
virtual int GetIntegrationOrder(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
VectorFEWeakDivergenceIntegrator()
virtual double ComputeFluxEnergy(const FiniteElement &fluxelem, ElementTransformation &Trans, Vector &flux, Vector *d_energy=NULL)
Virtual method required for Zienkiewicz-Zhu type error estimators.
MixedVectorWeakCurlIntegrator(Coefficient &q)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
VectorDivergenceIntegrator()
TransposeIntegrator(BilinearFormIntegrator *_bfi, int _own_bfi=1)
MixedDivGradIntegrator(VectorCoefficient &vq)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
virtual void AssemblePA(const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes)
virtual int GetIntegrationOrder(const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans)
MixedScalarIntegrator(Coefficient &q)
DGElasticityIntegrator(Coefficient &lambda_, Coefficient &mu_, double alpha_, double kappa_)
Class for integrating (Q D_i(u), v); u and v are scalars.
InverseIntegrator(BilinearFormIntegrator *integ, int own_integ=1)
virtual bool VerifyFiniteElementTypes(const FiniteElement &trial_fe, const FiniteElement &test_fe) const
const DofToQuad * maps
Not owned.
virtual void AssemblePA(const FiniteElementSpace &fes)
Method defining partial assembly.
MixedScalarWeakDerivativeIntegrator(Coefficient &q)