34 typedef memory::unique_ptr<gsOverIntegrateRule> uPtr;
58 m_interior(quadInterior),
59 m_boundary(quadBoundary)
61 std::vector< gsVector<T> > nodes(m_basis->dim());
62 m_start = m_basis->support().col(0);
63 m_end = m_basis->support().col(1);
102 std::vector<gsVector<T> > elNodes(m_basis->dim());
103 std::vector<gsVector<T> > elWeights(m_basis->dim());
107 if (bot[d]==0.0 || top[d]==0.0)
109 m_boundary[d].mapTo( lower[d], upper[d], tmp, elWeights[d]);
110 GISMO_ASSERT(tmp.rows()==1,
"Dimension of the nodes is wrong!");
111 elNodes[d] = tmp.transpose();
115 m_interior[d].mapTo( lower[d], upper[d], tmp, elWeights[d]);
116 GISMO_ASSERT(tmp.rows()==1,
"Dimension of the nodes is wrong!");
117 elNodes[d] = tmp.transpose();
120 this->computeTensorProductRule_into(elNodes,elWeights,nodes,weights);
125 std::vector<gsQuadRule<T> > m_interior, m_boundary;
Provides a base class for a quadrature rule.
static uPtr make(const gsBasis< T > &basis, const std::vector< gsQuadRule< T > > &quadInterior, const std::vector< gsQuadRule< T > > &quadBoundary)
Construct a smart-pointer to the rule.
Definition: gsOverIntegrateRule.h:75
Class representing a reference quadrature rule.
Definition: gsQuadRule.h:28
Provides declaration of Basis abstract interface.
#define index_t
Definition: gsConfig.h:32
#define GISMO_ASSERT(cond, message)
Definition: gsDebug.h:89
gsOverIntegrateRule()
Default empty constructor.
Definition: gsOverIntegrateRule.h:37
index_t dim() const
Dimension of the rule.
Definition: gsOverIntegrateRule.h:86
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.
Definition: gsOverIntegrateRule.h:96
Class that defines a mixed quadrature rule with different rules for the interior and the boundaries...
Definition: gsOverIntegrateRule.h:30
A basis represents a family of scalar basis functions defined over a common parameter domain...
Definition: gsBasis.h:78
gsOverIntegrateRule(const gsBasis< T > &basis, const std::vector< gsQuadRule< T > > &quadInterior, const std::vector< gsQuadRule< T > > &quadBoundary)
Constructor.
Definition: gsOverIntegrateRule.h:53