BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::Bezier Class Reference

#include <cl_Bezier.hpp>

Public Member Functions

 Bezier (const real aX0=0.0, const real aY0=0.0, const real adYdx0=0.0, const real aX1=1.0, const real aY1=1.0, const real adYdx1=0.0, const BezierType aType=BezierType::Horizontal)
 Bezier (const Vector< real > &aX, const Vector< real > &aY, const BezierType aType=BezierType::Horizontal)
 ~Bezier ()=default
Vector< real > & basis_x ()
 expose the x-coordinates of the basis
const Vector< real > & basis_x () const
Vector< real > & basis_y ()
 expose the y-coordinates of the basis
const Vector< real > & basis_y () const
real x_by_xi (const real aXi) const
 The parameter coordinate goes from -1 <= xi <= 1.
real y_by_xi (const real aXi) const
 The parameter coordinate goes from -1 <= xi <= 1.
real xi_by_x (const real aX) const
 Inverts the function x_by_xi.
real xi_by_y (const real aY) const
 Inverts the function y_by_xi.
real x (const real aY) const
 x-coordinate as funciton of the y-coordinate
real y (const real aX) const
 y-coordinate as funciton of the x-coordinate
void point (const real aXi, real &aX, real &aY) const
 point as function of parameter coordinate
void dpoint (const real aXi, real &adXdXi, real &adYdXi) const
 tangent vector as function of parameter coordinate
void ddpoint (const real aXi, real &ad2XdXi2, real &ad2YdXi2) const
 curvature vector as function of parameter coordinate
void dddpoint (real &ad3XdXi3, real &ad3YdXi3) const
 aberrancy vector as function of parameter coordinate
real dydx (const real aX) const
 derivative of Y with respect to X
real dxdy (const real aY) const
 derivative of X with respect to Y
real d2ydx2 (const real aX) const
 second derivative of Y with respect to X
real d2xdy2 (const real aY) const
 second derivative of X with respect to Y
real d3ydx3 (const real aX) const
 third derivative of Y with respect to X
real d3xdy3 (const real aY) const
 third derivative of X with respect to Y
real compute_length (const uint aNumIntegrationPoints=21) const
 computes the length of the curve
real compute_length (const Vector< double > &aW, const Vector< double > &aXi) const
 computes the length of the curve, but provide points and weights note that we need the doubles here, not the reals
void compute_basis_xwise (const real aX0, const real aY0, const real adYdx0, const real aX1, const real aY1, const real adYdx1)
void compute_basis_ywise (const real aX0, const real aY0, const real adYdx0, const real aX1, const real aY1, const real adYdx1)

Constructor & Destructor Documentation

◆ Bezier() [1/2]

belfem::Bezier::Bezier ( const real aX0 = 0.0,
const real aY0 = 0.0,
const real adYdx0 = 0.0,
const real aX1 = 1.0,
const real aY1 = 1.0,
const real adYdx1 = 0.0,
const BezierType aType = BezierType::Horizontal )

◆ Bezier() [2/2]

belfem::Bezier::Bezier ( const Vector< real > & aX,
const Vector< real > & aY,
const BezierType aType = BezierType::Horizontal )

◆ ~Bezier()

belfem::Bezier::~Bezier ( )
default

Member Function Documentation

◆ basis_x() [1/2]

Vector< real > & belfem::Bezier::basis_x ( )
inline

expose the x-coordinates of the basis

◆ basis_x() [2/2]

const Vector< real > & belfem::Bezier::basis_x ( ) const
inline

◆ basis_y() [1/2]

Vector< real > & belfem::Bezier::basis_y ( )
inline

expose the y-coordinates of the basis

◆ basis_y() [2/2]

const Vector< real > & belfem::Bezier::basis_y ( ) const
inline

◆ compute_basis_xwise()

