This module contains spacer definition and routines related to spacers
initialize the dynamic array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type), | intent(out) | :: | me | |||
| integer, | intent(in), | optional | :: | length |
truncate the array, meaning cut off the trailing empty entries
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me |
empty the entries without changing arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me |
destroy the dynamic array
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type), | intent(inout) | :: | me |
insert an element at a given position
adds the value to a given position inside the growing array.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
adds the values starting from a given position inside the growing array.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
append a value to the dynamic array and return its position.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me | ||||
| type(sdr_spacerInterwoven_type), | intent(in) | :: | val | |||
| integer, | intent(in), | optional | :: | length | optional length to expand the array |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me | ||||
| type(sdr_spacerInterwoven_type), | intent(in) | :: | val(:) | |||
| integer, | intent(in), | optional | :: | length | optional length to expand the array |
increase the size of the container for the array.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me | ||||
| integer, | intent(in), | optional | :: | pos | ||
| integer, | intent(in), | optional | :: | length | optional length to expand the array |
This type provides information to create spacer geometry
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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)
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private | :: | nvals | = | 0 | ||
| integer, | private | :: | containersize | = | 0 | ||
| type(sdr_spacerInterwoven_type), | private, | allocatable | :: | val(:) |
This type provides spacer length and width information
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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. |
This type provides information to create each interwoven spacer filament
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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 |
This function checks intesection of solid cube and spacer interwoven
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sdr_spacerInterwoven_type), | intent(in) | :: | spacerInterwoven | spacer geometry data |
||
| type(tem_cube_type), | intent(in) | :: | cube |
\brief Loading spacer information from config file \n
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
This routine single spacer from object table
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
This routine load the spacer filament type information for both length and width
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
This routine converts sdr_spacer_type to spacerInterwoven_type for as each filament and add it to the growing array of spacerInterwoven_type
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
This routine converts sdr_spacer_type to spacerInterwoven_type for as each filament and add it to the growing array of spacerInterwoven_type
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type), | intent(out) | :: | me | |||
| integer, | intent(in), | optional | :: | length |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me |
adds the value to a given position inside the growing array.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
adds the values starting from a given position inside the growing array.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me | ||||
| type(sdr_spacerInterwoven_type), | intent(in) | :: | val | |||
| integer, | intent(in), | optional | :: | length | optional length to expand the array |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me | ||||
| type(sdr_spacerInterwoven_type), | intent(in) | :: | val(:) | |||
| integer, | intent(in), | optional | :: | length | optional length to expand the array |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(grw_spacerinterwovenarray_type) | :: | me | ||||
| integer, | intent(in), | optional | :: | pos | ||
| integer, | intent(in), | optional | :: | length | optional length to expand the array |