MFEM v4.7.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. | |
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. | |
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 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. | |
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 () | |
Class for defining different integration rules on each NURBS patch.
Definition at line 278 of file intrules.hpp.
|
inline |
Construct a rule for each patch, using SetPatchRules1D.
Definition at line 282 of file intrules.hpp.
mfem::NURBSMeshRules::~NURBSMeshRules | ( | ) |
Definition at line 2087 of file intrules.cpp.
|
inline |
Add a rule to be used for individual elements. Returns the rule index.
Definition at line 293 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 1970 of file intrules.cpp.
|
inline |
Definition at line 339 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 1865 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 1948 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 315 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 344 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 334 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 301 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 2076 of file intrules.cpp.