tem_cylinder_module Module

This module contains cylinder definition and routines related to cylinders


Uses

  • module~~tem_cylinder_module~~UsesGraph module~tem_cylinder_module tem_cylinder_module aot_out_module aot_out_module module~tem_cylinder_module->aot_out_module aot_table_module aot_table_module module~tem_cylinder_module->aot_table_module aotus_module aotus_module module~tem_cylinder_module->aotus_module module~env_module env_module module~tem_cylinder_module->module~env_module module~tem_aux_module tem_aux_module module~tem_cylinder_module->module~tem_aux_module module~tem_cube_module tem_cube_module module~tem_cylinder_module->module~tem_cube_module module~tem_float_module tem_float_module module~tem_cylinder_module->module~tem_float_module module~tem_line_module tem_line_module module~tem_cylinder_module->module~tem_line_module module~tem_logging_module tem_logging_module module~tem_cylinder_module->module~tem_logging_module module~tem_param_module tem_param_module module~tem_cylinder_module->module~tem_param_module module~tem_sphere_module tem_sphere_module module~tem_cylinder_module->module~tem_sphere_module module~tem_transformation_module tem_transformation_module module~tem_cylinder_module->module~tem_transformation_module module~env_module->aotus_module flu_binding flu_binding module~env_module->flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env mpi mpi module~env_module->mpi module~tem_aux_module->aot_table_module module~tem_aux_module->aotus_module module~tem_aux_module->module~env_module module~tem_aux_module->module~tem_logging_module module~tem_aux_module->flu_binding module~soi_revision_module soi_revision_module module~tem_aux_module->module~soi_revision_module 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_tools_module tem_tools_module module~tem_aux_module->module~tem_tools_module module~tem_aux_module->mpi module~tem_cube_module->aot_table_module module~tem_cube_module->aotus_module module~tem_cube_module->module~env_module module~tem_cube_module->module~tem_aux_module module~tem_cube_module->module~tem_logging_module module~tem_geometry_module tem_geometry_module module~tem_cube_module->module~tem_geometry_module module~treelmesh_module treelmesh_module module~tem_cube_module->module~treelmesh_module module~tem_float_module->module~env_module module~tem_line_module->module~env_module module~tem_line_module->module~tem_cube_module module~tem_line_module->module~tem_float_module module~tem_line_module->module~tem_logging_module module~tem_math_module tem_math_module module~tem_line_module->module~tem_math_module module~tem_point_module tem_point_module module~tem_line_module->module~tem_point_module module~tem_triangle_module tem_triangle_module module~tem_line_module->module~tem_triangle_module module~tem_logging_module->aot_table_module module~tem_logging_module->aotus_module module~tem_logging_module->module~env_module module~tem_param_module->module~env_module module~tem_sphere_module->aot_out_module module~tem_sphere_module->aot_table_module module~tem_sphere_module->aotus_module module~tem_sphere_module->module~env_module module~tem_sphere_module->module~tem_aux_module module~tem_sphere_module->module~tem_cube_module module~tem_sphere_module->module~tem_logging_module module~tem_sphere_module->module~tem_transformation_module module~tem_transformation_module->aot_table_module module~tem_transformation_module->aotus_module module~tem_transformation_module->module~env_module module~tem_transformation_module->module~tem_aux_module module~tem_transformation_module->module~tem_logging_module module~tem_transformation_module->flu_binding module~tem_transformation_module->module~tem_tools_module

