MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::NURBSMeshRules Class Reference

Class for defining different integration rules on each NURBS patch. More...

#include <intrules.hpp>

Public Member Functions

 NURBSMeshRules (const int numPatches, const int dim_)
 Construct a rule for each patch, using SetPatchRules1D.
 
IntegrationRuleGetElementRule (const int elem, const int patch, const int *ijk, Array< const KnotVector * > const &kv, bool &deleteRule) const
 Returns a rule for the element.
 
std::size_t AddElementRule (IntegrationRule *ir_element)
 Add a rule to be used for individual elements. Returns the rule index.
 
void SetElementRule (const std::size_t element, const std::size_t elementRuleIndex)
 Set the integration rule for the element of the given index. This rule is used instead of the rule for the patch containing the element.
 
void SetPatchRules1D (const int patch, std::vector< const IntegrationRule * > &ir1D)
 Set 1D integration rules to be used as a tensor product rule on the patch with index patch. This class takes ownership of these rules.
 
const IntegrationRuleGetPatchRule1D (const int patch, const int dimension) const
 For tensor product rules defined on each patch by SetPatchRules1D(), return a pointer to the 1D rule in the specified dimension.
 
void GetIntegrationPointFrom1D (const int patch, int i, int j, int k, IntegrationPoint &ip)
 For tensor product rules defined on each patch by SetPatchRules1D(), return the integration point with index (i,j,k).
 
void Finalize (Mesh const &mesh)
 Finalize() must be called before this class can be used for assembly. In particular, it defines data used by GetPointElement().
 
int GetPointElement (int patch, int i, int j, int k) const
 For tensor product rules defined on each patch by SetPatchRules1D(), returns the index of the element containing integration point (i,j,k) for patch index patch. Finalize() must be called first.
 
int GetDim () const
 
const Array< int > & GetPatchRule1D_KnotSpan (const int patch, const int dimension) const
 For tensor product rules defined on each patch by SetPatchRules1D(), returns an array of knot span indices for each integration point in the specified dimension.
 
 ~NURBSMeshRules ()
 

Detailed Description

Class for defining different integration rules on each NURBS patch.

Definition at line 278 of file intrules.hpp.

Constructor & Destructor Documentation

◆ NURBSMeshRules()

mfem::NURBSMeshRules::NURBSMeshRules ( const int numPatches,
const int dim_ )
inline

Construct a rule for each patch, using SetPatchRules1D.

Definition at line 282 of file intrules.hpp.

◆ ~NURBSMeshRules()

mfem::NURBSMeshRules::~NURBSMeshRules ( )

Definition at line 2087 of file intrules.cpp.

Member Function Documentation

◆ AddElementRule()

std::size_t mfem::NURBSMeshRules::AddElementRule ( IntegrationRule * ir_element)
inline

Add a rule to be used for individual elements. Returns the rule index.

Definition at line 293 of file intrules.hpp.

◆ Finalize()

void mfem::NURBSMeshRules::Finalize ( Mesh const & mesh)

Finalize() must be called before this class can be used for assembly. In particular, it defines data used by GetPointElement().

Definition at line 1970 of file intrules.cpp.

◆ GetDim()

int mfem::NURBSMeshRules::GetDim ( ) const
inline

Definition at line 339 of file intrules.hpp.

◆ GetElementRule()

IntegrationRule & mfem::NURBSMeshRules::GetElementRule ( const int elem,
const int patch,
const int * ijk,
Array< const KnotVector * > const & kv,
bool & deleteRule ) const

Returns a rule for the element.

Definition at line 1865 of file intrules.cpp.

◆ GetIntegrationPointFrom1D()

void mfem::NURBSMeshRules::GetIntegrationPointFrom1D ( const int patch,
int i,
int j,
int k,
IntegrationPoint & ip )

For tensor product rules defined on each patch by SetPatchRules1D(), return the integration point with index (i,j,k).

Definition at line 1948 of file intrules.cpp.

◆ GetPatchRule1D()

const IntegrationRule * mfem::NURBSMeshRules::GetPatchRule1D ( const int patch,
const int dimension ) const
inline

For tensor product rules defined on each patch by SetPatchRules1D(), return a pointer to the 1D rule in the specified dimension.

Definition at line 315 of file intrules.hpp.

◆ GetPatchRule1D_KnotSpan()

const Array< int > & mfem::NURBSMeshRules::GetPatchRule1D_KnotSpan ( const int patch,
const int dimension ) const
inline

For tensor product rules defined on each patch by SetPatchRules1D(), returns an array of knot span indices for each integration point in the specified dimension.

Definition at line 344 of file intrules.hpp.

◆ GetPointElement()

int mfem::NURBSMeshRules::GetPointElement ( int patch,
int i,
int j,
int k ) const
inline

For tensor product rules defined on each patch by SetPatchRules1D(), returns the index of the element containing integration point (i,j,k) for patch index patch. Finalize() must be called first.

Definition at line 334 of file intrules.hpp.

◆ SetElementRule()

void mfem::NURBSMeshRules::SetElementRule ( const std::size_t element,
const std::size_t elementRuleIndex )
inline

Set the integration rule for the element of the given index. This rule is used instead of the rule for the patch containing the element.

Definition at line 301 of file intrules.hpp.

◆ SetPatchRules1D()

void mfem::NURBSMeshRules::SetPatchRules1D ( const int patch,
std::vector< const IntegrationRule * > & ir1D )

Set 1D integration rules to be used as a tensor product rule on the patch with index patch. This class takes ownership of these rules.

Definition at line 2076 of file intrules.cpp.


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