map_to_torus_sineZ Subroutine

pure subroutine map_to_torus_sineZ(this, c, R, twist_turns, Az, nwaves_z, phase_z)

Map a straight pipe (ring extruded in ) onto a toroidal pipe with: • cross-section twist: , • vertical wobble: .

Parameterization: For the axial (k) index, define and the torus angle (here one full loop since ):

For each control point , relative to , set , , then .

Mapping onto a torus of major radius :

Knots/weights are preserved; only the control points are updated.

Arguments

Type IntentOptional Attributes Name
type(nurbs_volume), intent(inout) :: this
real(kind=rk), intent(in) :: c(3)
real(kind=rk), intent(in) :: R
real(kind=rk), intent(in) :: twist_turns
real(kind=rk), intent(in) :: Az
integer, intent(in) :: nwaves_z
real(kind=rk), intent(in) :: phase_z

Calls

proc~~map_to_torus_sinez~~CallsGraph proc~map_to_torus_sinez map_to_torus_sineZ none~get_knot~3 nurbs_volume%get_knot proc~map_to_torus_sinez->none~get_knot~3 none~get_nc~3 nurbs_volume%get_nc proc~map_to_torus_sinez->none~get_nc~3 none~get_wc~3 nurbs_volume%get_Wc proc~map_to_torus_sinez->none~get_wc~3 none~get_xc~3 nurbs_volume%get_Xc proc~map_to_torus_sinez->none~get_xc~3 none~set~3 nurbs_volume%set proc~map_to_torus_sinez->none~set~3 proc~is_rational~3 nurbs_volume%is_rational proc~map_to_torus_sinez->proc~is_rational~3 proc~get_knot_all~3 nurbs_volume%get_knot_all none~get_knot~3->proc~get_knot_all~3 proc~get_knoti~3 nurbs_volume%get_knoti none~get_knot~3->proc~get_knoti~3 proc~get_nc_all~2 nurbs_volume%get_nc_all none~get_nc~3->proc~get_nc_all~2 proc~get_nc_dir~2 nurbs_volume%get_nc_dir none~get_nc~3->proc~get_nc_dir~2 proc~get_wc_all~3 nurbs_volume%get_Wc_all none~get_wc~3->proc~get_wc_all~3 proc~get_wci~3 nurbs_volume%get_Wci none~get_wc~3->proc~get_wci~3 proc~get_xc_all~3 nurbs_volume%get_Xc_all none~get_xc~3->proc~get_xc_all~3 proc~get_xcid~3 nurbs_volume%get_Xcid none~get_xc~3->proc~get_xcid~3 proc~get_xci~3 nurbs_volume%get_Xci none~get_xc~3->proc~get_xci~3 proc~set1~3 nurbs_volume%set1 none~set~3->proc~set1~3 proc~set2~3 nurbs_volume%set2 none~set~3->proc~set2~3 proc~set3~3 nurbs_volume%set3 none~set~3->proc~set3~3 proc~set4~3 nurbs_volume%set4 none~set~3->proc~set4~3 interface~compute_multiplicity compute_multiplicity proc~get_nc_dir~2->interface~compute_multiplicity proc~cmp_degree~3 nurbs_volume%cmp_degree proc~set1~3->proc~cmp_degree~3 proc~cmp_nc~3 nurbs_volume%cmp_nc proc~set1~3->proc~cmp_nc~3 set set proc~set1~3->set proc~set2~3->proc~cmp_nc~3 proc~compute_knot_vector compute_knot_vector proc~set2~3->proc~compute_knot_vector proc~set2~3->set proc~set3~3->proc~cmp_degree~3 proc~set3~3->set proc~set4~3->set proc~compute_multiplicity1 compute_multiplicity1 interface~compute_multiplicity->proc~compute_multiplicity1 proc~compute_multiplicity2 compute_multiplicity2 interface~compute_multiplicity->proc~compute_multiplicity2 proc~cmp_degree~3->set proc~get_multiplicity~3 nurbs_volume%get_multiplicity proc~cmp_degree~3->proc~get_multiplicity~3 proc~cmp_nc~3->interface~compute_multiplicity proc~cmp_nc~3->set proc~repelem repelem proc~compute_knot_vector->proc~repelem proc~get_multiplicity~3->interface~compute_multiplicity

Called by

proc~~map_to_torus_sinez~~CalledByGraph proc~map_to_torus_sinez map_to_torus_sineZ program~example_toroidal_pipe example_toroidal_pipe program~example_toroidal_pipe->proc~map_to_torus_sinez