sdr_geometry_module Module

This module provides the description of the complete geometry to mesh.


Uses

Used by

  • module~~sdr_geometry_module~~UsedByGraph module~sdr_geometry_module sdr_geometry_module module~sdr_boundary_module sdr_boundary_module module~sdr_boundary_module->module~sdr_geometry_module module~sdr_prototree_module sdr_protoTree_module module~sdr_boundary_module->module~sdr_prototree_module module~sdr_config_module sdr_config_module module~sdr_config_module->module~sdr_geometry_module module~sdr_flooding_module sdr_flooding_module module~sdr_flooding_module->module~sdr_geometry_module module~sdr_flooding_module->module~sdr_boundary_module module~sdr_flooding_module->module~sdr_config_module module~sdr_flooding_module->module~sdr_prototree_module module~sdr_proto2treelm_module sdr_proto2treelm_module module~sdr_proto2treelm_module->module~sdr_geometry_module module~sdr_proto2treelm_module->module~sdr_boundary_module module~sdr_proto2treelm_module->module~sdr_config_module module~sdr_proto2treelm_module->module~sdr_prototree_module module~sdr_prototree_module->module~sdr_geometry_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_config_module module~sdr_refinept_module->module~sdr_prototree_module program~seeder seeder program~seeder->module~sdr_geometry_module program~seeder->module~sdr_config_module program~seeder->module~sdr_flooding_module program~seeder->module~sdr_proto2treelm_module program~seeder->module~sdr_prototree_module program~seeder->module~sdr_refinept_module

Derived Types

type, public ::  sdr_geometry_type

Geometric description of the space to mesh.

Components

Type Visibility Attributes Name Initial
type(tem_cube_type), public :: universe

The universe given as a bounding cube.

type(grw_pointarray_type), public :: point

growing array of all points

type(grw_linearray_type), public :: line

growing array of all lines

type(grw_trianglearray_type), public :: triangle

growing array of all triangles

type(grw_boxarray_type), public :: box

growing array of all boxes

type(grw_periPlaneArray_type), public :: periPlane

growing array of periodic plane objects

type(grw_spherearray_type), public :: sphere

growing array of spheres

type(grw_ellipsoidarray_type), public :: ellipsoid

growing array of spheres

type(grw_cylinderarray_type), public :: cylinder

growing array of cylinders

type(grw_spacerInterwovenArray_type), public :: spacerInterwoven

growing array of spacer

type(grw_spatialObjArray_type), public :: spatialObj

Growing array of geometrical objects.

type(sdr_attrList_type), public :: attribute

Dynamic Unique array of attributes connected to the objects (seed, boundary or refinement)

logical, public :: smoothbounds = .true.

Smooth refinement towards boundaries.

logical, public :: smoothLevels = .true.

Smooth level jumps, avoid level jump > 1 in domain

integer, public :: nUserObjs

Number of user defined spatial objects i.e excluding spatial objects created for distance refine


Functions

public function is_intersecting(cube, geometry, obj_pos) result(intersects)

Test the intersection between the given cube and the object specified by obj_pos.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_cube_type), intent(in) :: cube
type(sdr_geometry_type), intent(in) :: geometry
integer, intent(in) :: obj_pos

Return Value logical


Subroutines

public subroutine sdr_load_geometry(me, subres_colors, invert_colors, conf)

Routine to load spatial object defined in config file and store in geometry type

Arguments

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

contains all geometry infomation

type(dyn_labelarray_type), intent(in) :: subres_colors

All the colors, which should be default use subelement resolution for their boundaries.

type(dyn_labelarray_type), intent(in) :: invert_colors
type(flu_State) :: conf

public subroutine sdr_load_spatialObject_single(me, subres_colors, conf, thandle)

Routine to load single spatial object table defined in config file

Arguments

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

contains all geometry infomation

type(dyn_labelarray_type), intent(in) :: subres_colors

All the colors, which should be default use subelement resolution for their boundaries.

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

public subroutine sdr_load_geom_table(me, conf, thandle, attr_pos, transform)

This routine loads the geometry table from the config file i.e loading different geometry kinds like canoND, cube, periodic, STL etc.

Arguments

Type IntentOptional Attributes Name
type(sdr_geometry_type), intent(inout) :: me
type(flu_State) :: conf
integer, intent(in) :: thandle
integer, intent(in) :: attr_pos

Position of the attribute to connect the geometric objects to.

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

public subroutine sdr_load_geom_table_single(me, conf, thandle, attr_pos, transform)

This routine reads a single geometry table from the config file i.e loading different geometry kinds like canoND, cube, periodic, STL etc.

Arguments

Type IntentOptional Attributes Name
type(sdr_geometry_type), intent(inout) :: me
type(flu_State) :: conf
integer, intent(in) :: thandle
integer, intent(in) :: attr_pos

Position of the attribute to connect all primitives to.

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

public subroutine sdr_append_distanceRefineObject(coord, dx, iLevel, geometry, intersected_first, intersected_last, intersected_object)

This routine created sphere objects and new attribute and extend a list of spatial objects if node intersected boundary has distance refine.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: coord(4)

Coordinate of current node

real(kind=rk), intent(in) :: dx
integer, intent(in) :: iLevel

Current node level

type(sdr_geometry_type), intent(inout) :: geometry

type which contains all geometry object infos

integer, intent(in) :: intersected_first

This node's first position in intersected_object

integer, intent(in) :: intersected_last

This node's last position in intersected_object

type(grw_intarray_type), intent(in) :: intersected_object

Growing array of intersected_objects