tem_line_module Module

for lines


Uses

  • module~~tem_line_module~~UsesGraph module~tem_line_module tem_line_module module~tem_point_module tem_point_module module~tem_line_module->module~tem_point_module module~tem_float_module tem_float_module module~tem_line_module->module~tem_float_module module~tem_triangle_module tem_triangle_module module~tem_line_module->module~tem_triangle_module module~tem_cube_module tem_cube_module module~tem_line_module->module~tem_cube_module module~tem_logging_module tem_logging_module module~tem_line_module->module~tem_logging_module module~env_module env_module module~tem_line_module->module~env_module module~tem_math_module tem_math_module module~tem_line_module->module~tem_math_module module~tem_point_module->module~tem_cube_module module~tem_point_module->module~tem_logging_module module~tem_point_module->module~env_module module~tem_float_module->module~env_module module~tem_triangle_module->module~tem_cube_module module~tem_triangle_module->module~tem_logging_module module~tem_triangle_module->module~env_module module~tem_triangle_module->module~tem_math_module module~aot_table_module aot_table_module module~tem_triangle_module->module~aot_table_module module~aot_out_module aot_out_module module~tem_triangle_module->module~aot_out_module module~aotus_module aotus_module module~tem_triangle_module->module~aotus_module module~tem_transformation_module tem_transformation_module module~tem_triangle_module->module~tem_transformation_module module~tem_aux_module tem_aux_module module~tem_triangle_module->module~tem_aux_module module~tem_cube_module->module~tem_logging_module module~tem_cube_module->module~env_module module~tem_cube_module->module~aot_table_module module~tem_geometry_module tem_geometry_module module~tem_cube_module->module~tem_geometry_module module~tem_cube_module->module~aotus_module module~treelmesh_module treelmesh_module module~tem_cube_module->module~treelmesh_module module~tem_cube_module->module~tem_aux_module module~tem_logging_module->module~env_module module~tem_logging_module->module~aot_table_module module~tem_logging_module->module~aotus_module module~env_module->module~aotus_module iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env mpi mpi module~env_module->mpi module~flu_binding flu_binding module~env_module->module~flu_binding module~tem_math_module->module~tem_logging_module module~tem_math_module->module~env_module module~tem_matrix_module tem_matrix_module module~tem_math_module->module~tem_matrix_module module~tem_math_module->module~tem_aux_module module~tem_geometry_module->module~tem_float_module module~tem_geometry_module->module~tem_logging_module module~tem_geometry_module->module~env_module module~tem_geometry_module->module~treelmesh_module module~tem_geometry_module->mpi module~tem_subtree_type_module tem_subTree_type_module module~tem_geometry_module->module~tem_subtree_type_module module~tem_debug_module tem_debug_module module~tem_geometry_module->module~tem_debug_module module~tem_property_module tem_property_module module~tem_geometry_module->module~tem_property_module module~tem_tools_module tem_tools_module module~tem_geometry_module->module~tem_tools_module module~tem_topology_module tem_topology_module module~tem_geometry_module->module~tem_topology_module module~tem_param_module tem_param_module module~tem_geometry_module->module~tem_param_module module~treelmesh_module->module~tem_logging_module module~treelmesh_module->module~env_module module~treelmesh_module->module~aot_table_module module~treelmesh_module->module~aotus_module module~treelmesh_module->mpi module~treelmesh_module->module~tem_aux_module module~treelmesh_module->module~tem_property_module module~treelmesh_module->module~tem_tools_module module~treelmesh_module->module~tem_topology_module module~tem_global_module tem_global_module module~treelmesh_module->module~tem_global_module module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~tem_transformation_module->module~tem_logging_module module~tem_transformation_module->module~env_module module~tem_transformation_module->module~aot_table_module module~tem_transformation_module->module~aotus_module module~tem_transformation_module->module~flu_binding module~tem_transformation_module->module~tem_aux_module module~tem_transformation_module->module~tem_tools_module module~tem_matrix_module->module~tem_float_module module~tem_matrix_module->module~tem_logging_module module~tem_matrix_module->module~env_module module~tem_matrix_module->module~tem_aux_module module~tem_matrix_module->module~tem_debug_module module~tem_dyn_array_module tem_dyn_array_module module~tem_matrix_module->module~tem_dyn_array_module module~tem_grow_array_module tem_grow_array_module module~tem_matrix_module->module~tem_grow_array_module module~tem_matrix_module->module~tem_param_module module~tem_aux_module->module~tem_logging_module module~tem_aux_module->module~env_module module~tem_aux_module->module~aot_table_module module~tem_aux_module->module~aotus_module module~tem_aux_module->mpi module~tem_aux_module->module~flu_binding module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~tem_lua_requires_module tem_lua_requires_module module~tem_aux_module->module~tem_lua_requires_module module~tem_revision_module tem_revision_module module~tem_aux_module->module~tem_revision_module module~tem_aux_module->module~tem_tools_module

