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
- zero_ghost_cells
- apply_bc_elliptic_from_faces
- apply_bc_elliptic_face_pec
- apply_bc_elliptic_face_exact_open
- apply_bc_elliptic
- compute_prolongation
- compute_laplacian_residuals
- compute_restriction
- compute_smoothing_gauss_seidel_centered_dg
- compute_smoothing_gauss_seidel
- compute_smoothing_gauss_seidel_2nd
- compute_smoothing_gauss_seidel_4th
- compute_smoothing_gauss_seidel_6th
- compute_smoothing_gauss_seidel_8th
- compute_smoothing_multigrid
- compute_smoothing_sor
- compute_smoothing_sor_omp
- update_smoothing_progress
- 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. |
ELL_BC_DIRICHLET | integer(kind=I4P) | parameter | Elliptic Dirichlet BC. |
ELL_BC_PERIODIC | integer(kind=I4P) | parameter | Elliptic periodic BC. |
ELL_BC_EXACT_OPEN | integer(kind=I4P) | parameter | Elliptic exact/open BC. |
ELL_BC_PEC | integer(kind=I4P) | parameter | Elliptic Perfect Electric Conductor BC. |
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 |
|---|---|---|---|
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
zero_ghost_cells
fortran
subroutine zero_ghost_cells(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
apply_bc_elliptic_from_faces
Apply elliptic BCs using the face/crown map built for the hyperbolic BC machinery.
fortran
subroutine apply_bc_elliptic_from_faces(ni, nj, nk, ngc, blocks_number, ell_bc_type, local_map_bc_crown, ivar, mu, eps, field, f, q, rebuild_exact_open)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. | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC types on the 6 faces. | |
local_map_bc_crown | integer(kind=I8P) | in | Face BC crown map. | |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Electromagnetic constants. |
eps | real(kind=R8P) | in | optional | Electromagnetic constants. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
f | real(kind=R8P) | in | Forcing distribution. | |
q | real(kind=R8P) | inout | Field variables. | |
rebuild_exact_open | logical | in | optional | Rebuild exact/open BC values. |
Call graph
apply_bc_elliptic_face_pec
Reflect one elliptic ghost cell according to PEC parity.
fortran
subroutine apply_bc_elliptic_face_pec(face, ivar, ngc, i_gc, j_gc, k_gc, b_gc, i_d, j_d, k_d, q)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
face | integer(kind=I4P) | in | Face index in 1:6 numbering. | |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
ngc | integer(kind=I4P) | in | Ghost-cell width. | |
i_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
j_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
k_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
b_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
i_d | integer(kind=I4P) | in | Mirror donor indexes. | |
j_d | integer(kind=I4P) | in | Mirror donor indexes. | |
k_d | integer(kind=I4P) | in | Mirror donor indexes. | |
q | real(kind=R8P) | inout | Field variables. |
Call graph
apply_bc_elliptic_face_exact_open
Reconstruct one exact/open elliptic ghost cell from the volumetric source distribution.
fortran
subroutine apply_bc_elliptic_face_exact_open(ni, nj, nk, ngc, blocks_number, face, ivar, mu, eps, field, f, i_gc, j_gc, k_gc, b_gc, 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. | |
face | integer(kind=I4P) | in | Face index in 1:6 numbering. | |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Electromagnetic constants. |
eps | real(kind=R8P) | in | optional | Electromagnetic constants. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
f | real(kind=R8P) | in | Forcing distribution. | |
i_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
j_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
k_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
b_gc | integer(kind=I4P) | in | Ghost-cell indexes. | |
q | real(kind=R8P) | inout | Field variables. |
Call graph
apply_bc_elliptic
Apply elliptic BCs using the face/crown map built for the hyperbolic BC machinery.
fortran
subroutine apply_bc_elliptic(ni, nj, nk, ngc, blocks_number, f, q, ell_bc_type, local_map_bc_crown, ivar, mu, eps, field, rebuild_exact_open)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. | |
f | real(kind=R8P) | in | Forcing distribution. | |
q | real(kind=R8P) | inout | Field variables. | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC types on the 6 faces. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. | |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Electromagnetic constants. |
eps | real(kind=R8P) | in | optional | Electromagnetic constants. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
rebuild_exact_open | logical | in | optional | Rebuild exact/open BC values. |
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_centered_dg
Compute smoothing by Gauss-Seidel for the centered D(G) elliptic operator.
On the uniform Cartesian blocks used here, centered FD and centered FV share the same composed D(G) coefficients. The dispatch therefore depends only on the formal order, not on fdv_scheme.
fortran
subroutine compute_smoothing_gauss_seidel_centered_dg(ni, nj, nk, ngc, nv, blocks_number, order, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown, progress_label, progress_counter, progress_total, progress_last_percent)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. | |
order | integer(kind=I4P) | in | Formal order of the centered D(G) operator. | |
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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Electromagnetic constants. |
eps | real(kind=R8P) | in | optional | Electromagnetic constants. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. | |
progress_label | character(len=*) | in | optional | Progress message label. |
progress_counter | integer(kind=I4P) | inout | optional | Completed smoothing sweeps. |
progress_total | integer(kind=I4P) | in | optional | Planned smoothing sweeps. |
progress_last_percent | integer(kind=I4P) | inout | optional | Last printed progress percentage. |
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, mu, eps, ivar, field, ell_bc_type, local_map_bc_crown)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. |
mu | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
eps | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. |
Call graph
compute_smoothing_gauss_seidel_2nd
Compute smoothing by Gauss-Seidel using L = D(G), with second-order centered first-derivative operators.
fortran
subroutine compute_smoothing_gauss_seidel_2nd(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown, progress_label, progress_counter, progress_total, progress_last_percent)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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
eps | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. | |
progress_label | character(len=*) | in | optional | Progress message label. |
progress_counter | integer(kind=I4P) | inout | optional | Completed smoothing sweeps. |
progress_total | integer(kind=I4P) | in | optional | Planned smoothing sweeps. |
progress_last_percent | integer(kind=I4P) | inout | optional | Last printed progress percentage. |
Call graph
compute_smoothing_gauss_seidel_4th
Compute smoothing by Gauss-Seidel using L = D(G), with fourth-order centered first-derivative operators.
fortran
subroutine compute_smoothing_gauss_seidel_4th(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown, progress_label, progress_counter, progress_total, progress_last_percent)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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
eps | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. | |
progress_label | character(len=*) | in | optional | Progress message label. |
progress_counter | integer(kind=I4P) | inout | optional | Completed smoothing sweeps. |
progress_total | integer(kind=I4P) | in | optional | Planned smoothing sweeps. |
progress_last_percent | integer(kind=I4P) | inout | optional | Last printed progress percentage. |
Call graph
compute_smoothing_gauss_seidel_6th
Compute smoothing by Gauss-Seidel using L = D(G), with sixth-order centered first-derivative operators.
fortran
subroutine compute_smoothing_gauss_seidel_6th(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown, progress_label, progress_counter, progress_total, progress_last_percent)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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
eps | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. | |
progress_label | character(len=*) | in | optional | Progress message label. |
progress_counter | integer(kind=I4P) | inout | optional | Completed smoothing sweeps. |
progress_total | integer(kind=I4P) | in | optional | Planned smoothing sweeps. |
progress_last_percent | integer(kind=I4P) | inout | optional | Last printed progress percentage. |
Call graph
compute_smoothing_gauss_seidel_8th
Compute smoothing by Gauss-Seidel using L = D(G), with eighth-order centered first-derivative operators.
fortran
subroutine compute_smoothing_gauss_seidel_8th(ni, nj, nk, ngc, nv, blocks_number, dxyz, f, q, dq, dq_max, iterations_init, iterations_fine, iterations_coarse, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown, progress_label, progress_counter, progress_total, progress_last_percent)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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case. |
eps | real(kind=R8P) | in | optional | Constant of electromagnetism, =1 in adimensional case. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. | |
progress_label | character(len=*) | in | optional | Progress message label. |
progress_counter | integer(kind=I4P) | inout | optional | Completed smoothing sweeps. |
progress_total | integer(kind=I4P) | in | optional | Planned smoothing sweeps. |
progress_last_percent | integer(kind=I4P) | inout | optional | Last printed progress percentage. |
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, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown)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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Electromagnetic constants. |
eps | real(kind=R8P) | in | optional | Electromagnetic constants. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. |
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, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown)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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Electromagnetic constants. |
eps | real(kind=R8P) | in | optional | Electromagnetic constants. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. |
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, ivar, mu, eps, field, ell_bc_type, local_map_bc_crown)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. |
ivar | integer(kind=I4P) | in | Variable (start) index in q. | |
mu | real(kind=R8P) | in | optional | Electromagnetic constants. |
eps | real(kind=R8P) | in | optional | Electromagnetic constants. |
field | type(field_object) | in | Field (sibling realm component, threaded in). | |
ell_bc_type | integer(kind=I4P) | in | Elliptic BC type for each face. | |
local_map_bc_crown | integer(kind=I8P) | in | BC crown map. |
Call graph
update_smoothing_progress
fortran
subroutine update_smoothing_progress(progress_label, progress_counter, progress_total, progress_last_percent, converged)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
progress_label | character(len=*) | in | optional | Progress message label. |
progress_counter | integer(kind=I4P) | inout | optional | Completed smoothing sweeps. |
progress_total | integer(kind=I4P) | in | optional | Planned smoothing sweeps. |
progress_last_percent | integer(kind=I4P) | inout | optional | Last printed progress percentage. |
converged | logical | in | optional | Force 100% when converged. |
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