BSpline Finite Element Exterior Calculus
Loading...
Searching...
No Matches
m_coord_transform_frenet_serret Module Reference

Frenet-Serret coordinate transformation. More...

Data Types

interface  frenetserrettransform
 Derived type for Frenet-Serret coordinate transformation. More...
 

Functions/Subroutines

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)
 

Detailed Description

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