Used by

  • module~~tem_line_module~~UsedByGraph module~tem_line_module tem_line_module module~tem_cylinder_module tem_cylinder_module module~tem_cylinder_module->module~tem_line_module module~tem_canonicalnd_module tem_canonicalND_module module~tem_canonicalnd_module->module~tem_line_module module~tem_shape_module tem_shape_module module~tem_shape_module->module~tem_cylinder_module module~tem_shape_module->module~tem_canonicalnd_module module~tem_spatial_module tem_spatial_module module~tem_spatial_module->module~tem_canonicalnd_module module~tem_spatial_module->module~tem_shape_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_shape_module module~hvs_output_module hvs_output_module module~tem_tracking_module->module~hvs_output_module module~tem_subtree_module tem_subTree_module module~tem_tracking_module->module~tem_subtree_module module~hvs_ascii_module hvs_ascii_module module~hvs_ascii_module->module~tem_shape_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_shape_module module~tem_convergence_module->module~tem_subtree_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_spacetime_var_module->module~tem_spatial_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_var_module->module~tem_spacetime_fun_module module~hvs_output_module->module~tem_shape_module module~hvs_output_module->module~hvs_ascii_module module~hvs_output_module->module~tem_subtree_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_spatial_module module~tem_spacetime_fun_module->module~tem_shape_module module~tem_spacetime_fun_module->module~tem_spatial_module module~tem_spacetime_fun_module->module~tem_subtree_module module~tem_subtree_module->module~tem_shape_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_spacetime_fun_module module~tem_surfacedata_module tem_surfaceData_module module~tem_surfacedata_module->module~tem_spacetime_fun_module module~tem_abortcriteria_module tem_abortCriteria_module module~tem_abortcriteria_module->module~tem_convergence_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_test->module~tem_spacetime_fun_module program~tem_varsys_stfunvar_test tem_varSys_stfunVar_test program~tem_varsys_stfunvar_test->module~tem_spacetime_fun_module program~tem_varsys_stfunvar_test->module~tem_subtree_module module~tem_bc_module tem_bc_module module~tem_bc_module->module~tem_spacetime_fun_module program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->module~tem_spacetime_fun_module program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->module~tem_spacetime_fun_module module~tem_varmap_module tem_varMap_module module~tem_varmap_module->module~tem_spacetime_var_module module~tem_varmap_module->module~tem_spacetime_fun_module module~tem_simcontrol_module tem_simControl_module module~tem_simcontrol_module->module~tem_convergence_module program~tem_varsys_opvar_test tem_varSys_opVar_test program~tem_varsys_opvar_test->module~tem_spacetime_fun_module program~tem_varsys_opvar_test->module~tem_subtree_module program~tem_varsys_test tem_varSys_test program~tem_varsys_test->module~tem_spacetime_var_module program~tem_varsys_test->module~tem_spacetime_fun_module program~tem_varsys_test->module~tem_subtree_module module~tem_face_module tem_face_module module~tem_face_module->module~tem_spacetime_fun_module program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->module~tem_spacetime_fun_module module~tem_derived_module tem_derived_module module~tem_derived_module->module~tem_spacetime_var_module module~tem_derived_module->module~tem_spacetime_fun_module module~tem_variable_module tem_variable_module module~tem_variable_module->module~tem_spacetime_fun_module program~tem_logical_opertor_test tem_logical_opertor_test program~tem_logical_opertor_test->module~tem_spacetime_fun_module program~tem_tracking_test tem_tracking_test program~tem_tracking_test->module~tem_tracking_module

Contents


Interfaces

public interface init

initialize the dynamic array

  • private subroutine init_ga_line(me, length)

    Arguments

    Type IntentOptional AttributesName
    type(grw_linearray_type), intent(out) :: me
    integer, intent(in), optional :: length

public interface truncate

truncate the array, meaning cut off the trailing empty entries

public interface append

