Defines various Conjugate Gradient methods.
|
type | cg_t |
| Standard preconditioned conjugate gradient method. More...
|
|
|
subroutine | cg_init (this, n, max_iter, m, rel_tol, abs_tol, monitor) |
| Initialise a standard PCG solver.
|
|
subroutine | cg_free (this) |
| Deallocate a standard PCG solver.
|
|
type(ksp_monitor_t) function | cg_solve (this, ax, x, f, n, coef, blst, gs_h, niter) |
| Standard PCG solve.
|
|
subroutine | second_cg_part (rtr, r, mult, w, alpha, n) |
|
type(ksp_monitor_t) function, dimension(3) | cg_solve_coupled (this, ax, x, y, z, fx, fy, fz, n, coef, blstx, blsty, blstz, gs_h, niter) |
| Standard PCG coupled solve.
|
|
◆ cg_free()
◆ cg_init()
subroutine cg::cg_init |
( |
class(cg_t), intent(inout), target |
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_solve()
type(ksp_monitor_t) function cg::cg_solve |
( |
class(cg_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(inout) |
blst, |
|
|
type(gs_t), intent(inout) |
gs_h, |
|
|
integer, intent(in), optional |
niter |
|
) |
| |
|
private |
◆ cg_solve_coupled()
type(ksp_monitor_t) function, dimension(3) cg::cg_solve_coupled |
( |
class(cg_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(inout) |
blstx, |
|
|
type(bc_list_t), intent(inout) |
blsty, |
|
|
type(bc_list_t), intent(inout) |
blstz, |
|
|
type(gs_t), intent(inout) |
gs_h, |
|
|
integer, intent(in), optional |
niter |
|
) |
| |
|
private |
◆ second_cg_part()
subroutine cg::second_cg_part |
( |
real(kind=rp), intent(inout) |
rtr, |
|
|
real(kind=rp), dimension(n), intent(inout) |
r, |
|
|
real(kind=rp), dimension(n), intent(in) |
mult, |
|
|
real(kind=rp), dimension(n), intent(in) |
w, |
|
|
real(kind=rp), intent(in) |
alpha, |
|
|
integer, intent(in) |
n |
|
) |
| |
|
private |
◆ cg_p_space