Defines various Conjugate Gradient methods for accelerators.
|
subroutine | cg_device_init (this, n, max_iter, M, rel_tol, abs_tol, monitor) |
| Initialise a device based PCG solver. More...
|
|
subroutine | cg_device_free (this) |
| Deallocate a device based PCG solver. More...
|
|
type(ksp_monitor_t) function | cg_device_solve (this, Ax, x, f, n, coef, blst, gs_h, niter) |
| Standard PCG solve. More...
|
|
type(ksp_monitor_t) function, dimension(3) | cg_device_solve_coupled (this, Ax, x, y, z, fx, fy, fz, n, coef, blstx, blsty, blstz, gs_h, niter) |
| Standard PCG coupled solve. More...
|
|
◆ cg_device_free()
subroutine cg_device::cg_device_free |
( |
class(cg_device_t), intent(inout) |
this | ) |
|
◆ cg_device_init()
subroutine cg_device::cg_device_init |
( |
class(cg_device_t), intent(inout) |
this, |
|
|
integer, intent(in) |
n, |
|
|
integer, intent(in) |
max_iter, |
|
|
class(pc_t), intent(in), optional, target |
M, |
|
|
real(kind=rp), intent(in), optional |
rel_tol, |
|
|
real(kind=rp), intent(in), optional |
abs_tol, |
|
|
logical, intent(in), optional |
monitor |
|
) |
| |
◆ cg_device_solve()
type(ksp_monitor_t) function cg_device::cg_device_solve |
( |
class(cg_device_t), intent(inout) |
this, |
|
|
class(ax_t), intent(in) |
Ax, |
|
|
type(field_t), intent(inout) |
x, |
|
|
real(kind=rp), dimension(n), intent(in) |
f, |
|
|
integer, intent(in) |
n, |
|
|
type(coef_t), intent(inout) |
coef, |
|
|
type(bc_list_t), intent(in) |
blst, |
|
|
type(gs_t), intent(inout) |
gs_h, |
|
|
integer, intent(in), optional |
niter |
|
) |
| |
◆ cg_device_solve_coupled()
type(ksp_monitor_t) function, dimension(3) cg_device::cg_device_solve_coupled |
( |
class(cg_device_t), intent(inout) |
this, |
|
|
class(ax_t), intent(in) |
Ax, |
|
|
type(field_t), intent(inout) |
x, |
|
|
type(field_t), intent(inout) |
y, |
|
|
type(field_t), intent(inout) |
z, |
|
|
real(kind=rp), dimension(n), intent(in) |
fx, |
|
|
real(kind=rp), dimension(n), intent(in) |
fy, |
|
|
real(kind=rp), dimension(n), intent(in) |
fz, |
|
|
integer, intent(in) |
n, |
|
|
type(coef_t), intent(inout) |
coef, |
|
|
type(bc_list_t), intent(in) |
blstx, |
|
|
type(bc_list_t), intent(in) |
blsty, |
|
|
type(bc_list_t), intent(in) |
blstz, |
|
|
type(gs_t), intent(inout) |
gs_h, |
|
|
integer, intent(in), optional |
niter |
|
) |
| |