nearest_point_2d_bench Program

Uses

  • program~~nearest_point_2d_bench~~UsesGraph program~nearest_point_2d_bench nearest_point_2d_bench fortime fortime program~nearest_point_2d_bench->fortime module~forcad forcad program~nearest_point_2d_bench->module~forcad module~forcad_nurbs_curve forcad_nurbs_curve module~forcad->module~forcad_nurbs_curve module~forcad_nurbs_surface forcad_nurbs_surface module~forcad->module~forcad_nurbs_surface module~forcad_nurbs_volume forcad_nurbs_volume module~forcad->module~forcad_nurbs_volume module~forcad_utils forcad_utils module~forcad->module~forcad_utils module~forcad_nurbs_curve->module~forcad_utils module~forcad_nurbs_surface->module~forcad_utils module~forcad_nurbs_volume->module~forcad_utils stdlib_quadrature stdlib_quadrature module~forcad_utils->stdlib_quadrature

Set a tetragon with lengths of 2.0 and 3.0 and 3 and 4 control points in each direction The weights of the control points (Wc) are optional.

Generate the NURBS surface with resolutions of 30 in both dimensions

Find the nearest point on the surface to a given point Finalize the NURBS surface object


Calls

program~~nearest_point_2d_bench~~CallsGraph program~nearest_point_2d_bench nearest_point_2d_bench proc~create~3 nurbs_surface%create program~nearest_point_2d_bench->proc~create~3 proc~finalize~3 nurbs_surface%finalize program~nearest_point_2d_bench->proc~finalize~3 proc~nearest_point~3 nurbs_surface%nearest_point program~nearest_point_2d_bench->proc~nearest_point~3 proc~set_tetragon nurbs_surface%set_tetragon program~nearest_point_2d_bench->proc~set_tetragon timer_start timer_start program~nearest_point_2d_bench->timer_start timer_stop timer_stop program~nearest_point_2d_bench->timer_stop interface~compute_xg~3 compute_Xg proc~create~3->interface~compute_xg~3 interface~ndgrid ndgrid proc~create~3->interface~ndgrid proc~is_rational~3 nurbs_surface%is_rational proc~create~3->proc~is_rational~3 interface~nearest_point_help_2d nearest_point_help_2d proc~nearest_point~3->interface~nearest_point_help_2d none~set~3 nurbs_surface%set proc~set_tetragon->none~set~3 proc~tetragon_xc tetragon_Xc proc~set_tetragon->proc~tetragon_xc proc~ndgrid2 ndgrid2 interface~ndgrid->proc~ndgrid2 proc~ndgrid3 ndgrid3 interface~ndgrid->proc~ndgrid3 proc~set1~3 nurbs_surface%set1 none~set~3->proc~set1~3 proc~set2~3 nurbs_surface%set2 none~set~3->proc~set2~3 proc~set3~3 nurbs_surface%set3 none~set~3->proc~set3~3 proc~set4~3 nurbs_surface%set4 none~set~3->proc~set4~3 proc~cmp_degree~3 nurbs_surface%cmp_degree proc~set1~3->proc~cmp_degree~3 proc~cmp_nc~3 nurbs_surface%cmp_nc proc~set1~3->proc~cmp_nc~3 proc~set2~3->proc~cmp_nc~3 proc~compute_knot_vector compute_knot_vector proc~set2~3->proc~compute_knot_vector proc~set3~3->proc~cmp_degree~3 proc~get_multiplicity~3 nurbs_surface%get_multiplicity proc~cmp_degree~3->proc~get_multiplicity~3 interface~compute_multiplicity compute_multiplicity proc~cmp_nc~3->interface~compute_multiplicity proc~repelem repelem proc~compute_knot_vector->proc~repelem proc~compute_multiplicity1 compute_multiplicity1 interface~compute_multiplicity->proc~compute_multiplicity1 proc~compute_multiplicity2 compute_multiplicity2 interface~compute_multiplicity->proc~compute_multiplicity2 proc~get_multiplicity~3->interface~compute_multiplicity

Variables

Type Attributes Name Initial
integer :: i
integer :: id

id of the nearest point

integer :: j
real(kind=rk), allocatable :: nearest_Xg(:)

Coordinates of the nearest point on the surface

real(kind=rk), allocatable :: nearest_Xt(:)

Corresponding parametric coordinates of the nearest point

real(kind=rk), allocatable :: points(:,:)
type(nurbs_surface) :: shape

Declare a NURBS surface object

type(timer) :: t