template<class T>
class gismo::gsOverIntegrateRule< T >
Class that defines a mixed quadrature rule with different rules for the interior and the boundaries.
This class is defined using two other quadrature rules (only works for gsGaussRule or gsLobattoRule) for the interior and for the boundary. Depending on the location of the considered element, it will either use the interior rule or the boundary rule. In this way, one can for example use full (exact) integration on the boundary points and reduced integration in the interior.
|
index_t | dim () const |
| Dimension of the rule.
|
|
| gsOverIntegrateRule () |
| Default empty constructor.
|
|
| gsOverIntegrateRule (const gsBasis< T > &basis, const std::vector< gsQuadRule< T > > &quadInterior, const std::vector< gsQuadRule< T > > &quadBoundary) |
| Constructor. More...
|
|
void | mapTo (const gsVector< T > &lower, const gsVector< T > &upper, gsMatrix< T > &nodes, gsVector< T > &weights) const |
| Maps the points in the d-dimensional cube with points lower and upper. More...
|
|
virtual void | mapTo (T startVal, T endVal, gsMatrix< T > &nodes, gsVector< T > &weights) const |
| Maps a univariate quadrature rule (i.e., points and weights) from the reference interval to an arbitrary interval.
|
|
void | mapToAll (const std::vector< T > &breaks, gsMatrix< T > &nodes, gsVector< T > &weights) const |
| Maps a univariate quadrature rule (i.e., points and weights) from the reference interval to a number of intervals, implied by the breaks.
|
|
index_t | numNodes () const |
| Number of nodes in the currently kept rule.
|
|
const gsMatrix< T > & | referenceNodes () const |
| Returns reference nodes for the currently kept rule. More...
|
|
const gsVector< T > & | referenceWeights () const |
| Returns reference weights for the currently kept rule. More...
|
|
virtual void | setNodes (gsVector< index_t > const &, unsigned=0) |
| Initialize quadrature rule with numNodes number of quadrature points per integration variable. More...
|
|
void | setNodes (index_t numNodes, unsigned digits=0) |
| Initialize a univariate quadrature rule with numNodes quadrature points. More...
|
|
Initialize quadrature rule with numNodes number of quadrature points per integration variable.
The call of this function initializes the quadrature rule for further use, i.e., the quadrature points and weights on the reference cube are set up and stored. The dimension d of the reference cube is specified by the length of the vector numNodes.
Example: numNodes = [2,5] corresponds to quadrature in 2D where two quadrature points are used for the first coordinate and five quadrature points for the second coordinate. In this case, 2*5 = 10 quadrature nodes and weights are set up.
Parameters
numNodes vector of length digits containing numbers of nodes to be used (per integration variable).
digits accuracy of nodes and weights. If 0, the quadrature rule will use precomputed tables if possible. If greater then 0, it will force to compute it everytime.
Reimplemented in gsGaussRule< T >, gsNewtonCotesRule< T >, and gsLobattoRule< T >.