nearest_point_3d Program

Uses

  • program~~nearest_point_3d~~UsesGraph program~nearest_point_3d nearest_point_3d module~forcad forcad program~nearest_point_3d->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

The weights of the control points (Wc) are optional.

Generate the NURBS volume with resolutions of 20, 20, 20

Find the nearest point on the volume to a given point Find the nearest point on the volume to a given point The optimization method is used to find the nearest point The optimization method is based on the Newton-Raphson method Finalize the NURBS volume object


Calls

program~~nearest_point_3d~~CallsGraph program~nearest_point_3d nearest_point_3d none~set nurbs_volume%set program~nearest_point_3d->none~set proc~create nurbs_volume%create program~nearest_point_3d->proc~create proc~finalize nurbs_volume%finalize program~nearest_point_3d->proc~finalize proc~nearest_point nurbs_volume%nearest_point program~nearest_point_3d->proc~nearest_point proc~nearest_point2 nurbs_volume%nearest_point2 program~nearest_point_3d->proc~nearest_point2 proc~set1 nurbs_volume%set1 none~set->proc~set1 proc~set2 nurbs_volume%set2 none~set->proc~set2 proc~set3 nurbs_volume%set3 none~set->proc~set3 proc~set4 nurbs_volume%set4 none~set->proc~set4 interface~compute_xg compute_Xg proc~create->interface~compute_xg interface~ndgrid ndgrid proc~create->interface~ndgrid proc~is_rational nurbs_volume%is_rational proc~create->proc~is_rational interface~nearest_point_help_3d nearest_point_help_3d proc~nearest_point->interface~nearest_point_help_3d proc~nearest_point2->proc~create proc~nearest_point2->proc~finalize proc~nearest_point2->proc~nearest_point none~derivative2 nurbs_volume%derivative2 proc~nearest_point2->none~derivative2 proc~cmp_xg nurbs_volume%cmp_Xg proc~nearest_point2->proc~cmp_xg proc~inv inv proc~nearest_point2->proc~inv proc~ndgrid2 ndgrid2 interface~ndgrid->proc~ndgrid2 proc~ndgrid3 ndgrid3 interface~ndgrid->proc~ndgrid3 proc~derivative2_scalar nurbs_volume%derivative2_scalar none~derivative2->proc~derivative2_scalar proc~derivative2_vector nurbs_volume%derivative2_vector none~derivative2->proc~derivative2_vector proc~cmp_xg->interface~compute_xg proc~cmp_xg->proc~is_rational proc~inv->proc~inv proc~det det proc~inv->proc~det proc~cmp_degree nurbs_volume%cmp_degree proc~set1->proc~cmp_degree proc~cmp_nc nurbs_volume%cmp_nc proc~set1->proc~cmp_nc proc~set2->proc~cmp_nc proc~compute_knot_vector compute_knot_vector proc~set2->proc~compute_knot_vector proc~set3->proc~cmp_degree proc~get_multiplicity nurbs_volume%get_multiplicity proc~cmp_degree->proc~get_multiplicity interface~compute_multiplicity compute_multiplicity proc~cmp_nc->interface~compute_multiplicity proc~repelem repelem proc~compute_knot_vector->proc~repelem proc~derivative2_scalar->proc~is_rational interface~compute_d2tgc compute_d2Tgc proc~derivative2_scalar->interface~compute_d2tgc proc~derivative2_vector->interface~ndgrid proc~derivative2_vector->proc~is_rational proc~derivative2_vector->interface~compute_d2tgc 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->interface~compute_multiplicity

Variables

Type Attributes Name Initial
real(kind=rk) :: Wc(8)

Weights of the control points

real(kind=rk) :: Xc(8,3)

Control points

integer :: id

id of the nearest point

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

Coordinates of the nearest point on the volume

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

Corresponding parametric coordinates of the nearest point

type(nurbs_volume) :: shape

Declare a NURBS volume object