AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::primal::KnotVector< T >::DerivativeBasisWorkspace Struct Reference

Scratch storage for derivativeBasisFunctionsBySpan(...) More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/primal/geometry/KnotVector.hpp>

Public Member Functions

void ensure (int deg, int n)
 

Public Attributes

axom::Array< T > ders
 Derivative table of size (n+1) x (p+1) (row-major, derivative-order major) More...
 
axom::Array< T > ndu
 Basis-function triangle from Algorithm A2.2 of size (p+1) x (p+1) (row-major) More...
 
axom::Array< T > a
 Alternating coefficient rows from Algorithm A2.3 of size 2 x (p+1) (row-major) More...
 
axom::Array< T > left
 Left/right distance buffers from Algorithm A2.2 of length p+1 More...
 
axom::Array< T > right
 

Detailed Description

template<typename T>
struct axom::primal::KnotVector< T >::DerivativeBasisWorkspace

Scratch storage for derivativeBasisFunctionsBySpan(...)

Stores intermediate tables from Algorithms A2.2/A2.3 ("The NURBS Book") in contiguous, row-major buffers to avoid per-call dynamic allocations.

Typical usage is to keep one instance per thread (e.g. thread_local) and reuse it across evaluations.

Member Function Documentation

◆ ensure()

Member Data Documentation

◆ ders

template<typename T >
axom::Array<T> axom::primal::KnotVector< T >::DerivativeBasisWorkspace::ders

Derivative table of size (n+1) x (p+1) (row-major, derivative-order major)

◆ ndu

template<typename T >
axom::Array<T> axom::primal::KnotVector< T >::DerivativeBasisWorkspace::ndu

Basis-function triangle from Algorithm A2.2 of size (p+1) x (p+1) (row-major)

◆ a

template<typename T >
axom::Array<T> axom::primal::KnotVector< T >::DerivativeBasisWorkspace::a

Alternating coefficient rows from Algorithm A2.3 of size 2 x (p+1) (row-major)

◆ left

template<typename T >
axom::Array<T> axom::primal::KnotVector< T >::DerivativeBasisWorkspace::left

Left/right distance buffers from Algorithm A2.2 of length p+1

◆ right

template<typename T >
axom::Array<T> axom::primal::KnotVector< T >::DerivativeBasisWorkspace::right

The documentation for this struct was generated from the following file: