MFEM v4.8.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::DeltaLFIntegrator Class Referenceabstract

Abstract class for integrators that support delta coefficients. More...

#include <lininteg.hpp>

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

Public Member Functions

bool IsDelta () const
 Returns true if the derived class instance uses a delta coefficient.
 
void GetDeltaCenter (Vector &center)
 Returns the center of the delta coefficient.
 
virtual void AssembleDeltaElementVect (const FiniteElement &fe, ElementTransformation &Trans, Vector &elvect)=0
 Assemble the delta coefficient at the IntegrationPoint set in Trans which is assumed to map to the delta coefficient center.
 
- Public Member Functions inherited from mfem::LinearFormIntegrator
virtual bool SupportsDevice () const
 Method probing for assembly on device.
 
virtual void AssembleDevice (const FiniteElementSpace &fes, const Array< int > &markers, Vector &b)
 Method defining assembly on device.
 
virtual void AssembleRHSElementVect (const FiniteElement &el, ElementTransformation &Tr, Vector &elvect)=0
 
virtual void AssembleRHSElementVect (const FiniteElement &el, FaceElementTransformations &Tr, Vector &elvect)
 
virtual void AssembleRHSElementVect (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, Vector &elvect)
 
virtual ~LinearFormIntegrator ()
 
- Public Member Functions inherited from mfem::Integrator
 Integrator (const IntegrationRule *ir=NULL)
 Create a new Integrator, optionally providing a prescribed quadrature rule to use in assembly.
 
virtual void SetIntRule (const IntegrationRule *ir)
 Prescribe a fixed IntegrationRule to use, or set to null to let the integrator choose an appropriate rule.
 
void SetIntegrationRule (const IntegrationRule &ir)
 Prescribe a fixed IntegrationRule to use. Sets the NURBS patch integration rule to null.
 
void SetNURBSPatchIntRule (NURBSMeshRules *pr)
 Sets an integration rule for use on NURBS patches.
 
bool HasNURBSPatchIntRule () const
 Check if a NURBS patch integration rule has been set.
 
const IntegrationRuleGetIntRule () const
 Directly return the IntRule pointer (possibly null) without checking for NURBS patch rules or falling back on a default.
 
const IntegrationRuleGetIntegrationRule () const
 Equivalent to GetIntRule, but retained for backward compatibility with applications.
 

Protected Member Functions

 DeltaLFIntegrator (Coefficient &q, const IntegrationRule *ir=NULL)
 This constructor should be used by derived classes that use a scalar DeltaCoefficient.
 
 DeltaLFIntegrator (VectorCoefficient &vq, const IntegrationRule *ir=NULL)
 This constructor should be used by derived classes that use a VectorDeltaCoefficient.
 
- Protected Member Functions inherited from mfem::LinearFormIntegrator
 LinearFormIntegrator (const IntegrationRule *ir=NULL)
 
- Protected Member Functions inherited from mfem::Integrator
const IntegrationRuleGetIntegrationRule (const FiniteElement &trial_fe, const FiniteElement &test_fe, const ElementTransformation &trans) const
 Returns an integration rule based on the arguments and internal state of the Integrator object.
 
const IntegrationRuleGetIntegrationRule (const FiniteElement &el, const ElementTransformation &trans) const
 Returns an integration rule based on the arguments and internal state. (Version for identical trial_fe and test_fe)
 
virtual const IntegrationRuleGetDefaultIntegrationRule (const FiniteElement &trial_fe, const FiniteElement &test_fe, const ElementTransformation &trans) const
 Subclasses should override to choose a default integration rule.
 

Protected Attributes

DeltaCoefficientdelta
 
VectorDeltaCoefficientvec_delta
 
- Protected Attributes inherited from mfem::Integrator
const IntegrationRuleIntRule
 
NURBSMeshRulespatchRules = nullptr
 

Detailed Description

Abstract class for integrators that support delta coefficients.

Definition at line 59 of file lininteg.hpp.

Constructor & Destructor Documentation

◆ DeltaLFIntegrator() [1/2]

mfem::DeltaLFIntegrator::DeltaLFIntegrator ( Coefficient & q,
const IntegrationRule * ir = NULL )
inlineprotected

This constructor should be used by derived classes that use a scalar DeltaCoefficient.

Definition at line 67 of file lininteg.hpp.

◆ DeltaLFIntegrator() [2/2]

mfem::DeltaLFIntegrator::DeltaLFIntegrator ( VectorCoefficient & vq,
const IntegrationRule * ir = NULL )
inlineprotected

This constructor should be used by derived classes that use a VectorDeltaCoefficient.

Definition at line 74 of file lininteg.hpp.

Member Function Documentation

◆ AssembleDeltaElementVect()

virtual void mfem::DeltaLFIntegrator::AssembleDeltaElementVect ( const FiniteElement & fe,
ElementTransformation & Trans,
Vector & elvect )
pure virtual

Assemble the delta coefficient at the IntegrationPoint set in Trans which is assumed to map to the delta coefficient center.

Note
This method should be called for one mesh element only, including in parallel, even when the center of the delta coefficient is shared by multiple elements.

Implemented in mfem::DomainLFGradIntegrator, mfem::DomainLFIntegrator, mfem::VectorDomainLFGradIntegrator, mfem::VectorDomainLFIntegrator, mfem::VectorFEDomainLFCurlIntegrator, mfem::VectorFEDomainLFDivIntegrator, and mfem::VectorFEDomainLFIntegrator.

◆ GetDeltaCenter()

void mfem::DeltaLFIntegrator::GetDeltaCenter ( Vector & center)
inline

Returns the center of the delta coefficient.

Definition at line 85 of file lininteg.hpp.

◆ IsDelta()

bool mfem::DeltaLFIntegrator::IsDelta ( ) const
inline

Returns true if the derived class instance uses a delta coefficient.

Definition at line 82 of file lininteg.hpp.

Member Data Documentation

◆ delta

DeltaCoefficient* mfem::DeltaLFIntegrator::delta
protected

Definition at line 62 of file lininteg.hpp.

◆ vec_delta

VectorDeltaCoefficient* mfem::DeltaLFIntegrator::vec_delta
protected

Definition at line 63 of file lininteg.hpp.


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