append a value to the dynamic array and return its position.

  • private subroutine append_ga_line(me, val, length)

    Arguments

    Type IntentOptional AttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val
    integer, intent(in), optional :: length

    optional length to expand the array

  • private subroutine append_ga_line_vec(me, val, length)

    Arguments

    Type IntentOptional AttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val(:)
    integer, intent(in), optional :: length

    optional length to expand the array

private interface empty

empty the entries without changing arrays

private interface destroy

destroy the dynamic array

private interface placeat

insert an element at a given position

  • private subroutine placeat_ga_line(me, val, pos, length)

    adds the value to a given position inside the growing array.

    Read more…

    Arguments

    Type IntentOptional AttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val
    integer, intent(in) :: pos
    integer, intent(in), optional :: length

    optional length to expand the array

  • private subroutine placeat_ga_line_vec(me, val, pos, length)

    adds the values starting from a given position inside the growing array.

    Read more…

    Arguments

    Type IntentOptional AttributesName
    type(grw_linearray_type) :: me
    type(tem_line_type), intent(in) :: val(:)
    integer, intent(in) :: pos
    integer, intent(in), optional :: length

    optional length to expand the array

private interface expand

increase the size of the container for the array.

  • private subroutine expand_ga_line(me, pos, length)

    Arguments

    Type IntentOptional AttributesName
    type(grw_linearray_type) :: me
    integer, intent(in), optional :: pos
    integer, intent(in), optional :: length

    optional length to expand the array


Derived Types

type, public :: tem_line_type

This type contains line definition i.e origin and vector which defines the direction of the line

Components

TypeVisibility AttributesNameInitial
real(kind=rk), public :: origin(3)
real(kind=rk), public :: vec(3)

type, public :: grw_linearray_type

growing array type for type(tem_line_type)

Components

TypeVisibility AttributesNameInitial
integer, public :: nvals =0
integer, public :: containersize =0
type(tem_line_type), public, allocatable:: val(:)

Functions

public function tem_lineCubeOverlap(line, cube, pntIntersect) result(overlap)

Function computes intersection of line with cube

Read more…

Arguments

Type IntentOptional AttributesName
type(tem_line_type), intent(in) :: line

line segment to check for intersection

type(tem_cube_type), intent(in) :: cube

cube to intersect with

real(kind=rk), intent(out), optional :: pntIntersect(3)

intersection point if there is intersection

Return Value logical

public function intersect_RayTriangle(line, triangle, intersect_p) result(isIntersect)

Function computes intersection of ray with triangle

Read more…

Arguments

Type IntentOptional AttributesName
type(tem_line_type), intent(in) :: line

line segment to check for interection

type(tem_triangle_type), intent(in) :: triangle

cube to check intersection of line

type(tem_point_type), intent(out), optional :: intersect_p

intersection point if there is intersection

Return Value logical

public function fraction_PointLine(point, line) result(frac)

This evaluates relative distance of given point on line

Arguments

Type IntentOptional AttributesName
type(tem_point_type), intent(in) :: point
type(tem_line_type), intent(in) :: line

Return Value real(kind=rk)

private function rayCubeOverlap(line, cube, pntIntersect) result(overlap)

Function computes intersection of ray with cube

Read more…

Arguments

Type IntentOptional AttributesName
type(tem_line_type), intent(in) :: line

line segment to check for interection

type(tem_cube_type), intent(in) :: cube

cube to check intersection of line

real(kind=rk), intent(out), optional :: pntIntersect(3)

intersection point if there is intersection

Return Value logical


Subroutines

private subroutine init_ga_line(me, length)

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type), intent(out) :: me
integer, intent(in), optional :: length

private subroutine destroy_ga_line(me)

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type), intent(inout) :: me

private subroutine truncate_ga_line(me)

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type) :: me

private subroutine empty_ga_line(me)

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type) :: me

private subroutine placeat_ga_line(me, val, pos, length)

adds the value to a given position inside the growing array.

Read more…

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

private subroutine placeat_ga_line_vec(me, val, pos, length)

adds the values starting from a given position inside the growing array.

Read more…

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val(:)
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_line(me, val, length)

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_line_vec(me, val, length)

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type) :: me
type(tem_line_type), intent(in) :: val(:)
integer, intent(in), optional :: length

optional length to expand the array

private subroutine expand_ga_line(me, pos, length)

Arguments

Type IntentOptional AttributesName
type(grw_linearray_type) :: me
integer, intent(in), optional :: pos
integer, intent(in), optional :: length

optional length to expand the array