12#ifndef MFEM_INTEGRATOR
13#define MFEM_INTEGRATOR
Abstract class for all finite elements.
Class for an integration rule - an Array of IntegrationPoint.
This base class implements some shared functionality between linear and nonlinear form integrators.
NURBSMeshRules * patchRules
Integrator(const IntegrationRule *ir=NULL)
Create a new Integrator, optionally providing a prescribed quadrature rule to use in assembly.
void SetNURBSPatchIntRule(NURBSMeshRules *pr)
Sets an integration rule for use on NURBS patches.
bool HasNURBSPatchIntRule() const
Check if a NURBS patch integration rule has been set.
virtual void SetIntRule(const IntegrationRule *ir)
Prescribe a fixed IntegrationRule to use, or set to null to let the integrator choose an appropriate ...
void SetIntegrationRule(const IntegrationRule &ir)
Prescribe a fixed IntegrationRule to use. Sets the NURBS patch integration rule to null.
virtual const IntegrationRule * GetDefaultIntegrationRule(const FiniteElement &trial_fe, const FiniteElement &test_fe, const ElementTransformation &trans) const
Subclasses should override to choose a default integration rule.
const IntegrationRule * GetIntRule() const
Directly return the IntRule pointer (possibly null) without checking for NURBS patch rules or falling...
const IntegrationRule * GetIntegrationRule() const
Equivalent to GetIntRule, but retained for backward compatibility with applications.
const IntegrationRule * IntRule
Class for defining different integration rules on each NURBS patch.
void trans(const Vector &u, Vector &x)