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 |