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::VectorMassIntegrator Class Reference

#include <bilininteg.hpp>

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

Public Member Functions

 VectorMassIntegrator ()
 Construct an integrator with coefficient 1.0. More...
 
 VectorMassIntegrator (Coefficient &q, int qo=0)
 
 VectorMassIntegrator (Coefficient &q, const IntegrationRule *ir)
 
 VectorMassIntegrator (VectorCoefficient &q, int qo=0)
 Construct an integrator with diagonal coefficient q. More...
 
 VectorMassIntegrator (MatrixCoefficient &q, int qo=0)
 Construct an integrator with matrix coefficient q. More...
 
int GetVDim () const
 
void SetVDim (int vdim_)
 
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 AssembleMF (const FiniteElementSpace &fes)
 Method defining matrix-free assembly. More...
 
virtual void AssembleDiagonalPA (Vector &diag)
 Assemble diagonal and add it to Vector diag. More...
 
virtual void AssembleDiagonalMF (Vector &diag)
 Assemble diagonal and add it to Vector diag. More...
 
virtual void AddMultPA (const Vector &x, Vector &y) const
 Method for partially assembled action. More...
 
virtual void AddMultMF (const Vector &x, Vector &y) const
 
bool SupportsCeed () const
 Indicates whether this integrator can use a Ceed backend. More...
 
- Public Member Functions inherited from mfem::BilinearFormIntegrator
virtual void AssemblePA (const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes)
 
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 AddMultTransposePA (const Vector &x, Vector &y) const
 Method for partially assembled transposed action. More...
 
virtual void AssembleEA (const FiniteElementSpace &fes, Vector &emat, const bool add=true)
 Method defining element assembly. More...
 
virtual void AddMultTransposeMF (const Vector &x, Vector &y) const
 
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...
 
ceed::Operator & GetCeedOp ()
 
virtual ~NonlinearFormIntegrator ()
 

Protected Attributes

Coefficient * Q
 
VectorCoefficient * VQ
 
MatrixCoefficient * MQ
 
Vector pa_data
 
const DofToQuad * maps
 Not owned. More...
 
const GeometricFactors * geom
 Not owned. More...
 
int dim
 
int ne
 
int nq
 
int dofs1D
 
int quad1D
 
- 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

Class for integrating the bilinear form a(u,v) := (Q u, v), where u=(u1,...,un) and v=(v1,...,vn); ui and vi are defined by scalar FE through standard transformation.

Definition at line 2338 of file bilininteg.hpp.

Constructor & Destructor Documentation

mfem::VectorMassIntegrator::VectorMassIntegrator ( )
inline

Construct an integrator with coefficient 1.0.

Definition at line 2359 of file bilininteg.hpp.

mfem::VectorMassIntegrator::VectorMassIntegrator ( Coefficient &  q,
int  qo = 0 
)
inline

Construct an integrator with scalar coefficient q. If possible, save memory by using a scalar integrator since the resulting matrix is block diagonal with the same diagonal block repeated.

Definition at line 2364 of file bilininteg.hpp.

mfem::VectorMassIntegrator::VectorMassIntegrator ( Coefficient &  q,
const IntegrationRule *  ir 
)
inline

Definition at line 2366 of file bilininteg.hpp.

mfem::VectorMassIntegrator::VectorMassIntegrator ( VectorCoefficient &  q,
int  qo = 0 
)
inline

Construct an integrator with diagonal coefficient q.

Definition at line 2370 of file bilininteg.hpp.

mfem::VectorMassIntegrator::VectorMassIntegrator ( MatrixCoefficient &  q,
int  qo = 0 
)
inline

Construct an integrator with matrix coefficient q.

Definition at line 2373 of file bilininteg.hpp.

Member Function Documentation

void mfem::VectorMassIntegrator::AddMultMF ( const Vector &  x,
Vector &  y 
) const
virtual

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 AssembleMF() has been called.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 53 of file bilininteg_vecmass_mf.cpp.

void mfem::VectorMassIntegrator::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 378 of file bilininteg_vecmass.cpp.

void mfem::VectorMassIntegrator::AssembleDiagonalMF ( Vector &  diag)
virtual

Assemble diagonal and add it to Vector diag.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 66 of file bilininteg_vecmass_mf.cpp.

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

Assemble diagonal and add it to Vector diag.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 538 of file bilininteg_vecmass.cpp.

void mfem::VectorMassIntegrator::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 1482 of file bilininteg.cpp.

void mfem::VectorMassIntegrator::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 1563 of file bilininteg.cpp.

void mfem::VectorMassIntegrator::AssembleMF ( const FiniteElementSpace &  fes)
virtual

Method defining matrix-free assembly.

Used with BilinearFormIntegrators that have different spaces.The result of fully matrix-free assembly is stored internally so that it can be used later in the methods AddMultMF() and AddMultTransposeMF().

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 25 of file bilininteg_vecmass_mf.cpp.

void mfem::VectorMassIntegrator::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 25 of file bilininteg_vecmass.cpp.

int mfem::VectorMassIntegrator::GetVDim ( ) const
inline

Definition at line 2376 of file bilininteg.hpp.

void mfem::VectorMassIntegrator::SetVDim ( int  vdim_)
inline

Definition at line 2377 of file bilininteg.hpp.

bool mfem::VectorMassIntegrator::SupportsCeed ( ) const
inlinevirtual

Indicates whether this integrator can use a Ceed backend.

Reimplemented from mfem::NonlinearFormIntegrator.

Definition at line 2393 of file bilininteg.hpp.

Member Data Documentation

int mfem::VectorMassIntegrator::dim
protected

Definition at line 2355 of file bilininteg.hpp.

int mfem::VectorMassIntegrator::dofs1D
protected

Definition at line 2355 of file bilininteg.hpp.

const GeometricFactors* mfem::VectorMassIntegrator::geom
protected

Not owned.

Definition at line 2354 of file bilininteg.hpp.

const DofToQuad* mfem::VectorMassIntegrator::maps
protected

Not owned.

Definition at line 2353 of file bilininteg.hpp.

MatrixCoefficient* mfem::VectorMassIntegrator::MQ
protected

Definition at line 2350 of file bilininteg.hpp.

int mfem::VectorMassIntegrator::ne
protected

Definition at line 2355 of file bilininteg.hpp.

int mfem::VectorMassIntegrator::nq
protected

Definition at line 2355 of file bilininteg.hpp.

Vector mfem::VectorMassIntegrator::pa_data
protected

Definition at line 2352 of file bilininteg.hpp.

Coefficient* mfem::VectorMassIntegrator::Q
protected

Definition at line 2348 of file bilininteg.hpp.

int mfem::VectorMassIntegrator::quad1D
protected

Definition at line 2355 of file bilininteg.hpp.

VectorCoefficient* mfem::VectorMassIntegrator::VQ
protected

Definition at line 2349 of file bilininteg.hpp.


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