0.6.0
Loading...
Searching...
No Matches
mod_cg3_paraboloid_polyhedron Module Reference

Data Types

type  t_clip_info
 
type  t_paraboloid
 

Functions/Subroutines

subroutine, public paraboloid_polyhedron_moments (polyhedron, paraboloid, volume, momentum, is_failed)
 
subroutine paraboloid_polyhedron_moments_nudge (polyhedron, paraboloid, volume, momentum, do_nudge)
 
pure subroutine edge_paraboloid_intersection (paraboloid, pt0, pt1, n_intersections, intersection)
 
pure subroutine allocate_clip_info (clip_info, polyhedron)
 
double precision pure function evaluate_paraboloid_xyz (paraboloid, x, y, z)
 
double precision pure function evaluate_paraboloid_coord (paraboloid, coord)
 
pure subroutine paraboloid_plane_intersection (paraboloid, normal, point, volume, momentum)
 
pure subroutine generate_intersection_list_2 (polyhedron, clip_info, f, n_intersections, list, starts_curve, tangent, n_points)
 
subroutine contribution_list (paraboloid, list, starts_curve, tangent, n_points, face_normal, volume, momentum, do_nudge)
 
pure subroutine contribution_term1 (x0, x1, xref, volume, momentum)
 
pure subroutine contribution_term2 (paraboloid, xa, xb, volume, momentum)
 
pure subroutine contribution_term3 (paraboloid, face_normal, xa, xb, edge_ta, edge_tb, volume, momentum, do_nudge)
 
pure recursive subroutine evaluate_term3_with_split (paraboloid, normal, xref, x0, x1, t0, t1, split_counter, volume, momentum, do_nudge)
 
pure subroutine compute_triangle_correction (paraboloid, xa, xb, xc, volume, momentum)
 
pure subroutine project_point_onto_paraboloid (paraboloid, tangent, start_point, point)
 
pure subroutine evaluate_term3 (paraboloid, xa, xb, xc, weight, volume, momentum)
 
pure subroutine compute_c_matrix (paraboloid, xa, xb, xc, c_matrix)
 
pure subroutine compute_coeffs (weight, coeffs)
 
pure subroutine compute_paraboloid_tangent (paraboloid, face_normal, point, tangent)
 
pure subroutine compute_and_correct_tangent_at_point (paraboloid, normal, x1, t1, point, tangent)
 
pure subroutine compute_bezier_weight (paraboloid, x0, control, x1, normal, weight)
 
pure subroutine compute_bezier_weight_with_tangents (paraboloid, x0, t0, x1, t1, normal, control_point, weight)
 
pure subroutine compute_paraboloid_normal (paraboloid, point, normal)
 

Variables

double precision, parameter nudge_epsilon = 15*epsilon(NUDGE_EPSILON)
 
double precision, parameter nudge_epsilon_sq = NUDGE_EPSILON*NUDGE_EPSILON
 
double precision, parameter corner_epsilon = 15*epsilon(CORNER_EPSILON)
 
double precision, parameter tangent_epsilon = 100*epsilon(TANGENT_EPSILON)
 
double precision, parameter distance_epsilon = 1d2*epsilon(DISTANCE_EPSILON)
 
double precision, parameter angle_epsilon = 1d6*epsilon(ANGLE_EPSILON)
 

Function/Subroutine Documentation

◆ allocate_clip_info()

pure subroutine mod_cg3_paraboloid_polyhedron::allocate_clip_info ( type(t_clip_info), intent(out) clip_info,
type(t_polyhedron), intent(in) polyhedron )
private

◆ compute_and_correct_tangent_at_point()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_and_correct_tangent_at_point ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) normal,
double precision, dimension(3), intent(in) x1,
double precision, dimension(3), intent(in) t1,
double precision, dimension(3), intent(in) point,
double precision, dimension(3), intent(out) tangent )
private

◆ compute_bezier_weight()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_bezier_weight ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) x0,
double precision, dimension(3), intent(in) control,
double precision, dimension(3), intent(in) x1,
double precision, dimension(3), intent(in) normal,
double precision, intent(out) weight )
private

◆ compute_bezier_weight_with_tangents()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_bezier_weight_with_tangents ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) x0,
double precision, dimension(3), intent(in) t0,
double precision, dimension(3), intent(in) x1,
double precision, dimension(3), intent(in) t1,
double precision, dimension(3), intent(in) normal,
double precision, dimension(3), intent(out) control_point,
double precision, intent(out) weight )
private

◆ compute_c_matrix()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_c_matrix ( class(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) xa,
double precision, dimension(3), intent(in) xb,
double precision, dimension(3), intent(in) xc,
double precision, dimension(5,4), intent(out) c_matrix )
private

◆ compute_coeffs()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_coeffs ( double precision, intent(in) weight,
double precision, dimension(12), intent(out) coeffs )
private

◆ compute_paraboloid_normal()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_paraboloid_normal ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) point,
double precision, dimension(3), intent(out) normal )
private

◆ compute_paraboloid_tangent()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_paraboloid_tangent ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) face_normal,
double precision, dimension(3), intent(in) point,
double precision, dimension(3), intent(out) tangent )
private

◆ compute_triangle_correction()

pure subroutine mod_cg3_paraboloid_polyhedron::compute_triangle_correction ( class(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) xa,
double precision, dimension(3), intent(in) xb,
double precision, dimension(3), intent(in) xc,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum )
private

◆ contribution_list()

