MFEM
v4.6.0
Finite element discretization library
|
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... | |
IntegrationRule & | GetElementRule (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 IntegrationRule * | GetPatchRule1D (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 () | |
Class for defining different integration rules on each NURBS patch.
Definition at line 275 of file intrules.hpp.
|
inline |
Construct a rule for each patch, using SetPatchRules1D.
Definition at line 279 of file intrules.hpp.
mfem::NURBSMeshRules::~NURBSMeshRules | ( | ) |
Definition at line 2042 of file intrules.cpp.
|
inline |
Add a rule to be used for individual elements. Returns the rule index.
Definition at line 290 of file intrules.hpp.
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.
|
inline |
Definition at line 336 of file intrules.hpp.
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.
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.
|
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.
|
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.
|
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.
|
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.
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.