bend_pipe Subroutine

pure subroutine bend_pipe(this, center, radius1, radius2, length, rbend, angle_deg)

Bend a straight pipe-like NURBS volume into a circular arc. Each control point is transformed relative to the center . Let the total bend angle in degrees be (input), and define the total bend angle in radians For each control point: Mapping: Knots and weights are preserved; only the control lattice is updated.

Arguments

Type IntentOptional Attributes Name
type(nurbs_volume), intent(inout) :: this

NURBS volume to be bent.

real(kind=rk), intent(in) :: center(3)

Pipe center coordinates .

real(kind=rk), intent(in) :: radius1

Inner radius of the pipe (not used in bending).

real(kind=rk), intent(in) :: radius2

Outer radius of the pipe (not used in bending).

real(kind=rk), intent(in) :: length

Length of the straight pipe segment before bending.

real(kind=rk), intent(in) :: rbend

Bend radius , i.e. distance from the bend centerline.

real(kind=rk), intent(in) :: angle_deg

Bend angle in degrees .


Calls

proc~~bend_pipe~~CallsGraph proc~bend_pipe bend_pipe none~get_knot~2 nurbs_volume%get_knot proc~bend_pipe->none~get_knot~2 none~get_nc~2 nurbs_volume%get_nc proc~bend_pipe->none~get_nc~2 none~get_wc~2 nurbs_volume%get_Wc proc~bend_pipe->none~get_wc~2 none~get_xc~2 nurbs_volume%get_Xc proc~bend_pipe->none~get_xc~2 none~set~2 nurbs_volume%set proc~bend_pipe->none~set~2 proc~is_rational~2 nurbs_volume%is_rational proc~bend_pipe->proc~is_rational~2 proc~get_knot_all~2 nurbs_volume%get_knot_all none~get_knot~2->proc~get_knot_all~2 proc~get_knoti~2 nurbs_volume%get_knoti none~get_knot~2->proc~get_knoti~2 proc~get_nc_all~2 nurbs_volume%get_nc_all none~get_nc~2->proc~get_nc_all~2 proc~get_nc_dir~2 nurbs_volume%get_nc_dir none~get_nc~2->proc~get_nc_dir~2 proc~get_wc_all~2 nurbs_volume%get_Wc_all none~get_wc~2->proc~get_wc_all~2 proc~get_wci~2 nurbs_volume%get_Wci none~get_wc~2->proc~get_wci~2 proc~get_xc_all~2 nurbs_volume%get_Xc_all none~get_xc~2->proc~get_xc_all~2 proc~get_xcid~2 nurbs_volume%get_Xcid none~get_xc~2->proc~get_xcid~2 proc~get_xci~2 nurbs_volume%get_Xci none~get_xc~2->proc~get_xci~2 proc~set1~2 nurbs_volume%set1 none~set~2->proc~set1~2 proc~set2~2 nurbs_volume%set2 none~set~2->proc~set2~2 proc~set3~2 nurbs_volume%set3 none~set~2->proc~set3~2 proc~set4~2 nurbs_volume%set4 none~set~2->proc~set4~2 interface~compute_multiplicity compute_multiplicity proc~get_nc_dir~2->interface~compute_multiplicity proc~cmp_degree~2 nurbs_volume%cmp_degree proc~set1~2->proc~cmp_degree~2 proc~cmp_nc~2 nurbs_volume%cmp_nc proc~set1~2->proc~cmp_nc~2 set set proc~set1~2->set proc~set2~2->proc~cmp_nc~2 proc~compute_knot_vector compute_knot_vector proc~set2~2->proc~compute_knot_vector proc~set2~2->set proc~set3~2->proc~cmp_degree~2 proc~set3~2->set proc~set4~2->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~2->set proc~get_multiplicity~2 nurbs_volume%get_multiplicity proc~cmp_degree~2->proc~get_multiplicity~2 proc~cmp_nc~2->interface~compute_multiplicity proc~cmp_nc~2->set proc~repelem repelem proc~compute_knot_vector->proc~repelem proc~get_multiplicity~2->interface~compute_multiplicity

Called by

proc~~bend_pipe~~CalledByGraph proc~bend_pipe bend_pipe program~example_bend_pipe example_bend_pipe program~example_bend_pipe->proc~bend_pipe