subroutine mod_cg3_paraboloid_polyhedron::contribution_list ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(:,:), intent(in) list,
logical, dimension(:), intent(in) starts_curve,
double precision, dimension(:,:), intent(in) tangent,
integer, intent(in) n_points,
double precision, dimension(3), intent(in) face_normal,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum,
logical, intent(out) do_nudge )
private

◆ contribution_term1()

pure subroutine mod_cg3_paraboloid_polyhedron::contribution_term1 ( double precision, dimension(3), intent(in) x0,
double precision, dimension(3), intent(in) x1,
double precision, dimension(3), intent(in) xref,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum )
private

◆ contribution_term2()

pure subroutine mod_cg3_paraboloid_polyhedron::contribution_term2 ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) xa,
double precision, dimension(3), intent(in) xb,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum )
private

◆ contribution_term3()

pure subroutine mod_cg3_paraboloid_polyhedron::contribution_term3 ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) face_normal,
double precision, dimension(3), intent(in) xa,
double precision, dimension(3), intent(in) xb,
double precision, dimension(3), intent(in) edge_ta,
double precision, dimension(3), intent(in) edge_tb,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum,
logical, intent(out) do_nudge )
private

◆ edge_paraboloid_intersection()

pure subroutine mod_cg3_paraboloid_polyhedron::edge_paraboloid_intersection ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) pt0,
double precision, dimension(3), intent(in) pt1,
integer, intent(out) n_intersections,
double precision, dimension(3,2), intent(out) intersection )
private

◆ evaluate_paraboloid_coord()

double precision pure function mod_cg3_paraboloid_polyhedron::evaluate_paraboloid_coord ( class(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) coord )
private

◆ evaluate_paraboloid_xyz()

double precision pure function mod_cg3_paraboloid_polyhedron::evaluate_paraboloid_xyz ( class(t_paraboloid), intent(in) paraboloid,
double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z )
private

◆ evaluate_term3()

pure subroutine mod_cg3_paraboloid_polyhedron::evaluate_term3 ( class(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) xa,
double precision, dimension(3), intent(in) xb,
double precision, dimension(3), intent(in) xc,
double precision, intent(in) weight,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum )
private

◆ evaluate_term3_with_split()

pure recursive subroutine mod_cg3_paraboloid_polyhedron::evaluate_term3_with_split ( class(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) normal,
double precision, dimension(3), intent(in) xref,
double precision, dimension(3), intent(in) x0,
double precision, dimension(3), intent(in) x1,
double precision, dimension(3), intent(in) t0,
double precision, dimension(3), intent(in) t1,
integer, intent(in) split_counter,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum,
logical, intent(out) do_nudge )
private

◆ generate_intersection_list_2()

pure subroutine mod_cg3_paraboloid_polyhedron::generate_intersection_list_2 ( type(t_polyhedron), intent(in) polyhedron,
type(t_clip_info), intent(in) clip_info,
integer, intent(in) f,
integer, intent(in) n_intersections,
double precision, dimension(:,:), intent(out), allocatable list,
logical, dimension(:), intent(out), allocatable starts_curve,
double precision, dimension(:,:), intent(out), allocatable tangent,
integer, intent(out) n_points )
private

◆ paraboloid_plane_intersection()

pure subroutine mod_cg3_paraboloid_polyhedron::paraboloid_plane_intersection ( type(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) normal,
double precision, dimension(3), intent(in) point,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum )
private

◆ paraboloid_polyhedron_moments()

subroutine, public mod_cg3_paraboloid_polyhedron::paraboloid_polyhedron_moments ( type(t_polyhedron), intent(in) polyhedron,
type(t_paraboloid), intent(in) paraboloid,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum,
logical, intent(out) is_failed )

◆ paraboloid_polyhedron_moments_nudge()

subroutine mod_cg3_paraboloid_polyhedron::paraboloid_polyhedron_moments_nudge ( type(t_polyhedron), intent(in) polyhedron,
type(t_paraboloid), intent(in) paraboloid,
double precision, intent(out) volume,
double precision, dimension(3), intent(out) momentum,
logical, intent(out) do_nudge )
private

◆ project_point_onto_paraboloid()

pure subroutine mod_cg3_paraboloid_polyhedron::project_point_onto_paraboloid ( class(t_paraboloid), intent(in) paraboloid,
double precision, dimension(3), intent(in) tangent,
double precision, dimension(3), intent(in) start_point,
double precision, dimension(3), intent(out) point )
private

Variable Documentation

◆ angle_epsilon

double precision, parameter mod_cg3_paraboloid_polyhedron::angle_epsilon = 1d6*epsilon(ANGLE_EPSILON)
private

◆ corner_epsilon

double precision, parameter mod_cg3_paraboloid_polyhedron::corner_epsilon = 15*epsilon(CORNER_EPSILON)
private

◆ distance_epsilon

double precision, parameter mod_cg3_paraboloid_polyhedron::distance_epsilon = 1d2*epsilon(DISTANCE_EPSILON)
private

◆ nudge_epsilon

double precision, parameter mod_cg3_paraboloid_polyhedron::nudge_epsilon = 15*epsilon(NUDGE_EPSILON)

◆ nudge_epsilon_sq

double precision, parameter mod_cg3_paraboloid_polyhedron::nudge_epsilon_sq = NUDGE_EPSILON*NUDGE_EPSILON
private

◆ tangent_epsilon

double precision, parameter mod_cg3_paraboloid_polyhedron::tangent_epsilon = 100*epsilon(TANGENT_EPSILON)
private