MFEM  v4.2.0
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::VectorDiffusionIntegrator Class Reference

#include <bilininteg.hpp>

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

Public Member Functions

 VectorDiffusionIntegrator ()
 
 VectorDiffusionIntegrator (Coefficient &q)
 
virtual ~VectorDiffusionIntegrator ()
 
virtual void AssembleElementMatrix (const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat)
 Given a particular Finite Element computes the element matrix elmat. More...
 
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 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
 
- 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 AssembleElementMatrix2 (const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat)
 
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 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)
 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
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 &irule)
 Prescribe a fixed IntegrationRule to use. More...
 
virtual double GetElementEnergy (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun)
 Compute the local energy. More...
 
virtual ~NonlinearFormIntegrator ()
 

Protected Attributes

Coefficient * Q
 
const DofToQuad * maps
 Not owned. More...
 
const GeometricFactors * geom
 Not owned. More...
 
int dim
 
int sdim
 
int ne
 
int dofs1D
 
int quad1D
 
Vector pa_data
 
CeedData * ceedDataPtr
 
- Protected Attributes inherited from mfem::NonlinearFormIntegrator
const IntegrationRule * IntRule
 

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 grad u, grad v) = sum_i (Q grad u_i, grad v_i) e_i e_i^T for FE spaces defined by 'dim' copies of a scalar FE space. Where e_i is the unit vector in the i-th direction. The resulting local element matrix is a block-diagonal matrix consisting of 'dim' copies of a scalar diffusion matrix in each diagonal block.

Definition at line 2552 of file bilininteg.hpp.

Constructor & Destructor Documentation

mfem::VectorDiffusionIntegrator::VectorDiffusionIntegrator ( )
inline

Definition at line 2571 of file bilininteg.hpp.

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

Definition at line 2573 of file bilininteg.hpp.

virtual mfem::VectorDiffusionIntegrator::~VectorDiffusionIntegrator ( )
inlinevirtual

Definition at line 2576 of file bilininteg.hpp.

Member Function Documentation

void mfem::VectorDiffusionIntegrator::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 41 of file bilininteg_vecdiffusion_mf.cpp.

void mfem::VectorDiffusionIntegrator::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 515 of file bilininteg_vecdiffusion.cpp.

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

Assemble diagonal and add it to Vector diag.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 55 of file bilininteg_vecdiffusion_mf.cpp.

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

Assemble diagonal and add it to Vector diag.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 742 of file bilininteg_vecdiffusion.cpp.

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

void mfem::VectorDiffusionIntegrator::AssembleElementVector ( const FiniteElement &  el,
ElementTransformation &  Tr,
const Vector &  elfun,
Vector &  elvect 
)
virtual

Perform the local action of the BilinearFormIntegrator. Note that the default implementation in the base class is general but not efficient.

Reimplemented from mfem::BilinearFormIntegrator.

Definition at line 2299 of file bilininteg.cpp.

void mfem::VectorDiffusionIntegrator::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 22 of file bilininteg_vecdiffusion_mf.cpp.

void mfem::VectorDiffusionIntegrator::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 126 of file bilininteg_vecdiffusion.cpp.

Member Data Documentation

CeedData* mfem::VectorDiffusionIntegrator::ceedDataPtr
protected

Definition at line 2564 of file bilininteg.hpp.

int mfem::VectorDiffusionIntegrator::dim
protected

Definition at line 2560 of file bilininteg.hpp.

int mfem::VectorDiffusionIntegrator::dofs1D
protected

Definition at line 2560 of file bilininteg.hpp.

const GeometricFactors* mfem::VectorDiffusionIntegrator::geom
protected

Not owned.

Definition at line 2559 of file bilininteg.hpp.

const DofToQuad* mfem::VectorDiffusionIntegrator::maps
protected

Not owned.

Definition at line 2558 of file bilininteg.hpp.

int mfem::VectorDiffusionIntegrator::ne
protected

Definition at line 2560 of file bilininteg.hpp.

Vector mfem::VectorDiffusionIntegrator::pa_data
protected

Definition at line 2561 of file bilininteg.hpp.

Coefficient* mfem::VectorDiffusionIntegrator::Q
protected

Definition at line 2555 of file bilininteg.hpp.

int mfem::VectorDiffusionIntegrator::quad1D
protected

Definition at line 2560 of file bilininteg.hpp.

int mfem::VectorDiffusionIntegrator::sdim
protected

Definition at line 2560 of file bilininteg.hpp.


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