sdr_spacer_module Module

This module contains spacer definition and routines related to spacers


Uses

  • module~~sdr_spacer_module~~UsesGraph module~sdr_spacer_module sdr_spacer_module module~tem_logging_module tem_logging_module module~sdr_spacer_module->module~tem_logging_module module~tem_sphere_module tem_sphere_module module~sdr_spacer_module->module~tem_sphere_module module~tem_cube_module tem_cube_module module~sdr_spacer_module->module~tem_cube_module module~tem_param_module tem_param_module module~sdr_spacer_module->module~tem_param_module module~sdr_spatialobj_module sdr_spatialObj_module module~sdr_spacer_module->module~sdr_spatialobj_module module~tem_transformation_module tem_transformation_module module~sdr_spacer_module->module~tem_transformation_module module~aotus_module aotus_module module~sdr_spacer_module->module~aotus_module module~tem_cylinder_module tem_cylinder_module module~sdr_spacer_module->module~tem_cylinder_module module~sdr_cylinder_module sdr_cylinder_module module~sdr_spacer_module->module~sdr_cylinder_module module~tem_aux_module tem_aux_module module~sdr_spacer_module->module~tem_aux_module module~aot_table_module aot_table_module module~sdr_spacer_module->module~aot_table_module module~env_module env_module module~sdr_spacer_module->module~env_module module~sdr_spatialobj_module->module~env_module module~sdr_cylinder_module->module~tem_logging_module module~sdr_cylinder_module->module~tem_param_module module~sdr_cylinder_module->module~sdr_spatialobj_module module~sdr_cylinder_module->module~tem_transformation_module module~sdr_cylinder_module->module~aotus_module module~sdr_cylinder_module->module~tem_cylinder_module module~sdr_cylinder_module->module~tem_aux_module module~sdr_cylinder_module->module~aot_table_module module~sdr_cylinder_module->module~env_module

Used by

  • module~~sdr_spacer_module~~UsedByGraph module~sdr_spacer_module sdr_spacer_module module~sdr_geometry_module sdr_geometry_module module~sdr_geometry_module->module~sdr_spacer_module module~sdr_proto2treelm_module sdr_proto2treelm_module module~sdr_proto2treelm_module->module~sdr_geometry_module module~sdr_prototree_module sdr_protoTree_module module~sdr_proto2treelm_module->module~sdr_prototree_module module~sdr_node_module sdr_node_module module~sdr_proto2treelm_module->module~sdr_node_module module~sdr_config_module sdr_config_module module~sdr_proto2treelm_module->module~sdr_config_module module~sdr_boundary_module sdr_boundary_module module~sdr_proto2treelm_module->module~sdr_boundary_module module~sdr_prototree_module->module~sdr_geometry_module module~sdr_prototree_module->module~sdr_node_module module~sdr_prototree_module->module~sdr_config_module module~sdr_refinept_module sdr_refinePT_module module~sdr_refinept_module->module~sdr_geometry_module module~sdr_refinept_module->module~sdr_prototree_module module~sdr_refinept_module->module~sdr_node_module module~sdr_refinept_module->module~sdr_config_module program~seeder seeder program~seeder->module~sdr_geometry_module program~seeder->module~sdr_proto2treelm_module program~seeder->module~sdr_prototree_module program~seeder->module~sdr_refinept_module module~sdr_flooding_module sdr_flooding_module program~seeder->module~sdr_flooding_module program~seeder->module~sdr_config_module module~sdr_node_module->module~sdr_geometry_module module~sdr_flooding_module->module~sdr_geometry_module module~sdr_flooding_module->module~sdr_prototree_module module~sdr_flooding_module->module~sdr_node_module module~sdr_flooding_module->module~sdr_config_module module~sdr_flooding_module->module~sdr_boundary_module module~sdr_config_module->module~sdr_geometry_module module~sdr_boundary_module->module~sdr_geometry_module module~sdr_boundary_module->module~sdr_prototree_module module~sdr_boundary_module->module~sdr_node_module

Contents


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

public interface append

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

private interface expand

increase the size of the container for the array.


Derived Types

type, public :: sdr_spacer_type

This type provides information to create spacer geometry

Components

TypeVisibilityAttributesNameInitial
type(spacer_filament_type), private :: length
type(spacer_filament_type), private :: width
real(kind=rk), private :: h_normal(3)

direction of height computed by cross product of length and width normal

logical, private :: interwoven

growing array type for type(sdr_spacerinterwoven_type)

Components

TypeVisibilityAttributesNameInitial
integer, private :: nvals =0
integer, private :: containersize =0
type(sdr_spacerInterwoven_type), private, allocatable:: val(:)

type, private :: spacer_filament_type

This type provides spacer length and width information

Components

TypeVisibilityAttributesNameInitial
type(tem_cylinder_type), private :: cylinder

cylinder typ

real(kind=rk), private :: filament_gap

spacer filament gab/distance between two parallel filament in length or width

integer, private :: nrFilament

number of filaments in length or width. Calculated by cylinder length/filament gab

real(kind=rk), private :: unitNormal(3)

unitNormal of the cylinder vector. needed for spacer filament offset direction.

