| 
    dune-functions 2.10
    
   | 
 
Pre-basis for B-spline basis. More...
#include <dune/functions/functionspacebases/bsplinebasis.hh>

Public Types | |
| using | GridView = GV | 
| The grid view that the FE space is defined on.   | |
| using | size_type = std::size_t | 
| using | Node = BSplineNode< GV > | 
| using | R = double | 
Public Member Functions | |
| BSplinePreBasis (const GridView &gridView, const std::vector< double > &knotVector, unsigned int order, bool makeOpen=true) | |
| Construct a B-spline basis for a given grid view and set of knot vectors.   | |
| BSplinePreBasis (const GridView &gridView, const FieldVector< double, dim > &lowerLeft, const FieldVector< double, dim > &upperRight, const std::array< unsigned int, dim > &elements, unsigned int order, bool makeOpen=true) | |
| Construct a B-spline basis for a given grid view with uniform knot vectors.   | |
| void | initializeIndices () | 
| Initialize the global indices.   | |
| const GridView & | gridView () const | 
| Obtain the grid view that the basis is defined on.   | |
| void | update (const GridView &gv) | 
| Update the stored grid view, to be called if the grid has changed.   | |
| Node | makeNode () const | 
| Create tree node.   | |
| size_type | maxNodeSize () const | 
| Get the maximal number of DOFs associated to node for any element.   | |
| template<typename It > | |
| It | indices (const Node &node, It it) const | 
| Maps from subtree index set [0..size-1] to a globally unique multi index in global basis.   | |
| unsigned int | dimension () const | 
| Total number of B-spline basis functions.   | |
| unsigned int | size (size_t d) const | 
| Number of shape functions in one direction.   | |
| void | evaluateFunction (const FieldVector< typename GV::ctype, dim > &in, std::vector< FieldVector< R, 1 > > &out, const std::array< unsigned, dim > ¤tKnotSpan) const | 
| Evaluate all B-spline basis functions at a given point.   | |
| void | evaluateJacobian (const FieldVector< typename GV::ctype, dim > &in, std::vector< FieldMatrix< R, 1, dim > > &out, const std::array< unsigned, dim > ¤tKnotSpan) const | 
| Evaluate Jacobian of all B-spline basis functions.   | |
| template<size_type k> | |
| void | evaluate (const typename std::array< int, k > &directions, const FieldVector< typename GV::ctype, dim > &in, std::vector< FieldVector< R, 1 > > &out, const std::array< unsigned, dim > ¤tKnotSpan) const | 
| Evaluate Derivatives of all B-spline basis functions.   | |
| size_type | size (const SizePrefix &prefix) const | 
| Return number of possible values for next position in multi index.   | |
| size_type | size () const | 
| Get the total dimension of the space spanned by this basis.   | |
| auto | containerDescriptor () const | 
| Return a flat container-descriptor.   | |
Static Public Member Functions | |
| static std::array< unsigned int, dim > | getIJK (typename GridView::IndexSet::IndexType idx, std::array< unsigned int, dim > elements) | 
| Compute integer element coordinates from the element index.   | |
| static void | evaluateFunction (const typename GV::ctype &in, std::vector< R > &out, const std::vector< R > &knotVector, unsigned int order, unsigned int currentKnotSpan) | 
| Evaluate all one-dimensional B-spline functions for a given coordinate direction.   | |
| static void | evaluateFunctionFull (const typename GV::ctype &in, DynamicMatrix< R > &out, const std::vector< R > &knotVector, unsigned int order, unsigned int currentKnotSpan) | 
| Evaluate all one-dimensional B-spline functions for a given coordinate direction.   | |
| static void | evaluateAll (const typename GV::ctype &in, std::vector< R > &out, bool evaluateJacobian, std::vector< R > &outJac, bool evaluateHessian, std::vector< R > &outHess, const std::vector< R > &knotVector, unsigned int order, unsigned int currentKnotSpan) | 
| Evaluate the second derivatives of all one-dimensional B-spline functions for a given coordinate direction.   | |
Public Attributes | |
| std::array< unsigned int, dim > | order_ | 
| Order of the B-spline for each space dimension.   | |
| std::array< std::vector< double >, dim > | knotVectors_ | 
| The knot vectors, one for each space dimension.   | |
| std::array< unsigned, dim > | elements_ | 
| Number of grid elements in the different coordinate directions.   | |
| GridView | gridView_ | 
Static Public Attributes | |
| static constexpr size_type | maxMultiIndexSize | 
| Maximal length of global multi-indices.   | |
| static constexpr size_type | minMultiIndexSize | 
| Minimal length of global multi-indices.   | |
| static constexpr size_type | multiIndexBufferSize | 
| Size required temporarily when constructing global multi-indices.   | |
Pre-basis for B-spline basis.
| GV | The GridView that the space is defined on | 
The BSplinePreBasis can be used to embed a BSplineBasis in a larger basis for the construction of product spaces.
| using Dune::Functions::BSplinePreBasis< GV >::GridView = GV | 
The grid view that the FE space is defined on.
| using Dune::Functions::BSplinePreBasis< GV >::Node = BSplineNode<GV> | 
| using Dune::Functions::BSplinePreBasis< GV >::R = double | 
| using Dune::Functions::BSplinePreBasis< GV >::size_type = std::size_t | 
      
  | 
  inline | 