Used by

  • module~~tem_cylinder_module~~UsedByGraph module~tem_cylinder_module tem_cylinder_module module~tem_shape_module tem_shape_module module~tem_shape_module->module~tem_cylinder_module module~hvs_ascii_module hvs_ascii_module module~hvs_ascii_module->module~tem_shape_module module~hvs_output_module hvs_output_module module~hvs_output_module->module~tem_shape_module module~hvs_output_module->module~hvs_ascii_module module~tem_subtree_module tem_subTree_module module~hvs_output_module->module~tem_subtree_module module~tem_varmap_module tem_varMap_module module~hvs_output_module->module~tem_varmap_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_convergence_module->module~tem_varmap_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_fun_module->module~tem_shape_module module~tem_spatial_module tem_spatial_module module~tem_spacetime_fun_module->module~tem_spatial_module module~tem_spacetime_fun_module->module~tem_subtree_module module~tem_spatial_module->module~tem_shape_module module~tem_subtree_module->module~tem_shape_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_shape_module module~tem_tracking_module->module~hvs_output_module module~tem_tracking_module->module~tem_subtree_module module~tem_simcontrol_module tem_simControl_module module~tem_tracking_module->module~tem_simcontrol_module module~tem_tracking_module->module~tem_varmap_module module~tem_abortcriteria_module tem_abortCriteria_module module~tem_abortcriteria_module->module~tem_convergence_module module~tem_bc_module tem_bc_module module~tem_bc_module->module~tem_spacetime_fun_module module~tem_bc_module->module~tem_varmap_module module~tem_derived_module tem_derived_module module~tem_derived_module->module~tem_spacetime_fun_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_derived_module->module~tem_spacetime_var_module module~tem_variable_module tem_variable_module module~tem_derived_module->module~tem_variable_module module~tem_face_module tem_face_module module~tem_face_module->module~tem_spacetime_fun_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_spatial_module module~tem_simcontrol_module->module~tem_convergence_module module~tem_simcontrol_module->module~tem_abortcriteria_module module~tem_spacetime_var_module->module~tem_spacetime_fun_module module~tem_spacetime_var_module->module~tem_spatial_module module~tem_spacetime_var_module->module~tem_variable_module module~tem_surfacedata_module tem_surfaceData_module module~tem_surfacedata_module->module~tem_spacetime_fun_module module~tem_variable_module->module~tem_spacetime_fun_module module~tem_varmap_module->module~tem_spacetime_fun_module module~tem_varmap_module->module~tem_spacetime_var_module module~tem_depend_module tem_depend_module module~tem_depend_module->module~tem_varmap_module module~tem_general_module tem_general_module module~tem_general_module->module~tem_abortcriteria_module module~tem_general_module->module~tem_simcontrol_module module~tem_operation_var_module tem_operation_var_module module~tem_operation_var_module->module~tem_variable_module module~tem_operation_var_module->module~tem_varmap_module module~tem_restart_module tem_restart_module module~tem_restart_module->module~tem_varmap_module

Interfaces

public interface init

initialize the dynamic array

public interface truncate

truncate the array, meaning cut off the trailing empty entries

public interface empty

empty the entries without changing arrays

public interface destroy

destroy the dynamic array

public interface placeat

insert an element at a given position

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

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

    if the requested position is outside the current array bounds, the array will be resized accordingly. if it is inside the current array bounds, the element at the requested position will be replaced.

    Arguments

    Type IntentOptional Attributes Name
    type(grw_cylinderarray_type) :: me
    type(tem_cylinder_type), intent(in) :: val
    integer, intent(in) :: pos
    integer, intent(in), optional :: length

    optional length to expand the array

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

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

    if the requested position is outside the current array bounds, the array will be resized accordingly. if it is inside the current array bounds, the elements starting from the requested position will be replaced up to the element at position pos + size(val) - 1.

    Arguments

    Type IntentOptional Attributes Name
    type(grw_cylinderarray_type) :: me
    type(tem_cylinder_type), intent(in) :: val(:)
    integer, intent(in) :: pos
    integer, intent(in), optional :: length

    optional length to expand the array

public interface append

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

public interface tem_cylinder_out

interface to write out cylinders in lua format to a file

  • private subroutine tem_cylinder_out_scal(me, conf)

    Write out a cylinder shape in lua format

    Arguments

    Type IntentOptional Attributes Name
    type(tem_cylinder_type), intent(in) :: me

    cylinder types to write out

    type(aot_out_type), intent(inout) :: conf

    Aotus type handling the output to the file in lua format

  • private subroutine tem_cylinder_out_vec(me, conf)

    Write out an array of cylinders in lua format

    Arguments

    Type IntentOptional Attributes Name
    type(tem_cylinder_type), intent(in) :: me(:)

    cylinder types to write out

    type(aot_out_type), intent(inout) :: conf

    Aotus type handling the output to the file in lua format

