|
|
pure real(wp) function, public | frenet_serret_transform (this, i, xp, yp, zp) |
| |
|
pure real(wp) function, public | frenet_serret_jacobian_matrix (this, i, j, xp, yp, zp) |
| |
|
pure real(wp) function, public | frenet_serret_jacobian (this, xp, yp, zp) |
| |
|
pure real(wp) function, public | frenet_serret_jacobian_matrix_inv (this, i, j, xp, yp, zp) |
| |
|
pure real(wp) function, public | frenet_serret_g_matrix (this, i, j, xp, yp, zp) |
| |
|
pure real(wp) function, public | frenet_serret_g_matrix_inv (this, i, j, xp, yp, zp) |
| |
|
pure real(wp) function, public | frenet_serret_inverse_transform (this, i, x, y, z) |
| |
Frenet-Serret coordinate transformation.
This module implements a coordinate transformation based on a Frenet-Serret frame along a space curve γ(zp). The transformation is defined as:
x(xp, yp, zp) = γ(zp) - R(xp, yp) * S(yp) * N(zp) + R(xp, yp) * C(yp) * M(zp)
where:
- γ(zp) is the base curve parameterized by zp
- T(zp), N(zp), M(zp) are the tangent, normal, and binormal vectors (Frenet-Serret frame)
- R(xp, yp), C(yp), and S(yp) are functions defining the cross-sectional shape
The Frenet-Serret frame is computed from the curve γ using:
- T = γ' / ||γ'|| (unit tangent)
- N = T' / ||T'|| (unit normal)
- M = T × N (unit binormal)
- κ = ||γ' × γ''|| / ||γ'||³ (curvature)
- τ = (γ' × γ'') · γ''' / ||γ' × γ''||² (torsion)
Parameters:
- R0_pert :: real(wp)
- R1 :: real(wp)
- R1_pert :: real(wp)
- n0 :: integer
- n1 :: integer
- Note
- This module was automatically generated by frenet_serret_generate.jl