Defines regions where boundary conditions are applied.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(bc_obj), | public, | allocatable | :: | BC(:) |
Variables on this region |
||
| integer, | public | :: | count | = | 0 |
Count of variables defined on this region |
|
| integer, | public | :: | dir |
Normal direction (=1,2,3) |
|||
| integer, | public | :: | hi(3) | = | -100 |
Grid hi bound |
|
| integer, | public | :: | lo(3) | = | -100 |
Grid low bound |
|
| character(len=:), | public, | allocatable | :: | name |
Name of this region |
||
| type(block_obj), | public | :: | region |
Block/grid for this region |
|||
| integer, | public | :: | side |
Side (BC_LEFT or BC_RIGHT) |
|||
| real(kind=wp), | public | :: | xhi(3) |
Position of upper right corner |
|||
| real(kind=wp), | public | :: | xlo(3) |
Position of lower left corner |
|||
| type(hashtbl_obj), | private | :: | tbl |
Hash table |
Adds a new variable to region.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(region_obj), | intent(inout) | :: | this |
A boundary region object |
||
| character(len=*), | intent(in) | :: | name |
Region name |
||
| integer, | intent(in) | :: | type |
Type of boundary condition |
||
| type(extent_obj), | intent(in) | :: | extents |
Region extents |
Resizes array to accomodate a new element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(region_obj), | intent(inout) | :: | this |
A boundary region object |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(region_obj), | intent(inout) | :: | this |
A boundary region object |
Returns index of a variable in this region, or -1 if not found.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(region_obj), | intent(in) | :: | this |
A boundary region object |
||
| character(len=*), | intent(in) | :: | name |
Name of region |
Result
Initializes a region
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(region_obj), | intent(inout) | :: | this |
A boundary region object |
||
| character(len=*), | intent(in) | :: | name |
Name of region |
||
| real(kind=wp), | intent(in) | :: | xlo(3) |
Position of low left corner |
||
| real(kind=wp), | intent(in) | :: | xhi(3) |
Position of high right corner |
||
| integer, | intent(in) | :: | dir |
Direction of normal |
||
| integer, | intent(in) | :: | side |
Side (left or right) of the cell |
type :: region_obj !> Defines regions where boundary conditions are applied. character(len=:), allocatable :: name !! Name of this region type(block_obj) :: region !! Block/grid for this region real(wp) :: xlo(3) !! Position of lower left corner real(wp) :: xhi(3) !! Position of upper right corner integer :: lo(3)=-100 !! Grid low bound integer :: hi(3)=-100 !! Grid hi bound integer :: dir !! Normal direction (=1,2,3) integer :: side !! Side (BC_LEFT or BC_RIGHT) integer :: count=0 !! Count of variables defined on this region type(bc_obj), allocatable :: BC(:) !! Variables on this region type(hashtbl_obj), private :: tbl !! Hash table contains procedure :: Initialize => region_obj_Init procedure :: Finalize => region_obj_Final procedure :: Add => region_obj_Add procedure :: Expand => region_obj_Expand procedure :: GetBCIndex => region_obj_GetBCIndex end type region_obj