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);
103 std::vector<gsVector<T> > elNodes(m_basis->dim());
104 std::vector<gsVector<T> > elWeights(m_basis->dim());
108 if (bot[d]==0.0 || top[d]==0.0)
110 m_boundary[d].mapTo( lower[d], upper[d], tmp, elWeights[d]);
111 GISMO_ASSERT(tmp.rows()==1,
"Dimension of the nodes is wrong!");
112 elNodes[d] = tmp.transpose();
116 m_interior[d].mapTo( lower[d], upper[d], tmp, elWeights[d]);
117 GISMO_ASSERT(tmp.rows()==1,
"Dimension of the nodes is wrong!");
118 elNodes[d] = tmp.transpose();
121 this->computeTensorProductRule_into(elNodes,elWeights,nodes,weights);
126 std::vector<gsQuadRule<T> > m_interior, m_boundary;
A basis represents a family of scalar basis functions defined over a common parameter domain.
Definition gsBasis.h:79
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition gsMatrix.h:41
Class that defines a mixed quadrature rule with different rules for the interior and the boundaries.
Definition gsOverIntegrateRule.h:31
gsOverIntegrateRule(const gsBasis< T > &basis, const std::vector< gsQuadRule< T > > &quadInterior, const std::vector< gsQuadRule< T > > &quadBoundary)
Constructor.
Definition gsOverIntegrateRule.h:53
index_t dim() const
Dimension of the rule.
Definition gsOverIntegrateRule.h:86
gsOverIntegrateRule()
Default empty constructor.
Definition gsOverIntegrateRule.h:37
void mapTo(const gsVector< T > &lower, const gsVector< T > &upper, gsMatrix< T > &nodes, gsVector< T > &weights) const
Maps quadrature rule (i.e., points and weights) from the reference domain to an element.
Definition gsOverIntegrateRule.h:97
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:29
A vector with arbitrary coefficient type and fixed or dynamic size.
Definition gsVector.h:37
Provides declaration of Basis abstract interface.
#define index_t
Definition gsConfig.h:32
#define GISMO_ASSERT(cond, message)
Definition gsDebug.h:89
Provides a base class for a quadrature rule.
The G+Smo namespace, containing all definitions for the library.