MFEM v4.8.0
Finite element discretization library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
mfem::AlgoimIntegrationRules Class Reference

#include <intrules_cut.hpp>

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

Public Member Functions

 AlgoimIntegrationRules (int order, Coefficient &lvlset, int lsO=2)
 Constructor to set up the generated cut IntegrationRules.
 
virtual ~AlgoimIntegrationRules ()
 
virtual void SetOrder (int order) override
 Change the order of the constructed IntegrationRule.
 
virtual void SetLevelSetProjectionOrder (int order) override
 
virtual void GetSurfaceIntegrationRule (ElementTransformation &Tr, IntegrationRule &result) override
 Construct a cut-surface IntegrationRule.
 
virtual void GetVolumeIntegrationRule (ElementTransformation &Tr, IntegrationRule &result, const IntegrationRule *sir=nullptr) override
 Construct a cut-volume IntegrationRule.
 
virtual void GetSurfaceWeights (ElementTransformation &Tr, const IntegrationRule &sir, Vector &weights) override
 Compute transformation quadrature weights for surface integration.
 
- Public Member Functions inherited from mfem::CutIntegrationRules
virtual void SetLevelSetCoefficient (Coefficient &ls)
 Change the Coefficient whose zero level set specifies the cut.
 
virtual ~CutIntegrationRules ()
 Destructor of CutIntegrationRules.
 

Additional Inherited Members

- Protected Member Functions inherited from mfem::CutIntegrationRules
 CutIntegrationRules (int order, Coefficient &lvlset, int lsO=2)
 Constructor to set up the generated cut IntegrationRules.
 
- Protected Attributes inherited from mfem::CutIntegrationRules
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.
 
- Static Protected Attributes inherited from mfem::CutIntegrationRules
static constexpr real_t tol_1 = 1e-12
 
static constexpr real_t tol_2 = 1e-15
 

Detailed Description

Definition at line 221 of file intrules_cut.hpp.

Constructor & Destructor Documentation

◆ AlgoimIntegrationRules()

mfem::AlgoimIntegrationRules::AlgoimIntegrationRules ( int order,
Coefficient & lvlset,
int lsO = 2 )
inline

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 232 of file intrules_cut.hpp.

◆ ~AlgoimIntegrationRules()

virtual mfem::AlgoimIntegrationRules::~AlgoimIntegrationRules ( )
inlinevirtual

Definition at line 242 of file intrules_cut.hpp.

Member Function Documentation

◆ GetSurfaceIntegrationRule()

void mfem::AlgoimIntegrationRules::GetSurfaceIntegrationRule ( ElementTransformation & Tr,
IntegrationRule & result )
overridevirtual

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

Implements mfem::CutIntegrationRules.

Definition at line 35 of file intrules_cut.cpp.

◆ GetSurfaceWeights()

void mfem::AlgoimIntegrationRules::GetSurfaceWeights ( ElementTransformation & Tr,
const IntegrationRule & sir,
Vector & weights )
overridevirtual

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.

Implements mfem::CutIntegrationRules.

Definition at line 111 of file intrules_cut.cpp.

◆ GetVolumeIntegrationRule()

void mfem::AlgoimIntegrationRules::GetVolumeIntegrationRule ( ElementTransformation & Tr,
IntegrationRule & result,
const IntegrationRule * sir = nullptr )
overridevirtual

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.

Implements mfem::CutIntegrationRules.

Definition at line 73 of file intrules_cut.cpp.

◆ SetLevelSetProjectionOrder()

virtual void mfem::AlgoimIntegrationRules::SetLevelSetProjectionOrder ( int order)
inlineoverridevirtual

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

Reimplemented from mfem::CutIntegrationRules.

Definition at line 261 of file intrules_cut.hpp.

◆ SetOrder()

virtual void mfem::AlgoimIntegrationRules::SetOrder ( int order)
inlineoverridevirtual

Change the order of the constructed IntegrationRule.

Reimplemented from mfem::CutIntegrationRules.

Definition at line 248 of file intrules_cut.hpp.


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