void belfem::Bezier::compute_basis_xwise ( const real aX0,
const real aY0,
const real adYdx0,
const real aX1,
const real aY1,
const real adYdx1 )

◆ compute_basis_ywise()

void belfem::Bezier::compute_basis_ywise ( const real aX0,
const real aY0,
const real adYdx0,
const real aX1,
const real aY1,
const real adYdx1 )

◆ compute_length() [1/2]

real belfem::Bezier::compute_length ( const uint aNumIntegrationPoints = 21) const

computes the length of the curve

◆ compute_length() [2/2]

real belfem::Bezier::compute_length ( const Vector< double > & aW,
const Vector< double > & aXi ) const

computes the length of the curve, but provide points and weights note that we need the doubles here, not the reals

computes the length of the curve, but provide points and weights

◆ d2xdy2()

real belfem::Bezier::d2xdy2 ( const real aY) const

second derivative of X with respect to Y

Parameters
aY
Returns
second derivative of X

◆ d2ydx2()

real belfem::Bezier::d2ydx2 ( const real aX) const

second derivative of Y with respect to X

Parameters
aX
Returns
aY

◆ d3xdy3()

real belfem::Bezier::d3xdy3 ( const real aY) const

third derivative of X with respect to Y

Parameters
aY
Returns
aX

◆ d3ydx3()

real belfem::Bezier::d3ydx3 ( const real aX) const

third derivative of Y with respect to X

Parameters
aX
Returns
aY

◆ dddpoint()

void belfem::Bezier::dddpoint ( real & ad3XdXi3,
real & ad3YdXi3 ) const

aberrancy vector as function of parameter coordinate

Parameters
ad3XdXi3
ad3YdXi3

◆ ddpoint()

void belfem::Bezier::ddpoint ( const real aXi,
real & ad2XdXi2,
real & ad2YdXi2 ) const

curvature vector as function of parameter coordinate

Parameters
aXi
ad2XdXi2
ad2YdXi2

◆ dpoint()

void belfem::Bezier::dpoint ( const real aXi,
real & adXdXi,
real & adYdXi ) const

tangent vector as function of parameter coordinate

Parameters
aXi
adXdXi
adYdXi

◆ dxdy()

real belfem::Bezier::dxdy ( const real aY) const

derivative of X with respect to Y

Parameters
aY
Returns
aX

◆ dydx()

real belfem::Bezier::dydx ( const real aX) const

derivative of Y with respect to X

Parameters
aX
Returns
aY

◆ point()

void belfem::Bezier::point ( const real aXi,
real & aX,
real & aY ) const

point as function of parameter coordinate

Parameters
aXi
aX
aY

◆ x()

real belfem::Bezier::x ( const real aY) const

x-coordinate as funciton of the y-coordinate

Parameters
aY
Returns

◆ x_by_xi()

real belfem::Bezier::x_by_xi ( const real aXi) const

The parameter coordinate goes from -1 <= xi <= 1.

This funciton computes the spatial x-coordinate

Parameters
aXi
Returns
aX

◆ xi_by_x()

real belfem::Bezier::xi_by_x ( const real aX) const

Inverts the function x_by_xi.

Queries outside [ mX(0), mX(3) ] saturate to xi = -1 / xi = +1.

Parameters
aX
Returns
aXi

◆ xi_by_y()

real belfem::Bezier::xi_by_y ( const real aY) const

Inverts the function y_by_xi.

Queries outside [ mY(0), mY(3) ] saturate to xi = -1 / xi = +1.

Parameters
aY
Returns
aXi

◆ y()

real belfem::Bezier::y ( const real aX) const

y-coordinate as funciton of the x-coordinate

Parameters
aX
Returns

◆ y_by_xi()

real belfem::Bezier::y_by_xi ( const real aXi) const

The parameter coordinate goes from -1 <= xi <= 1.

This funciton computes the spatial y-coordinate

Parameters
aXi
Returns
aY

The documentation for this class was generated from the following files: