MFEM  v4.6.0
Finite element discretization library
Public Member Functions | List of all members
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. More...
 
IntegrationRuleGetElementRule (const int elem, const int patch, const int *ijk, Array< const KnotVector *> const &kv, bool &deleteRule) const
 Returns a rule for the element. More...
 
std::size_t AddElementRule (IntegrationRule *ir_element)
 Add a rule to be used for individual elements. Returns the rule index. More...
 
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. More...
 
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. More...
 
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. More...
 
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). More...
 
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(). More...
 
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. More...
 
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. More...
 
 ~NURBSMeshRules ()
 

Detailed Description

Class for defining different integration rules on each NURBS patch.

Definition at line 275 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 279 of file intrules.hpp.

◆ ~NURBSMeshRules()

mfem::NURBSMeshRules::~NURBSMeshRules ( )

Definition at line 2042 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 290 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 1925 of file intrules.cpp.

◆ GetDim()

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

Definition at line 336 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 1820 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 1903 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 312 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 341 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 331 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 298 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 2031 of file intrules.cpp.


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