Collection of regions
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(block_obj), | public, | pointer | :: | block | => | null() |
Associated block structure |
| integer, | public | :: | count | = | 0 |
Total number of regions across all MPI ranks |
|
| type(parallel_obj), | public, | pointer | :: | parallel | => | null() |
Associated parallel structure |
| type(region_obj), | public, | allocatable | :: | region(:) |
Array of regions |
||
| type(hashtbl_obj), | private | :: | tbl |
Hash table |
Add a new region to bc_set
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | name |
Name of region |
||
| real(kind=wp), | intent(in) | :: | xlo(3) |
Position of lower left corner |
||
| real(kind=wp), | intent(in) | :: | xhi(3) |
Position of upper right corner |
||
| character(len=*), | intent(in) | :: | normal |
Oriented normal |
Build an integer field, where cells=0 denotes interior cells, and cells=1 denotes boundary cells for input variable
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | name |
Name of the variable |
||
| type(eulerian_obj_i), | intent(inout) | :: | mask |
Mask for this variable |
Check whether there is BC for a given variable on a given region
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | region |
Region name |
||
| character(len=*), | intent(in) | :: | var |
Variable name |
Make sure bounds represent a plane
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xlo(3) |
Lower left corner |
||
| real(kind=wp), | intent(in) | :: | xhi(3) |
Upper right corner |
True, if bounds represent a plane
Resize array to accomodate a new element
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
Finalizes bc_set
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
Fetches a pointer to the val array describing the Dirichlet or Neumann BC of a given variable on a given region.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | region |
Region name |
||
| character(len=*), | intent(in) | :: | var |
Variable name |
||
| real(kind=wp), | intent(inout), | pointer | :: | val(:,:,:) |
Pointer |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | region |
Region name |
||
| character(len=*), | intent(in) | :: | var |
Variable name |
Returns the extents (lo and hi bounds) of a region.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | name |
Region name |
Returns the index of a region, or -1 if not found.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | name |
Region name |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | normal |
String denoting the normal direction |
||
| integer, | intent(out) | :: | side |
Side (=BC_LEFT,BC_RIGHT) |
||
| integer, | intent(out) | :: | dir |
Direction (=1,2,3,) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | region |
Region name |
||
| integer, | intent(out) | :: | side |
Side (=BC_LEFT,BC_RIGHT) |
||
| integer, | intent(out) | :: | dir |
Direction (=1,2,3,) |
Print to stdout information on bc_set, for debugging
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
Initializes bc_set
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
||
| type(block_obj), | intent(in), | target | :: | block |
A block object |
|
| type(parallel_obj), | intent(in), | target | :: | parallel |
parallel structure from main program |
Read boundary conditions from file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
||
| integer, | intent(out) | :: | iter |
Iteration read from file |
||
| real(kind=wp), | intent(out) | :: | time |
Time read from file |
||
| character(len=*), | intent(in), | optional | :: | name |
Name of file to read |
Set boundary condition of a given type, for a given variable on a given region.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | region |
Region name |
||
| integer, | intent(in) | :: | type |
BC type |
||
| character(len=*), | intent(in), | optional | :: | var |
Variable name |
Imposes boundary conditions for a given variable.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| type(eulerian_obj_r), | intent(inout) | :: | var |
Eulerian variable |
Update ghostboundaries to enforce Dirichlet BC
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | region |
Region name |
||
| type(eulerian_obj_r), | intent(inout) | :: | var |
Eulerian variable |
Update ghostboundaries to enforce Neumann BC
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(in) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | region |
Region name |
||
| type(eulerian_obj_r), | intent(inout) | :: | var |
Eulerian variable |
Finds the intersection between block owned by this MPI rank, and the plane defining the region
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
||
| character(len=*), | intent(in) | :: | name |
Region name |
Write bc_set to disk using HDF5. The file structure follows this convention: / (root) !-- Time !-- Iter !-- Region 1 !-- xlo !-- xhi !-- dir !-- side |-- Var 1 |-- Type |-- Values(:,:,:) !-- Var 2 . . !-- Region 2 . .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bc_set), | intent(inout) | :: | this |
Boundary conditions |
||
| integer, | intent(in) | :: | iter |
Iteration at write |
||
| real(kind=wp), | intent(in) | :: | time |
Time at write |
||
| character(len=*), | intent(in), | optional | :: | name |
Name of file to write |