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.
 
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.
 
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.
 

Member Function Documentation

◆ BasisEvaluate()

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

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)

◆ BasisEvaluateDeriv() [1/2]

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

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

◆ BasisEvaluateDeriv() [2/2]

static void chrono::ChBasisToolsNurbs::BasisEvaluateDeriv ( const int p,
const double u,
const ChVectorDynamic<> & Weights,
const ChVectorDynamic<> & Knots,
ChVectorDynamic<> & R,
ChVectorDynamic<> & dRdu,
ChVectorDynamic<> & ddRddu )
inlinestatic

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

The documentation for this class was generated from the following file:
  • C:/M/B/src/chrono-9.0.1/src/chrono/geometry/ChBasisToolsNurbs.h