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

Public Member Functions

 __init__ (self, PlanarSpiral spiral, inner_lead=None, outer_lead=None, float release=0.0)
str piece (self, float s)
np.ndarray r (self, float s)
np.ndarray v (self, float s)
np.ndarray a (self, float s)
np.ndarray b (self, float s)
 frame (self, float s)
 curvatures (self, float s)
float speed (self, float s)
float segment_length (self, float ta, float tb, int nsub=1)
float length (self)
np.ndarray equidistant (self, int n)
np.ndarray sample_spacing (self, float ds, bool include_breakpoints=True)
 connector_states (self)
Public Member Functions inherited from pancake.basecurve.Basecurve
 __init__ (self, float tmin=0.0, float tmax=1.0)
np.ndarray sample (self, int n)
 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

 spiral = spiral
 inner = None
 outer = None
 release = float(release)
float L_inner = self.inner.length if self.inner is not None else 0.0
 L_spiral = spiral.tmax - spiral.tmin
float L_outer = self.outer.length if self.outer is not None else 0.0
float s_spiral0 = self.L_inner
float s_spiral1 = self.L_inner + self.L_spiral
 breakpoints = np.array(bp)
Public Attributes inherited from pancake.basecurve.Basecurve
 tmin = float(tmin)
 tmax = float(tmax)
np.ndarray t = None

Protected Member Functions

 _inner (self, float s)
Protected Member Functions inherited from pancake.basecurve.Basecurve
int _nsub_default (self)

Detailed Description

Parameters
----------
spiral : PlanarSpiral
inner_lead, outer_lead : list of Segment (or a Lead), described in the direction
    that leaves the coil; None for a free end
release : length over which the curvature of the winding is faded to zero
    before the user segments start (0 = tape leaves tangentially with a
    curvature jump; the curve is then only C^1 at the junction)

Constructor & Destructor Documentation

◆ __init__()

pancake.pancake.PancakeCurve.__init__ ( self,
PlanarSpiral spiral,
inner_lead = None,
outer_lead = None,
float release = 0.0 )

Member Function Documentation

◆ _inner()

pancake.pancake.PancakeCurve._inner ( self,
float s )
protected
Forward quantities of the reversed inner lead at global s.

With s_L = L_in - s and the leaving-direction lead quantities (r, v_L, a_L, j_L),
frame (T_L, n_L, b_L) and curvatures (tau_L, kg_L, kn_L):
    r = r,  v = -v_L,  a = a_L,  jerk = -j_L
    T = -T_L,  n = -n_L,  b = b_L        (right handed)
    tau = tau_L,  kappa_g = kg_L,  kappa_n = -kn_L

◆ a()

np.ndarray pancake.pancake.PancakeCurve.a ( self,
float s )

Reimplemented from pancake.basecurve.Basecurve.

◆ b()

np.ndarray pancake.pancake.PancakeCurve.b ( self,
float s )

Reimplemented from pancake.basecurve.Basecurve.

◆ connector_states()

pancake.pancake.PancakeCurve.connector_states ( self)
(r, T, n, b) at the two free ends of the curve (inner first).

◆ curvatures()

pancake.pancake.PancakeCurve.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 from pancake.basecurve.Basecurve.

◆ equidistant()

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

Reimplemented from pancake.basecurve.Basecurve.

◆ frame()

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

Reimplemented from pancake.basecurve.Basecurve.

◆ length()

float pancake.pancake.PancakeCurve.length ( self)

Reimplemented from pancake.basecurve.Basecurve.

◆ piece()

str pancake.pancake.PancakeCurve.piece ( self,
float s )

◆ r()

np.ndarray pancake.pancake.PancakeCurve.r ( self,
float s )

Reimplemented from pancake.basecurve.Basecurve.

◆ sample_spacing()

np.ndarray pancake.pancake.PancakeCurve.sample_spacing ( self,
float ds,
bool include_breakpoints = True )
Sample parameters with spacing ~ds, snapped so that breakpoints are hit exactly.

◆ segment_length()

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

Reimplemented from pancake.basecurve.Basecurve.

◆ speed()

float pancake.pancake.PancakeCurve.speed ( self,
float s )

Reimplemented from pancake.basecurve.Basecurve.

◆ v()

np.ndarray pancake.pancake.PancakeCurve.v ( self,
float s )

Reimplemented from pancake.basecurve.Basecurve.

Member Data Documentation

◆ breakpoints

pancake.pancake.PancakeCurve.breakpoints = np.array(bp)

◆ inner

pancake.pancake.PancakeCurve.inner = None

◆ L_inner

float pancake.pancake.PancakeCurve.L_inner = self.inner.length if self.inner is not None else 0.0

◆ L_outer

float pancake.pancake.PancakeCurve.L_outer = self.outer.length if self.outer is not None else 0.0

◆ L_spiral

pancake.pancake.PancakeCurve.L_spiral = spiral.tmax - spiral.tmin

◆ outer

pancake.pancake.PancakeCurve.outer = None

◆ release

pancake.pancake.PancakeCurve.release = float(release)

◆ s_spiral0

pancake.pancake.PancakeCurve.s_spiral0 = self.L_inner

◆ s_spiral1

pancake.pancake.PancakeCurve.s_spiral1 = self.L_inner + self.L_spiral

◆ spiral

pancake.pancake.PancakeCurve.spiral = spiral

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