private interface expand

increase the size of the container for the array.

  • private subroutine expand_ga_cylinder(me, pos, length)

    Arguments

    Type IntentOptional Attributes Name
    type(grw_cylinderarray_type) :: me
    integer, intent(in), optional :: pos
    integer, intent(in), optional :: length

    optional length to expand the array

private interface tem_load_cylinder

interface to load cylinders


Derived Types

type, public ::  tem_cylinder_type

This type provides information to create cylinder geometry

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: vec(3)

vector defining length and axis of cylinder

real(kind=rk), public :: radius
real(kind=rk), public :: origin(3)
logical, public :: only_surface

To choose what to do with intersection of this object if only_surface = true than the only the surface of the object is intersected if only_surface = false then the whole object is intersected default is set to false

type, public ::  grw_cylinderarray_type

growing array type for type(tem_cylinder_type)

Components

Type Visibility Attributes Name Initial
integer, public :: nvals = 0
integer, public :: containersize = 0
type(tem_cylinder_type), public, allocatable :: val(:)

Functions

public function tem_cylinderCubeOverlap(cylinder, cube) result(overlap)

This function checks intesection of solid cube and cylinder.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_cylinder_type), intent(in) :: cylinder
type(tem_cube_type), intent(in) :: cube

Return Value logical


Subroutines

public subroutine tem_load_cylinder(me, transform, conf, thandle)

\brief Loading cylinder information from config file \n

Arguments

Type IntentOptional Attributes Name
type(tem_cylinder_type), intent(out), allocatable :: me(:)

array of cylinders

type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

type(flu_State) :: conf

lua state

integer, intent(in) :: thandle

private subroutine tem_load_cylinder_single(me, transform, conf, thandle)

This routine single cylinder from object table

Arguments

Type IntentOptional Attributes Name
type(tem_cylinder_type), intent(out) :: me
type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

type(flu_State) :: conf
integer, intent(in) :: thandle

private subroutine tem_cylinder_out_vec(me, conf)

Write out an array of cylinders in lua format

Arguments

Type IntentOptional Attributes Name
type(tem_cylinder_type), intent(in) :: me(:)

cylinder types to write out

type(aot_out_type), intent(inout) :: conf

Aotus type handling the output to the file in lua format

private subroutine tem_cylinder_out_scal(me, conf)

Write out a cylinder shape in lua format

Arguments

Type IntentOptional Attributes Name
type(tem_cylinder_type), intent(in) :: me

cylinder types to write out

type(aot_out_type), intent(inout) :: conf

Aotus type handling the output to the file in lua format

private subroutine init_ga_cylinder(me, length)

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type), intent(out) :: me
integer, intent(in), optional :: length

private subroutine destroy_ga_cylinder(me)

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type), intent(inout) :: me

private subroutine truncate_ga_cylinder(me)

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type) :: me

private subroutine empty_ga_cylinder(me)

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type) :: me

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

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

Read more…

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type) :: me
type(tem_cylinder_type), intent(in) :: val
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

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

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

Read more…

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type) :: me
type(tem_cylinder_type), intent(in) :: val(:)
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_cylinder(me, val, length)

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type) :: me
type(tem_cylinder_type), intent(in) :: val
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_cylinder_vec(me, val, length)

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type) :: me
type(tem_cylinder_type), intent(in) :: val(:)
integer, intent(in), optional :: length

optional length to expand the array

private subroutine expand_ga_cylinder(me, pos, length)

Arguments

Type IntentOptional Attributes Name
type(grw_cylinderarray_type) :: me
integer, intent(in), optional :: pos
integer, intent(in), optional :: length

optional length to expand the array