Neko  0.8.1
A portable framework for high-order spectral element flow simulations
jacobi Module Reference

Jacobi preconditioner. More...

Data Types

type  jacobi_t
 Defines a jacobi preconditioner. More...
 

Functions/Subroutines

subroutine jacobi_init (this, coef, dof, gs_h)
 
subroutine jacobi_free (this)
 
subroutine jacobi_solve (this, z, r, n)
 The jacobi preconditioner \( J z = r \) \( z = J^{-1}r\) where \( J^{-1} ~= 1/diag(A) \). More...
 
subroutine jacobi_update (this)
 Update Jacobi preconditioner if the geometry G has changed. More...
 
subroutine jacobi_update_lx (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n, lx)
 Generic CPU kernel for updating the Jacobi preconditioner. More...
 
subroutine jacobi_update_lx14 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx13 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx12 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx11 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx10 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx9 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx8 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx7 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx6 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx5 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx4 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx3 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 
subroutine jacobi_update_lx2 (d, dxt, dyt, dzt, G11, G22, G33, G12, G13, G23, dfrmd_el, n)
 

Detailed Description

Jacobi preconditioner.

Function/Subroutine Documentation

◆ jacobi_free()

subroutine jacobi::jacobi_free ( class(jacobi_t), intent(inout)  this)
private

Definition at line 74 of file pc_jacobi.f90.

◆ jacobi_init()

subroutine jacobi::jacobi_init ( class(jacobi_t), intent(inout)  this,
type(coef_t), intent(inout), target  coef,
type(dofmap_t), intent(inout), target  dof,
type(gs_t), intent(inout), target  gs_h 
)

Definition at line 59 of file pc_jacobi.f90.

Here is the call graph for this function:

◆ jacobi_solve()

subroutine jacobi::jacobi_solve ( class(jacobi_t), intent(inout)  this,
real(kind=rp), dimension(n), intent(inout)  z,
real(kind=rp), dimension(n), intent(inout)  r,
integer, intent(in)  n 
)
private

The jacobi preconditioner \( J z = r \) \( z = J^{-1}r\) where \( J^{-1} ~= 1/diag(A) \).

Definition at line 86 of file pc_jacobi.f90.

Here is the call graph for this function:

◆ jacobi_update()

subroutine jacobi::jacobi_update ( class(jacobi_t), intent(inout)  this)
private

Update Jacobi preconditioner if the geometry G has changed.

Definition at line 95 of file pc_jacobi.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ jacobi_update_lx()

subroutine jacobi::jacobi_update_lx ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n,
integer, intent(in)  lx 
)
private

Generic CPU kernel for updating the Jacobi preconditioner.

Definition at line 167 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx10()

subroutine jacobi::jacobi_update_lx10 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 601 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx11()

subroutine jacobi::jacobi_update_lx11 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 514 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx12()

subroutine jacobi::jacobi_update_lx12 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 427 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx13()

subroutine jacobi::jacobi_update_lx13 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 340 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx14()

subroutine jacobi::jacobi_update_lx14 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 253 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx2()

subroutine jacobi::jacobi_update_lx2 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 1297 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx3()

subroutine jacobi::jacobi_update_lx3 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 1210 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx4()

subroutine jacobi::jacobi_update_lx4 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 1123 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx5()

subroutine jacobi::jacobi_update_lx5 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 1036 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx6()

subroutine jacobi::jacobi_update_lx6 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 949 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx7()

subroutine jacobi::jacobi_update_lx7 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 862 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx8()

subroutine jacobi::jacobi_update_lx8 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 775 of file pc_jacobi.f90.

Here is the caller graph for this function:

◆ jacobi_update_lx9()

subroutine jacobi::jacobi_update_lx9 ( real(kind=rp), dimension(lx, lx, lx, n), intent(inout)  d,
real(kind=rp), dimension(lx, lx), intent(in)  dxt,
real(kind=rp), dimension(lx, lx), intent(in)  dyt,
real(kind=rp), dimension(lx, lx), intent(in)  dzt,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G11,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G22,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G33,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G12,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G13,
real(kind=rp), dimension(lx, lx, lx, n), intent(in)  G23,
logical, dimension(n), intent(in)  dfrmd_el,
integer, intent(in)  n 
)
private

Definition at line 688 of file pc_jacobi.f90.

Here is the caller graph for this function: