MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::CutIntegrationRules Class Referenceabstract

Abstract class for construction of IntegrationRules in cut elements. More...

#include <intrules_cut.hpp>

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

Public Member Functions

virtual void SetOrder (int order)
 Change the order of the constructed IntegrationRule.
 
virtual void SetLevelSetCoefficient (Coefficient &ls)
 Change the Coefficient whose zero level set specifies the cut.
 
virtual void SetLevelSetProjectionOrder (int order)
 
virtual void GetSurfaceIntegrationRule (ElementTransformation &Tr, IntegrationRule &result)=0
 Construct a cut-surface IntegrationRule.
 
virtual void GetVolumeIntegrationRule (ElementTransformation &Tr, IntegrationRule &result, const IntegrationRule *sir=NULL)=0
 Construct a cut-volume IntegrationRule.
 
virtual void GetSurfaceWeights (ElementTransformation &Tr, const IntegrationRule &sir, Vector &weights)=0
 Compute transformation quadrature weights for surface integration.
 
virtual ~CutIntegrationRules ()
 Destructor of CutIntegrationRules.
 

Protected Member Functions

 CutIntegrationRules (int order, Coefficient &lvlset, int lsO=2)
 Constructor to set up the generated cut IntegrationRules.
 

Protected Attributes

int Order
 Order of the IntegrationRule.
 
CoefficientLvlSet
 The zero level set of this Coefficient defines the cut surface.
 
int lsOrder
 Space order for the LS projection.
 

Detailed Description

Abstract class for construction of IntegrationRules in cut elements.

Interface for construction of cut-surface and cut-volume IntegrationRules. The cut is specified by the zero level set of a given Coefficient.

Definition at line 29 of file intrules_cut.hpp.

Constructor & Destructor Documentation

◆ CutIntegrationRules()

mfem::CutIntegrationRules::CutIntegrationRules ( int order,
Coefficient & lvlset,
int lsO = 2 )
inlineprotected

Constructor to set up the generated cut IntegrationRules.

Parameters
[in]orderOrder of the constructed IntegrationRule.
[in]lvlsetCoefficient whose zero level set specifies the cut.
[in]lsOPolynomial degree for projecting the level-set Coefficient to a GridFunction, which is used to compute gradients and normals.

Definition at line 46 of file intrules_cut.hpp.

◆ ~CutIntegrationRules()

virtual mfem::CutIntegrationRules::~CutIntegrationRules ( )
inlinevirtual

Destructor of CutIntegrationRules.

Definition at line 105 of file intrules_cut.hpp.

Member Function Documentation

◆ GetSurfaceIntegrationRule()

virtual void mfem::CutIntegrationRules::GetSurfaceIntegrationRule ( ElementTransformation & Tr,
IntegrationRule & result )
pure virtual

Construct a cut-surface IntegrationRule.

Construct an IntegrationRule to integrate on the surface given by the already specified level set function, for the element given by Tr.

Parameters
[in]TrSpecifies the IntegrationRule's associated mesh element.
[out]resultIntegrationRule on the cut-surface

Implemented in mfem::MomentFittingIntRules.

◆ GetSurfaceWeights()

virtual void mfem::CutIntegrationRules::GetSurfaceWeights ( ElementTransformation & Tr,
const IntegrationRule & sir,
Vector & weights )
pure virtual

Compute transformation quadrature weights for surface integration.

Compute the transformation weights for integration over the cut-surface in reference space.

Parameters
[in]TrSpecifies the IntegrationRule's associated element.
[in]sirIntegrationRule defining the IntegrationPoints
[out]weightsVector containing the transformation weights.

Implemented in mfem::MomentFittingIntRules.

◆ GetVolumeIntegrationRule()

virtual void mfem::CutIntegrationRules::GetVolumeIntegrationRule ( ElementTransformation & Tr,
IntegrationRule & result,
const IntegrationRule * sir = NULL )
pure virtual

Construct a cut-volume IntegrationRule.

Construct an IntegrationRule to integrate in the subdomain given by the positive values of the already specified level set function, for the element given by Tr.

Parameters
[in]TrSpecifies the IntegrationRule's associated mesh element.
[out]resultIntegrationRule for the cut-volume
[in]sirCorresponding IntegrationRule for the surface, which can be used to avoid computations.

Implemented in mfem::MomentFittingIntRules.

◆ SetLevelSetCoefficient()

virtual void mfem::CutIntegrationRules::SetLevelSetCoefficient ( Coefficient & ls)
inlinevirtual

Change the Coefficient whose zero level set specifies the cut.

Reimplemented in mfem::MomentFittingIntRules.

Definition at line 56 of file intrules_cut.hpp.

◆ SetLevelSetProjectionOrder()

void mfem::CutIntegrationRules::SetLevelSetProjectionOrder ( int order)
virtual

Change the polynomial degree for projecting the level set Coefficient to a GridFunction, which is used to compute local gradients and normals.

Reimplemented in mfem::MomentFittingIntRules.

Definition at line 28 of file intrules_cut.cpp.

◆ SetOrder()

void mfem::CutIntegrationRules::SetOrder ( int order)
virtual

Change the order of the constructed IntegrationRule.

Reimplemented in mfem::MomentFittingIntRules.

Definition at line 22 of file intrules_cut.cpp.

Member Data Documentation

◆ lsOrder

int mfem::CutIntegrationRules::lsOrder
protected

Space order for the LS projection.

Definition at line 37 of file intrules_cut.hpp.

◆ LvlSet

Coefficient* mfem::CutIntegrationRules::LvlSet
protected

The zero level set of this Coefficient defines the cut surface.

Definition at line 35 of file intrules_cut.hpp.

◆ Order

int mfem::CutIntegrationRules::Order
protected

Order of the IntegrationRule.

Definition at line 33 of file intrules_cut.hpp.


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