Appearance
adam_flail_object
ADAM, FLAIL Fortran Linear Algebra Interface Library class definition, CPU common backend.
Source: src/lib/common/adam_flail_object.F90
Dependencies
Contents
- flail_object
- compute_smoothing_interface
- initialize
- load_from_file
- apply_bc_dirichlet
- compute_prolongation
- compute_laplacian_residuals
- compute_restriction
- compute_smoothing_gauss_seidel
- compute_smoothing_multigrid
- compute_smoothing_sor
- compute_smoothing_sor_omp
- description
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
SMOOTHING_MULTIGRID | character(len=9) | parameter | Smoothing multigrid parameter. |
SMOOTHING_GAUSS_SEIDEL | character(len=12) | parameter | Smoothing Gauss-Seidel parameter. |
SMOOTHING_SOR | character(len=3) | parameter | Smoothing SOR parameter. |
SMOOTHING_SOR_OMP | character(len=7) | parameter | Smoothing SOR-OpenMP parameter. |
INI_SECTION_NAME | character(len=14) | parameter | INI (config) file section name containing FLAIL configs. |
Derived Types
flail_object
FLAIL Fortran Linear Algebra Interface Library class definition, CPU common backend.
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
mpih | type(mpih_object) | MPI handler. | |
iterations | integer(kind=I4P) | Number of iterations, general. | |
iterations_init | integer(kind=I4P) | Number of iterations on fine grid for initialize guess. | |
iterations_fine | integer(kind=I4P) | Number of iterations on fine grid. | |
iterations_coarse | integer(kind=I4P) | Number of iterations on coarse grid. | |
tolerance | real(kind=R8P) | Tolerance on maximum residuals. | |
smoothing | character(len=:) | allocatable | Iterative smoothing method. |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
description | pass(self) | Return pretty-printed object description. |
initialize | pass(self) | Initialize time handler. |
load_from_file | pass(self) | Load config from file. |
Interfaces
compute_smoothing_interface
Subroutines
initialize
Initialize time handler.
fortran
subroutine initialize(self, file_parameters)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(flail_object) | inout | Time handler. | |
file_parameters | type(file_ini) | in | Simulation parameters ini file handler. |
Call graph
load_from_file
Load config from file.
fortran
subroutine load_from_file(self, file_parameters, go_on_fail)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(flail_object) | inout | Time handler. | |
file_parameters | type(file_ini) | in | Simulation parameters ini file handler. | |
go_on_fail | logical | in | optional | Go on if load fails. |
Call graph
apply_bc_dirichlet
fortran
subroutine apply_bc_dirichlet(ni, nj, nk, ngc, blocks_number, q)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
q | real(kind=R8P) | inout | Field variables. |
Call graph
compute_prolongation
Compute trilinear prolongation.
fortran
subroutine compute_prolongation(ngc, nic, njc, nkc, nv, blocks_number, coarse, fine)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ngc | integer(kind=I4P) | in | Number of ghost cells. | |
nic | integer(kind=I4P) | in | Coarse grid dimensions. | |
njc | integer(kind=I4P) | in | Coarse grid dimensions. | |
nkc | integer(kind=I4P) | in | Coarse grid dimensions. | |
nv | integer(kind=I4P) | in | Number of q variables. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
coarse | real(kind=R8P) | in | Coarse grid field variable. | |
fine | real(kind=R8P) | inout | Fine grid field variable. |
Call graph
compute_laplacian_residuals
Compute residuals of f-laplacian(q).
fortran
subroutine compute_laplacian_residuals(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
nv | integer(kind=I4P) | in | Number of q variables. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
dxyz | real(kind=R8P) | in | Space steps. | |
f | real(kind=R8P) | in | Forcing distribution. | |
q | real(kind=R8P) | in | Field variables. | |
dq | real(kind=R8P) | inout | Residuals. |
Call graph
compute_restriction
Compute full weighting restriction.
fortran
subroutine compute_restriction(ngc, nic, njc, nkc, nv, blocks_number, fine, coarse)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ngc | integer(kind=I4P) | in | Number of ghost cells. | |
nic | integer(kind=I4P) | in | Coarse grid dimensions. | |
njc | integer(kind=I4P) | in | Coarse grid dimensions. | |
nkc | integer(kind=I4P) | in | Coarse grid dimensions. | |
nv | integer(kind=I4P) | in | Number of q variables. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
fine | real(kind=R8P) | in | Fine grid field variable. | |
coarse | real(kind=R8P) | inout | Coarse grid field variable. |
Call graph
compute_smoothing_gauss_seidel
Compute smoothing by Gauss-Seidel method.
fortran
subroutine compute_smoothing_gauss_seidel(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
nv | integer(kind=I4P) | in | Number of q variables. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
dxyz | real(kind=R8P) | in | Space steps. | |
f | real(kind=R8P) | in | Forcing distribution. | |
q | real(kind=R8P) | inout | Field variables. | |
dq | real(kind=R8P) | inout | optional | Residuals. |
dq_max | real(kind=R8P) | inout | optional | Maximum residual. |
iterations_init | integer(kind=I4P) | in | optional | Smoothing iterations to initialize guess. |
iterations_fine | integer(kind=I4P) | in | optional | Smoothing iterations for fine grid. |
iterations_coarse | integer(kind=I4P) | in | optional | Smoothing iterations for coarse grid. |
Call graph
compute_smoothing_multigrid
fortran
subroutine compute_smoothing_multigrid(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
nv | integer(kind=I4P) | in | Number of q variables. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
dxyz | real(kind=R8P) | in | Space steps. | |
f | real(kind=R8P) | in | Forcing distribution. | |
q | real(kind=R8P) | inout | Field variables. | |
dq | real(kind=R8P) | inout | optional | Residuals. |
dq_max | real(kind=R8P) | inout | optional | Maximum residual. |
iterations_init | integer(kind=I4P) | in | optional | Smoothing iterations to initialize guess. |
iterations_fine | integer(kind=I4P) | in | optional | Smoothing iterations for fine grid. |
iterations_coarse | integer(kind=I4P) | in | optional | Smoothing iterations for coarse grid. |
Call graph
compute_smoothing_sor
Compute smoothing by SOR, Successive Overrelaxation.
fortran
subroutine compute_smoothing_sor(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
nv | integer(kind=I4P) | in | Number of q variables. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
dxyz | real(kind=R8P) | in | Space steps. | |
f | real(kind=R8P) | in | Forcing distribution. | |
q | real(kind=R8P) | inout | Field variables. | |
dq | real(kind=R8P) | inout | optional | Residuals. |
dq_max | real(kind=R8P) | inout | optional | Maximum residual. |
iterations_init | integer(kind=I4P) | in | optional | Smoothing iterations to initialize guess. |
iterations_fine | integer(kind=I4P) | in | optional | Smoothing iterations for fine grid. |
iterations_coarse | integer(kind=I4P) | in | optional | Smoothing iterations for coarse grid. |
Call graph
compute_smoothing_sor_omp
Compute smoothing by SOR, Successive Overrelaxation (parallel OpenMP) method: red-black 3D scheme.
fortran
subroutine compute_smoothing_sor_omp(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ni | integer(kind=I4P) | in | Grid dimensions. | |
nj | integer(kind=I4P) | in | Grid dimensions. | |
nk | integer(kind=I4P) | in | Grid dimensions. | |
ngc | integer(kind=I4P) | in | Grid dimensions. | |
nv | integer(kind=I4P) | in | Number of q variables. | |
blocks_number | integer(kind=I4P) | in | Number of current blocks. | |
dxyz | real(kind=R8P) | in | Space steps. | |
f | real(kind=R8P) | in | Forcing distribution. | |
q | real(kind=R8P) | inout | Field variables. | |
dq | real(kind=R8P) | inout | optional | Residuals. |
dq_max | real(kind=R8P) | inout | optional | Maximum residual. |
iterations_init | integer(kind=I4P) | in | optional | Smoothing iterations to initialize guess. |
iterations_fine | integer(kind=I4P) | in | optional | Smoothing iterations for fine grid. |
iterations_coarse | integer(kind=I4P) | in | optional | Smoothing iterations for coarse grid. |
Call graph
Functions
description
Return a pretty-formatted object description.
Attributes: pure
Returns: character(len=:)
fortran
function description(self) result(desc)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(flail_object) | in | Time handler. |
Call graph