88 typedef memory::unique_ptr<gsPatchRule> uPtr;
111 const bool overintegrate,
129 const bool overintegrate,
131 {
return uPtr(
new gsPatchRule(basis,degree,regularity,overintegrate,fixDir) ); }
155 void mapTo( T startVal, T endVal,
163 index_t dim()
const {
return m_basis->dim(); }
165 gsVector<T> nodes(
const index_t d=0)
const {
return m_nodes.at(d); }
166 gsVector<T> weights(
const index_t d=0)
const {
return m_weights.at(d); }
180 ndof =
static_cast<index_t>(std::ceil(ndof/2.0));
195 std::vector<T> result;
197 return result.size()==0 ? true :
false;
238 const T tol = 1e-10)
const;
246 std::vector<gsVector<T> > m_nodes;
247 std::vector<gsVector<T> > m_weights;
251 mutable typename gsSparseSolver<T>::QR m_solver;
255 std::vector<std::map<T,T> > m_maps;
261#ifndef GISMO_BUILD_LIB
262#include GISMO_HPP_HEADER(gsPatchRule.hpp)
A univariate B-spline basis.
Definition gsBSplineBasis.h:700
A basis represents a family of scalar basis functions defined over a common parameter domain.
Definition gsBasis.h:79
Class for representing a knot vector.
Definition gsKnotVector.h:80
void symDifference(const gsKnotVector< T > &other, std::vector< T > &result) const
Computes the symmetric difference between this knot-vector and other.
Definition gsKnotVector.hpp:172
size_t numElements() const
Number of knot intervals inside domain.
Definition gsKnotVector.h:268
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition gsMatrix.h:41
Class that represents the (tensor) patch quadrature rule.
Definition gsPatchRule.h:85
void mapToAll(const std::vector< T > &, gsMatrix< T > &, gsVector< T > &) const
Not implemented! See gsQuadRule for documentation.
Definition gsPatchRule.h:159
gsPatchRule()
Default empty constructor.
Definition gsPatchRule.h:91
std::pair< gsVector< T >, gsVector< T > > _compute(const gsKnotVector< T > &knots, const gsMatrix< T > &greville, const gsVector< T > &integrals, const T tol=1e-10) const
Computes the points and weights for the patch rule using Newton iterations.
Definition gsPatchRule.hpp:325
static uPtr make(const gsBasis< T > &basis, const index_t degree, const index_t regularity, const bool overintegrate, const short_t fixDir=-1)
Make function returning a smart pointer.
Definition gsPatchRule.h:126
bool _isSymmetric(const gsKnotVector< T > knots) const
Determines whether the specified knot vector is symmetric.
Definition gsPatchRule.h:191
gsKnotVector< T > _init(const gsBSplineBasis< T > *Bbasis) const
Initializes the knot vector for the patch-rule implementation.
Definition gsPatchRule.hpp:210
~gsPatchRule()
Destructor.
Definition gsPatchRule.h:137
index_t _numQuads(const gsKnotVector< T > knots) const
Computes the number of quadrature points to exactly integrate the space.
Definition gsPatchRule.h:177
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 gsPatchRule.hpp:134
std::pair< gsMatrix< T >, gsVector< T > > _integrate(const gsKnotVector< T > &knots) const
Integrates all basis functions from a knot vector (numerically with Gauss)
Definition gsPatchRule.hpp:292
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
#define short_t
Definition gsConfig.h:35
#define index_t
Definition gsConfig.h:32
#define GISMO_NO_IMPLEMENTATION
Definition gsDebug.h:129
Provides a base class for a quadrature rule.
The G+Smo namespace, containing all definitions for the library.