chrono::geometry::ChBasisToolsNurbs Class Reference

Description

Tools for evaluating basis functions for NURBS, parametrized with parameter u (as lines) These bases are often called "R" in literature.

#include <ChBasisToolsNurbs.h>

Static Public Member Functions

static void BasisEvaluate (const int p, const double u, const ChVectorDynamic<> &Weights, const ChVectorDynamic<> &Knots, ChVectorDynamic<> &R)
 Compute vector of bases R. More...
 
static void BasisEvaluateDeriv (const int p, const double u, const ChVectorDynamic<> &Weights, const ChVectorDynamic<> &Knots, ChVectorDynamic<> &R, ChVectorDynamic<> &dRdu)
 Compute vector of bases R and their first derivatives. More...
 
static void BasisEvaluateDeriv (const int p, const double u, const ChVectorDynamic<> &Weights, const ChVectorDynamic<> &Knots, ChVectorDynamic<> &R, ChVectorDynamic<> &dRdu, ChVectorDynamic<> &ddRddu)
 Compute vector of bases R and their first and second derivatives. More...
 

Member Function Documentation

static void chrono::geometry::ChBasisToolsNurbs::BasisEvaluate ( const int  p,
const double  u,
const ChVectorDynamic<> &  Weights,
const ChVectorDynamic<> &  Knots,
ChVectorDynamic<> &  R 
)
static

Compute vector of bases R.

Evaluate ALL the p+1 nonzero basis functions R of a 1D(line) NURBS, at the i-th knot span, given the parameter u, the order p, the knot vector Knots, the weights Weights. Results go into the row vector R = { R1, R2, R3.... R_(p+1) }

Parameters
porder
uparameter
Weightsweights
Knotsknots
Rhere return basis functions R evaluated at u, that is: R(u)
static void chrono::geometry::ChBasisToolsNurbs::BasisEvaluateDeriv ( const int  p,
const double  u,
const ChVectorDynamic<> &  Weights,
const ChVectorDynamic<> &  Knots,
ChVectorDynamic<> &  R,
ChVectorDynamic<> &  dRdu 
)
static

Compute vector of bases R and their first derivatives.

Evaluate ALL the p+1 nonzero basis functions R of a 1D(line) NURBS, at the i-th knot span, given the parameter u, the order p, the knot vector Knots, the weights Weights Results go into the row vector R = { R1, R2, R3, , .... R_(p+1) } and into the row vector dR/du = { dR1/du, dR2/du, dR3/du, .... dR_(p+1)/du }

Parameters
porder
uparameter
Weightsweights
Knotsknots
Rhere return basis functions R evaluated at u, that is: R(u)
dRduhere return basis functions derivatives dR/du evaluated at u
static void chrono::geometry::ChBasisToolsNurbs::BasisEvaluateDeriv ( const int  p,
const double  u,
const ChVectorDynamic<> &  Weights,
const ChVectorDynamic<> &  Knots,
ChVectorDynamic<> &  R,
ChVectorDynamic<> &  dRdu,
ChVectorDynamic<> &  ddRddu 
)
static

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

Evaluate ALL the p+1 nonzero basis functions R of a 1D(line) NURBS, at the i-th knot span, given the parameter u, the order p, the knot vector Knots, the weights Weights Results go into the row vector R = { R1, R2, R3, , .... R_(p+1) } and into the row vector dR/du = { dR1/du, dR2/du, dR3/du, .... dR_(p+1)/du } and into the row vector ddR/ddu={ ddR1/ddu, ddR2/ddu, ddR3/ddu, .... ddR_(p+1)/ddu }

Parameters
porder
uparameter
Weightsweights
Knotsknots
Rhere return basis functions R evaluated at u, that is: R(u)
dRduhere return basis functions derivatives dR/du evaluated at u
ddRdduhere return basis functions derivatives ddR/ddu evaluated at u