Construct a B-spline basis for a given grid view and set of knot vectors.
The grid must match the knot vectors, i.e.:
Unfortunately, not all of these conditions can be checked for automatically.
| knotVector | A single knot vector, which will be used for all coordinate directions | 
| order | B-spline order, will be used for all coordinate directions | 
| makeOpen | If this is true, then knots are prepended and appended to the knot vector to make the knot vector 'open'. i.e., start and end with 'order+1' identical knots. Basis functions from such knot vectors are interpolatory at the end of the parameter interval. | 
      
  | 
  inline | 
Construct a B-spline basis for a given grid view with uniform knot vectors.
The grid must match the knot vectors, i.e.:
Unfortunately, not all of these conditions can be checked for automatically.
| gridView | The grid we are defining the basis on | 
| lowerLeft | Lower left corner of the structured grid | 
| upperRight | Upper right corner of the structured grid | 
| elements | Number of elements in each coordinate direction | 
| order | B-spline order, will be used for all coordinate directions | 
| makeOpen | If this is true, then knots are prepended and appended to the knot vector to make the knot vector 'open'. i.e., start and end with 'order+1' identical knots. Basis functions from such knot vectors are interpolatory at the end of the parameter interval. | 
      
  | 
  inlineinherited | 
Return a flat container-descriptor.
      
  | 
  inline | 
Total number of B-spline basis functions.
      
  | 
  inline | 
Evaluate Derivatives of all B-spline basis functions.
      
  | 
  inlinestatic | 
Evaluate the second derivatives of all one-dimensional B-spline functions for a given coordinate direction.
| in | Scalar(!) coordinate where to evaluate the functions | |
| enableEvaluations | switches calculation of desired derivatives on | |
| [out] | out | Vector containing the values of all B-spline derivatives at 'in' | 
| [out] | outJac | Vector containing the first derivatives of all B-spline derivatives at 'in' (only if calculation was switched on by enableEvaluations) | 
| [out] | outHess | Vector containing the second derivatives of all B-spline derivatives at 'in' (only if calculation was switched on by enableEvaluations) | 
      
  | 
  inline | 
Evaluate all B-spline basis functions at a given point.
      
  | 
  inlinestatic | 
Evaluate all one-dimensional B-spline functions for a given coordinate direction.
This implementations was based on the explanations in the book of Cottrell, Hughes, Bazilevs, "Isogeometric Analysis"
| in | Scalar(!) coordinate where to evaluate the functions | |
| [out] | out | Vector containing the values of all B-spline functions at 'in' | 
      
  | 
  inlinestatic | 
Evaluate all one-dimensional B-spline functions for a given coordinate direction.
This implementations was based on the explanations in the book of Cottrell, Hughes, Bazilevs, "Isogeometric Analysis"
| in | Scalar(!) coordinate where to evaluate the functions | |
| [out] | out | Vector containing the values of all B-spline functions at 'in' | 
      
  | 
  inline | 
Evaluate Jacobian of all B-spline basis functions.
In theory this is easy: just look up the formula in a B-spline text of your choice. The challenge is compute only the values needed for the current knot span.
      
  | 
  inlinestatic | 
Compute integer element coordinates from the element index.
      
  | 
  inline | 
Obtain the grid view that the basis is defined on.
      
  | 
  inline | 
Maps from subtree index set [0..size-1] to a globally unique multi index in global basis.
      
  | 
  inline | 
Initialize the global indices.
      
  | 
  inline | 
Create tree node.
      
  | 
  inline | 
Get the maximal number of DOFs associated to node for any element.
      
  | 
  inlineinherited | 
Get the total dimension of the space spanned by this basis.
      
  | 
  inlineinherited | 
Return number of possible values for next position in multi index.
      
  | 
  inline | 
Number of shape functions in one direction.
      
  | 
  inline | 
Update the stored grid view, to be called if the grid has changed.
| std::array<unsigned,dim> Dune::Functions::BSplinePreBasis< GV >::elements_ | 
Number of grid elements in the different coordinate directions.
| GridView Dune::Functions::BSplinePreBasis< GV >::gridView_ | 
| std::array<std::vector<double>, dim> Dune::Functions::BSplinePreBasis< GV >::knotVectors_ | 
The knot vectors, one for each space dimension.
      
  | 
  staticconstexprinherited | 
Maximal length of global multi-indices.
      
  | 
  staticconstexprinherited | 
Minimal length of global multi-indices.
      
  | 
  staticconstexprinherited | 
Size required temporarily when constructing global multi-indices.
| std::array<unsigned int, dim> Dune::Functions::BSplinePreBasis< GV >::order_ | 
Order of the B-spline for each space dimension.