type, private :: sdr_spacerInterwoven_type

This type provides information to create each interwoven spacer filament

Components

TypeVisibilityAttributesNameInitial
type(tem_cylinder_type), private :: cylinder

cylinder contains origin and vector defining magnitude and direction of the filament

real(kind=rk), private :: nrPeriod

number of sin period in length or width

real(kind=rk), private :: h_normal(3)

direction of height computed by cross product of length and width normal

integer, private :: shiftSin

Functions

public function sdr_spacerInterwovenCubeOverlap(spacerInterwoven, cube) result(overlap)

This function checks intesection of solid cube and spacer interwoven

Read more…

Arguments

TypeIntentOptionalAttributesName
type(sdr_spacerInterwoven_type), intent(in) :: spacerInterwoven

spacer geometry data

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

Return Value logical


Subroutines

public subroutine sdr_load_spacer(sprInterwovenArray, cylArray, spaObjArray, attr_pos, transform, conf, thandle)

\brief Loading spacer information from config file \n

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type), intent(inout) :: sprInterwovenArray

growing array of spacers

type(grw_cylinderarray_type), intent(inout) :: cylArray

growing array of cylinders

type(grw_spatialobjarray_type), intent(inout) :: spaObjArray

growing array of geometrical objects.

integer, intent(in) :: attr_pos

Position of the attribute to connect this object to.

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

transformation for spatial object

type(flu_state) :: conf

lua state

integer, intent(in) :: thandle

private subroutine sdr_load_spacer_single(sprInterwovenArray, cylArray, spaObjArray, attr_pos, transform, conf, thandle)

This routine single spacer from object table

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type), intent(inout) :: sprInterwovenArray

growing array of spacers

type(grw_cylinderarray_type), intent(inout) :: cylArray

growing array of cylinders

type(grw_spatialobjarray_type), intent(inout) :: spaObjArray

growing array of geometrical objects.

integer, intent(in) :: attr_pos

Position of the attribute to connect this object to.

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

transformation for spatial object

type(flu_state) :: conf

lua state

integer, intent(in) :: thandle

private subroutine load_spacer_filament(me, conf, thandle, transform, key)

This routine load the spacer filament type information for both length and width

Arguments

TypeIntentOptionalAttributesName
type(spacer_filament_type), intent(out) :: me
type(flu_state) :: conf
integer, intent(in) :: thandle
type(tem_transformation_type), intent(in) :: transform

transformation for spatial object

character(len=*) :: key

private subroutine append_spacerNonInterwoven(cylArray, spaObjArray, attr_pos, filament_cur, filament_adj)

This routine converts sdr_spacer_type to spacerInterwoven_type for as each filament and add it to the growing array of spacerInterwoven_type

Arguments

TypeIntentOptionalAttributesName
type(grw_cylinderarray_type), intent(inout) :: cylArray

growing array of cylinders

type(grw_spatialobjarray_type), intent(inout) :: spaObjArray

growing array of geometrical objects.

integer, intent(in) :: attr_pos

Position of the attribute to connect this object to.

type(spacer_filament_type), intent(in) :: filament_cur
type(spacer_filament_type), intent(in) :: filament_adj

private subroutine append_spacerInterwoven(sprInterwovenArray, spaObjArray, attr_pos, filament_cur, filament_adj, shiftSin, h_normal)

This routine converts sdr_spacer_type to spacerInterwoven_type for as each filament and add it to the growing array of spacerInterwoven_type

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type), intent(inout) :: sprInterwovenArray

growing array of spacers

type(grw_spatialobjarray_type), intent(inout) :: spaObjArray

growing array of geometrical objects.

integer, intent(in) :: attr_pos

Position of the attribute to connect this object to.

type(spacer_filament_type), intent(in) :: filament_cur
type(spacer_filament_type), intent(in) :: filament_adj
integer, intent(in) :: shiftSin
real(kind=rk), intent(in) :: h_normal(3)

private subroutine init_ga_spacerinterwoven(me, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type), intent(out) :: me
integer, intent(in), optional :: length

private subroutine destroy_ga_spacerinterwoven(me)

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type), intent(inout) :: me

private subroutine truncate_ga_spacerinterwoven(me)

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type) :: me

private subroutine empty_ga_spacerinterwoven(me)

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type) :: me

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

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

Read more…

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type) :: me
type(sdr_spacerInterwoven_type), intent(in) :: val
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

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

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

Read more…

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type) :: me
type(sdr_spacerInterwoven_type), intent(in) :: val(:)
integer, intent(in) :: pos
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_spacerinterwoven(me, val, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type) :: me
type(sdr_spacerInterwoven_type), intent(in) :: val
integer, intent(in), optional :: length

optional length to expand the array

private subroutine append_ga_spacerinterwoven_vec(me, val, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type) :: me
type(sdr_spacerInterwoven_type), intent(in) :: val(:)
integer, intent(in), optional :: length

optional length to expand the array

private subroutine expand_ga_spacerinterwoven(me, pos, length)

Arguments

TypeIntentOptionalAttributesName
type(grw_spacerinterwovenarray_type) :: me
integer, intent(in), optional :: pos
integer, intent(in), optional :: length

optional length to expand the array