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.
ELL_BC_DIRICHLETinteger(kind=I4P)parameterElliptic Dirichlet BC.
ELL_BC_PERIODICinteger(kind=I4P)parameterElliptic periodic BC.
ELL_BC_EXACT_OPENinteger(kind=I4P)parameterElliptic exact/open BC.
ELL_BC_PECinteger(kind=I4P)parameterElliptic Perfect Electric Conductor BC.
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
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

zero_ghost_cells

fortran
subroutine zero_ghost_cells(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

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

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.
ell_bc_typeinteger(kind=I4P)inElliptic BC types on the 6 faces.
local_map_bc_crowninteger(kind=I8P)inFace BC crown map.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalElectromagnetic constants.
epsreal(kind=R8P)inoptionalElectromagnetic constants.
fieldtype(field_object)inField (sibling realm component, threaded in).
freal(kind=R8P)inForcing distribution.
qreal(kind=R8P)inoutField variables.
rebuild_exact_openlogicalinoptionalRebuild 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

NameTypeIntentAttributesDescription
faceinteger(kind=I4P)inFace index in 1:6 numbering.
ivarinteger(kind=I4P)inVariable (start) index in q.
ngcinteger(kind=I4P)inGhost-cell width.
i_gcinteger(kind=I4P)inGhost-cell indexes.
j_gcinteger(kind=I4P)inGhost-cell indexes.
k_gcinteger(kind=I4P)inGhost-cell indexes.
b_gcinteger(kind=I4P)inGhost-cell indexes.
i_dinteger(kind=I4P)inMirror donor indexes.
j_dinteger(kind=I4P)inMirror donor indexes.
k_dinteger(kind=I4P)inMirror donor indexes.
qreal(kind=R8P)inoutField 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

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.
faceinteger(kind=I4P)inFace index in 1:6 numbering.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalElectromagnetic constants.
epsreal(kind=R8P)inoptionalElectromagnetic constants.
fieldtype(field_object)inField (sibling realm component, threaded in).
freal(kind=R8P)inForcing distribution.
i_gcinteger(kind=I4P)inGhost-cell indexes.
j_gcinteger(kind=I4P)inGhost-cell indexes.
k_gcinteger(kind=I4P)inGhost-cell indexes.
b_gcinteger(kind=I4P)inGhost-cell indexes.
qreal(kind=R8P)inoutField 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

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.
freal(kind=R8P)inForcing distribution.
qreal(kind=R8P)inoutField variables.
ell_bc_typeinteger(kind=I4P)inElliptic BC types on the 6 faces.
local_map_bc_crowninteger(kind=I8P)inBC crown map.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalElectromagnetic constants.
epsreal(kind=R8P)inoptionalElectromagnetic constants.
fieldtype(field_object)inField (sibling realm component, threaded in).
rebuild_exact_openlogicalinoptionalRebuild 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

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_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

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.
orderinteger(kind=I4P)inFormal order of the centered D(G) operator.
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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalElectromagnetic constants.
epsreal(kind=R8P)inoptionalElectromagnetic constants.
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC crown map.
progress_labelcharacter(len=*)inoptionalProgress message label.
progress_counterinteger(kind=I4P)inoutoptionalCompleted smoothing sweeps.
progress_totalinteger(kind=I4P)inoptionalPlanned smoothing sweeps.
progress_last_percentinteger(kind=I4P)inoutoptionalLast 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

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.
mureal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
epsreal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
ivarinteger(kind=I4P)inVariable (start) index in q.
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC 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

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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
epsreal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC crown map.
progress_labelcharacter(len=*)inoptionalProgress message label.
progress_counterinteger(kind=I4P)inoutoptionalCompleted smoothing sweeps.
progress_totalinteger(kind=I4P)inoptionalPlanned smoothing sweeps.
progress_last_percentinteger(kind=I4P)inoutoptionalLast 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

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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
epsreal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC crown map.
progress_labelcharacter(len=*)inoptionalProgress message label.
progress_counterinteger(kind=I4P)inoutoptionalCompleted smoothing sweeps.
progress_totalinteger(kind=I4P)inoptionalPlanned smoothing sweeps.
progress_last_percentinteger(kind=I4P)inoutoptionalLast 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

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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
epsreal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC crown map.
progress_labelcharacter(len=*)inoptionalProgress message label.
progress_counterinteger(kind=I4P)inoutoptionalCompleted smoothing sweeps.
progress_totalinteger(kind=I4P)inoptionalPlanned smoothing sweeps.
progress_last_percentinteger(kind=I4P)inoutoptionalLast 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

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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case.
epsreal(kind=R8P)inoptionalConstant of electromagnetism, =1 in adimensional case.
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC crown map.
progress_labelcharacter(len=*)inoptionalProgress message label.
progress_counterinteger(kind=I4P)inoutoptionalCompleted smoothing sweeps.
progress_totalinteger(kind=I4P)inoptionalPlanned smoothing sweeps.
progress_last_percentinteger(kind=I4P)inoutoptionalLast 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

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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalElectromagnetic constants.
epsreal(kind=R8P)inoptionalElectromagnetic constants.
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC 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

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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalElectromagnetic constants.
epsreal(kind=R8P)inoptionalElectromagnetic constants.
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC 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

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.
ivarinteger(kind=I4P)inVariable (start) index in q.
mureal(kind=R8P)inoptionalElectromagnetic constants.
epsreal(kind=R8P)inoptionalElectromagnetic constants.
fieldtype(field_object)inField (sibling realm component, threaded in).
ell_bc_typeinteger(kind=I4P)inElliptic BC type for each face.
local_map_bc_crowninteger(kind=I8P)inBC crown map.

Call graph

update_smoothing_progress

fortran
subroutine update_smoothing_progress(progress_label, progress_counter, progress_total, progress_last_percent, converged)

Arguments

NameTypeIntentAttributesDescription
progress_labelcharacter(len=*)inoptionalProgress message label.
progress_counterinteger(kind=I4P)inoutoptionalCompleted smoothing sweeps.
progress_totalinteger(kind=I4P)inoptionalPlanned smoothing sweeps.
progress_last_percentinteger(kind=I4P)inoutoptionalLast printed progress percentage.
convergedlogicalinoptionalForce 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

NameTypeIntentAttributesDescription
selfclass(flail_object)inTime handler.

Call graph