IFEM  90A354
Enumerations | Functions
SplineUtils Namespace Reference

Various utility functions on spline objects. More...

Enumerations

enum class  AdjustOp { Lower , Original , Raise }
 Enumeration of basis adjustment operations. More...
 

Functions

Vec3 toVec3 (const Go::Point &X, int nsd=3)
 Helper method for casting a Go::Point object to Vec3.
 
Vec4 toVec4 (const Go::Point &X, Real time=Real(0), const double *u=nullptr)
 Helper method for casting a Go::Point and time object to Vec4.
 
void point (Vec3 &X, double u, const Go::SplineCurve *curve)
 Evaluates given spline curve at a parametric point.
 
void point (Vec3 &X, double u, double v, const Go::SplineSurface *surf)
 Evaluates given spline surface at a parametric point.
 
void point (Vec3 &X, double u, double v, double w, const Go::SplineVolume *vol)
 Evaluates given spline colume at a parametric point.
 
void extractBasis (const Go::BasisDerivsSf &spline, Vector &N, Matrix &dNdu)
 Establishes matrices with basis functions and 1st derivatives.
 
void extractBasis (const Go::BasisDerivsSf2 &spline, Vector &N, Matrix &dNdu, Matrix3D &d2Ndu2)
 Establishes matrices with basis functions, 1st and 2nd derivatives.
 
void extractBasis (const Go::BasisDerivsSf3 &spline, Vector &N, Matrix &dNdu, Matrix3D &d2Ndu2, Matrix4D &d3Ndu3)
 Establishes matrices with basis functions, 1st, 2nd and 3rd derivatives.
 
void extractBasis (const Go::BasisDerivs &spline, Vector &N, Matrix &dNdu)
 Establishes matrices with basis functions and 1st derivatives.
 
void extractBasis (const Go::BasisDerivs2 &spline, Vector &N, Matrix &dNdu, Matrix3D &d2Ndu2)
 Establishes matrices with basis functions, 1st and 2nd derivatives.
 
void getGaussParameters (RealArray &uGP, int nGP, const double *xi, const Go::BsplineBasis &basis, bool skipNullSpans=false)
 Extracts parameter values of the Gauss points for a spline basis. More...
 
Go::SplineCurve * project (const Go::SplineCurve *curve, const FunctionBase &f, int nComp=1, Real time=Real(0))
 Projects a spatial function onto a spline curve.
 
Go::SplineSurface * project (const Go::SplineSurface *surface, const FunctionBase &f, int nComp=1, Real time=Real(0))
 Projects a spatial function onto a spline surface.
 
Go::SplineVolume * project (const Go::SplineVolume *volume, const FunctionBase &f, int nComp=1, Real time=Real(0))
 Projects a spatial function onto a spline volume.
 
Go::BsplineBasis adjustBasis (const Go::BsplineBasis &basis, AdjustOp adjust)
 Returns a basis adjusted according to the given operation.
 
std::vector< double > buildKnotVector (int p, const std::vector< double > &simple_knots, const std::vector< int > &continuities)
 Builds a knot vector from a given polynomial order, knots and continuities.
 

Detailed Description

Various utility functions on spline objects.

Enumeration Type Documentation

◆ AdjustOp

enum SplineUtils::AdjustOp
strong

Enumeration of basis adjustment operations.

Enumerator
Lower 

Lower order by one.

Original 

Keep original.

Raise 

Raise order by one.

Function Documentation

◆ getGaussParameters()

void SplineUtils::getGaussParameters ( RealArray uGP,
int  nGP,
const double *  xi,
const Go::BsplineBasis &  basis,
bool  skipNullSpans = false 
)

Extracts parameter values of the Gauss points for a spline basis.

Parameters
[out]uGPParameter values for all points
[in]nGPNumber of Gauss points along a knot-span
[in]xiDimensionless Gauss point coordinates [-1,1]
[in]basisSpline basis to calculate Gauss point parameters for
[in]skipNullSpansIf true, consider non-zero knot spans only

Referenced by ASMs1D::assembleL2matrices(), ASMs2D::assembleL2matrices(), ASMs3D::assembleL2matrices(), ASMs2D::getGaussPointParameters(), ASMs3D::getGaussPointParameters(), ASMs1D::integrate(), ASMs2D::integrate(), ASMs2Dmx::integrate(), ASMs3D::integrate(), ASMs3Dmx::integrate(), ASMs2D::projectSolutionLeastSquare(), ASMs3D::projectSolutionLeastSquare(), and ASMs2D::scRecovery().