BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
pancake.basecurve.Basecurve Class Reference
Inheritance diagram for pancake.basecurve.Basecurve:
[legend]

Public Member Functions

 __init__ (self, float tmin=0.0, float tmax=1.0)
np.ndarray r (self, float t)
np.ndarray v (self, float t)
np.ndarray a (self, float t)
np.ndarray b (self, float t)
float speed (self, float t)
float segment_length (self, float ta, float tb, int nsub=1)
float length (self)
np.ndarray equidistant (self, int n)
np.ndarray sample (self, int n)
 frame (self, float t)
 curvatures (self, float t)
 kappa_tau (self, float t)
 twisted_frame (self, float t, float theta_T=0.0)
np.ndarray transform (self, float t, float theta_T=0.0)
 strip_curvatures (self, float t, float theta_T=0.0, float dtheta_T_ds=0.0)
np.ndarray darboux (self, float t)

Public Attributes

 tmin = float(tmin)
 tmax = float(tmax)
np.ndarray t = None

Protected Member Functions

int _nsub_default (self)

Detailed Description

Regular space curve r(t) on [tmin, tmax] with derivatives v, a, b.

Subclasses implement

    r(t) -> position            (3,)
    v(t) -> dr/dt               (3,)
    a(t) -> d2r/dt2             (3,)
    b(t) -> d3r/dt3 ("jerk")    (3,)

The parameter t need not be the arc length, but all frame quantities are
computed such that they are invariant under reparametrization.

Constructor & Destructor Documentation

◆ __init__()

pancake.basecurve.Basecurve.__init__ ( self,
float tmin = 0.0,
float tmax = 1.0 )

Member Function Documentation

◆ _nsub_default()

int pancake.basecurve.Basecurve._nsub_default ( self)
protected

◆ a()

np.ndarray pancake.basecurve.Basecurve.a ( self,
float t )

◆ b()

np.ndarray pancake.basecurve.Basecurve.b ( self,
float t )

◆ curvatures()

pancake.basecurve.Basecurve.curvatures ( self,
float t )
Curvature parameters (tau, kappa_g, kappa_n) of the frame returned by `frame`.

For the Frenet frame this is (tau, 0, kappa), Eq. (3.30).

Reimplemented in pancake.basecurve.RigidTransform, pancake.pancake.PancakeCurve, and pancake.spiral.PlanarSpiral.

◆ darboux()

np.ndarray pancake.basecurve.Basecurve.darboux ( self,
float t )
Darboux vector of the strip frame in space coordinates: tau T + kappa_g n + kappa_n b.

◆ equidistant()

np.ndarray pancake.basecurve.Basecurve.equidistant ( self,
int n )
Parameters t_0..t_{n-1} such that the arc length between neighbours is constant.

Reimplemented in pancake.basecurve.RigidTransform, pancake.pancake.PancakeCurve, and pancake.spiral.PlanarSpiral.

◆ frame()

pancake.basecurve.Basecurve.frame ( self,
float t )
Strip frame (T, n, b).  Default: Frenet frame (T, N, B), Eq. (3.29).

Reimplemented in pancake.basecurve.RigidTransform, pancake.pancake.PancakeCurve, and pancake.spiral.PlanarSpiral.

◆ kappa_tau()

pancake.basecurve.Basecurve.kappa_tau ( self,
float t )
Frenet curvature and torsion, Eq. (3.30).

◆ length()

float pancake.basecurve.Basecurve.length ( self)

◆ r()

np.ndarray pancake.basecurve.Basecurve.r ( self,
float t )

◆ sample()

np.ndarray pancake.basecurve.Basecurve.sample ( self,
int n )
Store and return n parameters with equal arc-length spacing.

◆ segment_length()

float pancake.basecurve.Basecurve.segment_length ( self,
float ta,
float tb,
int nsub = 1 )
Arc length between ta and tb by composite 7-point Gauss-Legendre.

Reimplemented in pancake.pancake.PancakeCurve, and pancake.spiral.PlanarSpiral.

◆ speed()

float pancake.basecurve.Basecurve.speed ( self,
float t )

◆ strip_curvatures()

pancake.basecurve.Basecurve.strip_curvatures ( self,
float t,
float theta_T = 0.0,
float dtheta_T_ds = 0.0 )
(tau*, kappa_g*, kappa_n*) of the twisted strip, Eqs. (19.30), (19.34), (19.35).

◆ transform()

np.ndarray pancake.basecurve.Basecurve.transform ( self,
float t,
float theta_T = 0.0 )
Rotation matrix mapping local cross-section coordinates to space.

Column 0: b*  (tape width direction)
Column 1: -n* (tape thickness direction)
Column 2: T   (tape length direction)

Local coordinates (x0, y0, 0) of a cross section are mapped by
r(t) + R @ (x0, y0, 0).  The triple (b, -n, T) is right handed.

◆ twisted_frame()

pancake.basecurve.Basecurve.twisted_frame ( self,
float t,
float theta_T = 0.0 )
Frame (T, n*, b*) after twisting about T by theta_T, Eqs. (19.31)-(19.33).

◆ v()

np.ndarray pancake.basecurve.Basecurve.v ( self,
float t )

Member Data Documentation

◆ t

np.ndarray pancake.basecurve.Basecurve.t = None

◆ tmax

pancake.basecurve.Basecurve.tmax = float(tmax)

◆ tmin

pancake.basecurve.Basecurve.tmin = float(tmin)

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