MFEM  v4.5.1
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Attributes | List of all members
mfem::VectorFEMassIntegrator Class Reference

#include <bilininteg.hpp>

Inheritance diagram for mfem::VectorFEMassIntegrator:
[legend]
Collaboration diagram for mfem::VectorFEMassIntegrator:
[legend]

Public Member Functions

 VectorFEMassIntegrator ()
 
 VectorFEMassIntegrator (Coefficient *q_)
 
 VectorFEMassIntegrator (Coefficient &q)
 
 VectorFEMassIntegrator (DiagonalMatrixCoefficient *dq_)
 
 VectorFEMassIntegrator (DiagonalMatrixCoefficient &dq)
 
 VectorFEMassIntegrator (MatrixCoefficient *mq_)
 
 VectorFEMassIntegrator (MatrixCoefficient &mq)
 
virtual void AssembleElementMatrix (const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
 Given a particular Finite Element computes the element matrix elmat. More...
 
virtual void AssembleElementMatrix2 (const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
 
virtual void AssemblePA (const FiniteElementSpace &fes)
 Method defining partial assembly. More...
 
virtual void AssemblePA (const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes)
 
virtual void AddMultPA (const Vector &x, Vector &y) const
 Method for partially assembled action. More...
 
virtual void AddMultTransposePA (const Vector &x, Vector &y) const
 Method for partially assembled transposed action. More...
 
virtual void AssembleDiagonalPA (Vector &diag)
 Assemble diagonal and add it to Vector diag. More...
 
const Coefficient * GetCoefficient () const
 
- Public Member Functions inherited from mfem::BilinearFormIntegrator
virtual void AssemblePAInteriorFaces (const FiniteElementSpace &fes)
 
virtual void AssemblePABoundaryFaces (const FiniteElementSpace &fes)
 
virtual void AssembleDiagonalPA_ADAt (const Vector &D, Vector &diag)
 Assemble diagonal of ADA^T (A is this integrator) and add it to diag. More...
 
virtual void AssembleEA (const FiniteElementSpace &fes, Vector &emat, const bool add=true)
 Method defining element assembly. More...
 
virtual void AssembleMF (const FiniteElementSpace &fes)
 Method defining matrix-free assembly. More...
 
virtual void AddMultMF (const Vector &x, Vector &y) const
 
virtual void AddMultTransposeMF (const Vector &x, Vector &y) const
 
virtual void AssembleDiagonalMF (Vector &diag)
 Assemble diagonal and add it to Vector diag. More...
 
virtual void AssembleEAInteriorFaces (const FiniteElementSpace &fes, Vector &ea_data_int, Vector &ea_data_ext, const bool add=true)
 
virtual void AssembleEABoundaryFaces (const FiniteElementSpace &fes, Vector &ea_data_bdr, const bool add=true)
 
virtual void AssembleFaceMatrix (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Trans, DenseMatrix &elmat)
 
virtual void AssembleFaceMatrix (const FiniteElement &trial_face_fe, const FiniteElement &test_fe1, const FiniteElement &test_fe2, FaceElementTransformations &Trans, DenseMatrix &elmat)
 
virtual void AssembleElementVector (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, Vector &elvect)
 Perform the local action of the BilinearFormIntegrator. Note that the default implementation in the base class is general but not efficient. More...
 
virtual void AssembleFaceVector (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, Vector &elvect)
 Perform the local action of the BilinearFormIntegrator resulting from a face integral term. Note that the default implementation in the base class is general but not efficient. More...
 
virtual void AssembleElementGrad (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, DenseMatrix &elmat)
 Assemble the local gradient matrix. More...
 
virtual void AssembleFaceGrad (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, DenseMatrix &elmat)
 Assemble the local action of the gradient of the NonlinearFormIntegrator resulting from a face integral term. More...
 
virtual void ComputeElementFlux (const FiniteElement &el, ElementTransformation &Trans, Vector &u, const FiniteElement &fluxelem, Vector &flux, bool with_coef=true, const IntegrationRule *ir=NULL)
 Virtual method required for Zienkiewicz-Zhu type error estimators. More...
 
virtual double ComputeFluxEnergy (const FiniteElement &fluxelem, ElementTransformation &Trans, Vector &flux, Vector *d_energy=NULL)
 Virtual method required for Zienkiewicz-Zhu type error estimators. More...
 
virtual ~BilinearFormIntegrator ()
 
- Public Member Functions inherited from mfem::NonlinearFormIntegrator
virtual void SetIntRule (const IntegrationRule *ir)
 Prescribe a fixed IntegrationRule to use (when ir != NULL) or let the integrator choose (when ir == NULL). More...
 
void SetIntegrationRule (const IntegrationRule &ir)
 Prescribe a fixed IntegrationRule to use. More...
 
void SetPAMemoryType (MemoryType mt)
 
const IntegrationRule * GetIntegrationRule () const
 Get the integration rule of the integrator (possibly NULL). More...
 
virtual double GetElementEnergy (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun)
 Compute the local energy. More...
 
virtual void AssembleGradPA (const Vector &x, const FiniteElementSpace &fes)
 Prepare the integrator for partial assembly (PA) gradient evaluations on the given FE space fes at the state x. More...
 
virtual double GetLocalStateEnergyPA (const Vector &x) const
 Compute the local (to the MPI rank) energy with partial assembly. More...
 
virtual void AddMultGradPA (const Vector &x, Vector &y) const
 Method for partially assembled gradient action. More...
 
virtual void AssembleGradDiagonalPA (Vector &diag) const
 Method for computing the diagonal of the gradient with partial assembly. More...
 
virtual bool SupportsCeed () const
 Indicates whether this integrator can use a Ceed backend. More...
 
ceed::Operator & GetCeedOp ()
 
virtual ~NonlinearFormIntegrator ()
 

Protected Attributes

Coefficient * Q
 
DiagonalMatrixCoefficient * DQ
 
MatrixCoefficient * MQ
 
Vector pa_data
 
const DofToQuad * mapsO
 Not owned. DOF-to-quad map, open. More...
 
const DofToQuad * mapsC
 Not owned. DOF-to-quad map, closed. More...
 
const DofToQuad * mapsOtest
 Not owned. DOF-to-quad map, open. More...
 
const DofToQuad * mapsCtest
 Not owned. DOF-to-quad map, closed. More...
 
const GeometricFactors * geom
 Not owned. More...
 
int dim
 
int ne
 
int nq
 
int dofs1D
 
int dofs1Dtest
 
int quad1D
 
int trial_fetype
 
int test_fetype
 
bool symmetric = true
 False if using a nonsymmetric matrix coefficient. More...
 
- Protected Attributes inherited from mfem::NonlinearFormIntegrator
const IntegrationRule * IntRule
 
ceed::Operator * ceedOp
 
MemoryType pa_mt = MemoryType::DEFAULT
 

Additional Inherited Members

- Protected Member Functions inherited from mfem::BilinearFormIntegrator
 BilinearFormIntegrator (const IntegrationRule *ir=NULL)
 
- Protected Member Functions inherited from mfem::NonlinearFormIntegrator
 NonlinearFormIntegrator (const IntegrationRule *ir=NULL)
 

Detailed Description

Integrator for (Q u, v), where Q is an optional coefficient (of type scalar, vector (diagonal matrix), or matrix), trial function u is in H(Curl) or H(Div), and test function v is in H(Curl), H(Div), or v=(v1,...,vn), where vi are in H1.

Definition at line 2645 of file bilininteg.hpp.

Constructor & Destructor Documentation

mfem::VectorFEMassIntegrator::VectorFEMassIntegrator ( )
inline

Definition at line 2676 of file bilininteg.hpp.

mfem::VectorFEMassIntegrator::VectorFEMassIntegrator ( Coefficient *  q_)
inline

Definition at line 2677 of file bilininteg.hpp.

mfem::VectorFEMassIntegrator::VectorFEMassIntegrator ( Coefficient &  q)
inline

Definition at line 2678 of file bilininteg.hpp.

mfem::VectorFEMassIntegrator::VectorFEMassIntegrator ( DiagonalMatrixCoefficient *  dq_)
inline

Definition at line 2679 of file bilininteg.hpp.

mfem::VectorFEMassIntegrator::VectorFEMassIntegrator ( DiagonalMatrixCoefficient &  dq)
inline

Definition at line 2680 of file bilininteg.hpp.

mfem::VectorFEMassIntegrator::VectorFEMassIntegrator ( MatrixCoefficient *  mq_)
inline

Definition at line 2681 of file bilininteg.hpp.

mfem::VectorFEMassIntegrator::VectorFEMassIntegrator ( MatrixCoefficient &  mq)
inline

Definition at line 2682 of file bilininteg.hpp.

Member Function Documentation

void mfem::VectorFEMassIntegrator::AddMultPA ( const Vector &  x,
Vector &  y 
) const
virtual

Method for partially assembled action.

Perform the action of integrator on the input x and add the result to the output y. Both x and y are E-vectors, i.e. they represent the element-wise discontinuous version of the FE space.

This method can be called only after the method AssemblePA() has been called.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 925 of file bilininteg_vectorfe.cpp.

void mfem::VectorFEMassIntegrator::AddMultTransposePA ( const Vector &  x,
Vector &  y 
) const
virtual

Method for partially assembled transposed action.

Perform the transpose action of integrator on the input x and add the result to the output y. Both x and y are E-vectors, i.e. they represent the element-wise discontinuous version of the FE space.

This method can be called only after the method AssemblePA() has been called.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 1016 of file bilininteg_vectorfe.cpp.

void mfem::VectorFEMassIntegrator::AssembleDiagonalPA ( Vector &  diag)
virtual

Assemble diagonal and add it to Vector diag.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 863 of file bilininteg_vectorfe.cpp.

void mfem::VectorFEMassIntegrator::AssembleElementMatrix ( const FiniteElement &  el,
ElementTransformation &  Trans,
DenseMatrix &  elmat 
)
virtual

Given a particular Finite Element computes the element matrix elmat.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 2399 of file bilininteg.cpp.

void mfem::VectorFEMassIntegrator::AssembleElementMatrix2 ( const FiniteElement &  trial_fe,
const FiniteElement &  test_fe,
ElementTransformation &  Trans,
DenseMatrix &  elmat 
)
virtual

Compute the local matrix representation of a bilinear form a(u,v) defined on different trial (given by u) and test (given by v) spaces. The rows in the local matrix correspond to the test dofs and the columns – to the trial dofs.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 2465 of file bilininteg.cpp.

void mfem::VectorFEMassIntegrator::AssemblePA ( const FiniteElementSpace &  fes)
virtual

Method defining partial assembly.

The result of the partial assembly is stored internally so that it can be used later in the methods AddMultPA() and AddMultTransposePA().

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 747 of file bilininteg_vectorfe.cpp.

void mfem::VectorFEMassIntegrator::AssemblePA ( const FiniteElementSpace &  trial_fes,
const FiniteElementSpace &  test_fes 
)
virtual

Used with BilinearFormIntegrators that have different spaces.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 752 of file bilininteg_vectorfe.cpp.

const Coefficient* mfem::VectorFEMassIntegrator::GetCoefficient ( ) const
inline

Definition at line 2700 of file bilininteg.hpp.

Member Data Documentation

int mfem::VectorFEMassIntegrator::dim
protected

Definition at line 2672 of file bilininteg.hpp.

int mfem::VectorFEMassIntegrator::dofs1D
protected

Definition at line 2672 of file bilininteg.hpp.

int mfem::VectorFEMassIntegrator::dofs1Dtest
protected

Definition at line 2672 of file bilininteg.hpp.

DiagonalMatrixCoefficient* mfem::VectorFEMassIntegrator::DQ
protected

Definition at line 2662 of file bilininteg.hpp.

const GeometricFactors* mfem::VectorFEMassIntegrator::geom
protected

Not owned.

Definition at line 2671 of file bilininteg.hpp.

const DofToQuad* mfem::VectorFEMassIntegrator::mapsC
protected

Not owned. DOF-to-quad map, closed.

Definition at line 2668 of file bilininteg.hpp.

const DofToQuad* mfem::VectorFEMassIntegrator::mapsCtest
protected

Not owned. DOF-to-quad map, closed.

Definition at line 2670 of file bilininteg.hpp.

const DofToQuad* mfem::VectorFEMassIntegrator::mapsO
protected

Not owned. DOF-to-quad map, open.

Definition at line 2667 of file bilininteg.hpp.

const DofToQuad* mfem::VectorFEMassIntegrator::mapsOtest
protected

Not owned. DOF-to-quad map, open.

Definition at line 2669 of file bilininteg.hpp.

MatrixCoefficient* mfem::VectorFEMassIntegrator::MQ
protected

Definition at line 2663 of file bilininteg.hpp.

int mfem::VectorFEMassIntegrator::ne
protected

Definition at line 2672 of file bilininteg.hpp.

int mfem::VectorFEMassIntegrator::nq
protected

Definition at line 2672 of file bilininteg.hpp.

Vector mfem::VectorFEMassIntegrator::pa_data
protected

Definition at line 2666 of file bilininteg.hpp.

Coefficient* mfem::VectorFEMassIntegrator::Q
protected

Definition at line 2661 of file bilininteg.hpp.

int mfem::VectorFEMassIntegrator::quad1D
protected

Definition at line 2672 of file bilininteg.hpp.

bool mfem::VectorFEMassIntegrator::symmetric = true
protected

False if using a nonsymmetric matrix coefficient.

Definition at line 2673 of file bilininteg.hpp.

int mfem::VectorFEMassIntegrator::test_fetype
protected

Definition at line 2672 of file bilininteg.hpp.

int mfem::VectorFEMassIntegrator::trial_fetype
protected

Definition at line 2672 of file bilininteg.hpp.


The documentation for this class was generated from the following files: