chrono::ChBasisToolsBSplineSurfaces Class Reference

Description

Tools for evaluating basis functions for tensor-product surface B-splines, parametrized with parameters u,v (as lines) These bases are often called "R" in literature.

#include <ChBasisToolsBSpline.h>

Static Public Member Functions

static void BasisEvaluate (const int p_u, const int p_v, const double u, const double v, const ChVectorDynamic<> &Knots_u, const ChVectorDynamic<> &Knots_v, ChMatrixDynamic<> &R)
Compute vector of bases R. More...

static void BasisEvaluateDeriv (const int p_u, const int p_v, const double u, const double v, const ChVectorDynamic<> &Knots_u, const ChVectorDynamic<> &Knots_v, ChMatrixDynamic<> &R, ChMatrixDynamic<> &dRdu, ChMatrixDynamic<> &dRdv)
Compute vector of bases R and their first derivatives. More...

static void BasisEvaluateDeriv (const int p_u, const int p_v, const double u, const double v, const ChVectorDynamic<> &Knots_u, const ChVectorDynamic<> &Knots_v, ChMatrixDynamic<> &R, ChMatrixDynamic<> &dRdu, ChMatrixDynamic<> &dRdv, ChMatrixDynamic<> &d2Rdudu, ChMatrixDynamic<> &d2Rdvdv, ChMatrixDynamic<> &d2Rdudv)
Compute vector of bases R and their first and second derivatives. More...

◆ BasisEvaluate()

 static void chrono::ChBasisToolsBSplineSurfaces::BasisEvaluate ( const int p_u, const int p_v, const double u, const double v, const ChVectorDynamic<> & Knots_u, const ChVectorDynamic<> & Knots_v, ChMatrixDynamic<> & R )
inlinestatic

Compute vector of bases R.

Evaluate ALL the (pu+1) * (pv+1) nonzero basis functions R of a 2D(surface) B-plines, at the needed u-v knot span, given the parameters u,v, the orders p_u p_v, the knot vector Knots_u, Knots_v. Results go into the matrix R = { R11, R12, R13.... ; R21, R22, R23....; ... } where u increases along columns, v along rows.

Parameters
 p_u order u p_v order v u parameter u v parameter u Knots_u knots u Knots_v knots vu R here return bases (u increases along columns, v along rows)

◆ BasisEvaluateDeriv() [1/2]

 static void chrono::ChBasisToolsBSplineSurfaces::BasisEvaluateDeriv ( const int p_u, const int p_v, const double u, const double v, const ChVectorDynamic<> & Knots_u, const ChVectorDynamic<> & Knots_v, ChMatrixDynamic<> & R, ChMatrixDynamic<> & dRdu, ChMatrixDynamic<> & dRdv )
inlinestatic

Compute vector of bases R and their first derivatives.

Evaluate ALL the (pu+1) * (pv+1) nonzero basis functions R of a 2D(surface) B-splines, at the needed u-v knot span, given the parameters u,v, the orders p_u p_v, the knot vector Knots_u, Knots_v. Results go into the matrix R = { R11, R12, R13.... ; R21, R22, R23....; ... } where u increases along columns, v along rows. Same for the derivatives in dRdu and dRdv.

Parameters
 p_u order u p_v order v u parameter u v parameter u Knots_u knots u Knots_v knots vu R here return bases (u increases along columns, v along rows) dRdu here return du-derivatives (u increases along columns, v along rows) dRdv here return dv-derivatives (u increases along columns, v along rows)

◆ BasisEvaluateDeriv() [2/2]

 static void chrono::ChBasisToolsBSplineSurfaces::BasisEvaluateDeriv ( const int p_u, const int p_v, const double u, const double v, const ChVectorDynamic<> & Knots_u, const ChVectorDynamic<> & Knots_v, ChMatrixDynamic<> & R, ChMatrixDynamic<> & dRdu, ChMatrixDynamic<> & dRdv, ChMatrixDynamic<> & d2Rdudu, ChMatrixDynamic<> & d2Rdvdv, ChMatrixDynamic<> & d2Rdudv )
inlinestatic

Compute vector of bases R and their first and second derivatives.

Evaluate ALL the (pu+1) * (pv+1) nonzero basis functions R of a 2D(surface) B-splines, at the needed u-v knot span, given the parameters u,v, the orders p_u p_v, the knot vector Knots_u, Knots_v, the weights Weights. Results go into the matrix R = { R11, R12, R13.... ; R21, R22, R23....; ... } where u increases along columns, v along rows. Same for the derivatives.

Parameters
 p_u order u p_v order v u parameter u v parameter u Knots_u knots u Knots_v knots vu R here return bases (u increases along columns, v along rows) dRdu here return du-derivatives (u increases along columns, v along rows) dRdv here return dv-derivatives (u increases along columns, v along rows) d2Rdudu here return dudu-second derivatives (u increases along columns, v along rows) d2Rdvdv here return dvdv-second derivatives (u increases along columns, v along rows) d2Rdudv here return dudv-second derivatives (u increases along columns, v along rows)

The documentation for this class was generated from the following file:
• /builds/uwsbel/chrono/src/chrono/geometry/ChBasisToolsBSpline.h