Skip to content

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

Variables

NameTypeAttributesDescription
SMOOTHING_MULTIGRIDcharacter(len=9)parameterSmoothing multigrid parameter.
SMOOTHING_GAUSS_SEIDELcharacter(len=12)parameterSmoothing Gauss-Seidel parameter.
SMOOTHING_SORcharacter(len=3)parameterSmoothing SOR parameter.
SMOOTHING_SOR_OMPcharacter(len=7)parameterSmoothing SOR-OpenMP parameter.
INI_SECTION_NAMEcharacter(len=14)parameterINI (config) file section name containing FLAIL configs.

Derived Types

flail_object

FLAIL Fortran Linear Algebra Interface Library class definition, CPU common backend.

Components

NameTypeAttributesDescription
mpihtype(mpih_object)MPI handler.
iterationsinteger(kind=I4P)Number of iterations, general.
iterations_initinteger(kind=I4P)Number of iterations on fine grid for initialize guess.
iterations_fineinteger(kind=I4P)Number of iterations on fine grid.
iterations_coarseinteger(kind=I4P)Number of iterations on coarse grid.
tolerancereal(kind=R8P)Tolerance on maximum residuals.
smoothingcharacter(len=:)allocatableIterative smoothing method.

Type-Bound Procedures

NameAttributesDescription
descriptionpass(self)Return pretty-printed object description.
initializepass(self)Initialize time handler.
load_from_filepass(self)Load config from file.

Interfaces

compute_smoothing_interface

Subroutines

initialize

Initialize time handler.

fortran
subroutine initialize(self, file_parameters)

Arguments

NameTypeIntentAttributesDescription
selfclass(flail_object)inoutTime handler.
file_parameterstype(file_ini)inSimulation 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

NameTypeIntentAttributesDescription
selfclass(flail_object)inoutTime handler.
file_parameterstype(file_ini)inSimulation parameters ini file handler.
go_on_faillogicalinoptionalGo on if load fails.

Call graph

apply_bc_dirichlet

fortran
subroutine apply_bc_dirichlet(ni, nj, nk, ngc, blocks_number, q)

Arguments

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
qreal(kind=R8P)inoutField variables.

Call graph

compute_prolongation

Compute trilinear prolongation.

fortran
subroutine compute_prolongation(ngc, nic, njc, nkc, nv, blocks_number, coarse, fine)

Arguments

NameTypeIntentAttributesDescription
ngcinteger(kind=I4P)inNumber of ghost cells.
nicinteger(kind=I4P)inCoarse grid dimensions.
njcinteger(kind=I4P)inCoarse grid dimensions.
nkcinteger(kind=I4P)inCoarse grid dimensions.
nvinteger(kind=I4P)inNumber of q variables.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
coarsereal(kind=R8P)inCoarse grid field variable.
finereal(kind=R8P)inoutFine 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

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
nvinteger(kind=I4P)inNumber of q variables.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
dxyzreal(kind=R8P)inSpace steps.
freal(kind=R8P)inForcing distribution.
qreal(kind=R8P)inField variables.
dqreal(kind=R8P)inoutResiduals.

Call graph

compute_restriction

Compute full weighting restriction.

fortran
subroutine compute_restriction(ngc, nic, njc, nkc, nv, blocks_number, fine, coarse)

Arguments

NameTypeIntentAttributesDescription
ngcinteger(kind=I4P)inNumber of ghost cells.
nicinteger(kind=I4P)inCoarse grid dimensions.
njcinteger(kind=I4P)inCoarse grid dimensions.
nkcinteger(kind=I4P)inCoarse grid dimensions.
nvinteger(kind=I4P)inNumber of q variables.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
finereal(kind=R8P)inFine grid field variable.
coarsereal(kind=R8P)inoutCoarse 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

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
nvinteger(kind=I4P)inNumber of q variables.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
dxyzreal(kind=R8P)inSpace steps.
freal(kind=R8P)inForcing distribution.
qreal(kind=R8P)inoutField variables.
dqreal(kind=R8P)inoutoptionalResiduals.
dq_maxreal(kind=R8P)inoutoptionalMaximum residual.
iterations_initinteger(kind=I4P)inoptionalSmoothing iterations to initialize guess.
iterations_fineinteger(kind=I4P)inoptionalSmoothing iterations for fine grid.
iterations_coarseinteger(kind=I4P)inoptionalSmoothing 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

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
nvinteger(kind=I4P)inNumber of q variables.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
dxyzreal(kind=R8P)inSpace steps.
freal(kind=R8P)inForcing distribution.
qreal(kind=R8P)inoutField variables.
dqreal(kind=R8P)inoutoptionalResiduals.
dq_maxreal(kind=R8P)inoutoptionalMaximum residual.
iterations_initinteger(kind=I4P)inoptionalSmoothing iterations to initialize guess.
iterations_fineinteger(kind=I4P)inoptionalSmoothing iterations for fine grid.
iterations_coarseinteger(kind=I4P)inoptionalSmoothing 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

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
nvinteger(kind=I4P)inNumber of q variables.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
dxyzreal(kind=R8P)inSpace steps.
freal(kind=R8P)inForcing distribution.
qreal(kind=R8P)inoutField variables.
dqreal(kind=R8P)inoutoptionalResiduals.
dq_maxreal(kind=R8P)inoutoptionalMaximum residual.
iterations_initinteger(kind=I4P)inoptionalSmoothing iterations to initialize guess.
iterations_fineinteger(kind=I4P)inoptionalSmoothing iterations for fine grid.
iterations_coarseinteger(kind=I4P)inoptionalSmoothing 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

NameTypeIntentAttributesDescription
niinteger(kind=I4P)inGrid dimensions.
njinteger(kind=I4P)inGrid dimensions.
nkinteger(kind=I4P)inGrid dimensions.
ngcinteger(kind=I4P)inGrid dimensions.
nvinteger(kind=I4P)inNumber of q variables.
blocks_numberinteger(kind=I4P)inNumber of current blocks.
dxyzreal(kind=R8P)inSpace steps.
freal(kind=R8P)inForcing distribution.
qreal(kind=R8P)inoutField variables.
dqreal(kind=R8P)inoutoptionalResiduals.
dq_maxreal(kind=R8P)inoutoptionalMaximum residual.
iterations_initinteger(kind=I4P)inoptionalSmoothing iterations to initialize guess.
iterations_fineinteger(kind=I4P)inoptionalSmoothing iterations for fine grid.
iterations_coarseinteger(kind=I4P)inoptionalSmoothing 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

NameTypeIntentAttributesDescription
selfclass(flail_object)inTime handler.

Call graph