Neko  0.9.0
A portable framework for high-order spectral element flow simulations
fdm Module Reference

Type for the Fast Diagonalization connected with the schwarz overlapping solves.

Data Types

type  fdm_t
 
interface  sygv
 

Functions/Subroutines

subroutine fdm_init (this, Xh, dm, gs_h)
 
subroutine swap_lengths (this, x, y, z, nelv, gdim)
 
subroutine plane_space (lr, ls, lt, i1, i2, w, x, y, z, nx, nxn, nz0, nzn, nelv, gdim)
 Here, spacing is based on harmonic mean. pff 2/10/07 We no longer base this on the finest grid, but rather the dofmap we are working with, Karp 210112. More...
 
subroutine fdm_setup_fast (this, ah, bh, nl, n)
 Setup the arrays s, d needed for the fast evaluation of the system. More...
 
subroutine fdm_setup_fast1d (s, lam, nl, lbc, rbc, ll, lm, lr, ah, bh, n)
 
subroutine generalev (a, b, lam, n, lx)
 Solve the generalized eigenvalue problem /$ A x = lam B x/$ A – symm. B – symm., pos. definite. More...
 
subroutine sp_sygv (a, b, lam, n, lx, bw, lbw)
 
subroutine dp_sygv (a, b, lam, n, lx, bw, lbw)
 
subroutine qp_sygv (a, b, lam, n, lx, bw, lbw)
 
subroutine fdm_setup_fast1d_a (a, lbc, rbc, ll, lm, lr, ah, n)
 
subroutine fdm_setup_fast1d_b (b, lbc, rbc, ll, lm, lr, bh, n)
 
subroutine fdm_free (this)
 
subroutine fdm_compute (this, e, r, stream)
 

Function/Subroutine Documentation

◆ dp_sygv()

subroutine fdm::dp_sygv ( real(kind=dp), dimension(n,n), intent(inout)  a,
real(kind=dp), dimension(n,n), intent(inout)  b,
real(kind=dp), dimension(n), intent(inout)  lam,
integer, intent(in)  n,
integer, intent(in)  lx,
real(kind=dp), dimension(4*(lx+2)**3)  bw,
integer, intent(in)  lbw 
)
private

Definition at line 451 of file fdm.f90.

◆ fdm_compute()

subroutine fdm::fdm_compute ( class(fdm_t), intent(inout)  this,
real(kind=rp), dimension((this%xh%lx+2)**3, this%msh%nelv), intent(inout)  e,
real(kind=rp), dimension((this%xh%lx+2)**3, this%msh%nelv), intent(inout)  r,
type(c_ptr), optional  stream 
)
private

Definition at line 624 of file fdm.f90.

◆ fdm_free()

subroutine fdm::fdm_free ( class(fdm_t), intent(inout)  this)
private

Definition at line 566 of file fdm.f90.

Here is the caller graph for this function:

◆ fdm_init()

subroutine fdm::fdm_init ( class(fdm_t), intent(inout)  this,
type(space_t), intent(inout), target  Xh,
type(dofmap_t), intent(inout), target  dm,
type(gs_t), intent(inout), target  gs_h 
)
private

Definition at line 109 of file fdm.f90.

Here is the call graph for this function:

◆ fdm_setup_fast()

subroutine fdm::fdm_setup_fast ( type(fdm_t), intent(inout)  this,
real(kind=rp), dimension(n+1,n+1), intent(inout)  ah,
real(kind=rp), dimension(n+1), intent(inout)  bh,
integer, intent(in)  nl,
integer, intent(in)  n 
)
private

Definition at line 336 of file fdm.f90.

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

◆ fdm_setup_fast1d()

subroutine fdm::fdm_setup_fast1d ( real(kind=rp), dimension(nl, nl, 2), intent(inout)  s,
real(kind=rp), dimension(nl), intent(inout)  lam,
integer, intent(in)  nl,
integer, intent(in)  lbc,
integer, intent(in)  rbc,
real(kind=rp), intent(inout)  ll,
real(kind=rp), intent(inout)  lm,
real(kind=rp), intent(inout)  lr,
real(kind=rp), dimension(0:n, 0:n), intent(inout)  ah,
real(kind=rp), dimension(0:n), intent(inout)  bh,
integer, intent(in)  n 
)
private

Definition at line 406 of file fdm.f90.

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

◆ fdm_setup_fast1d_a()

subroutine fdm::fdm_setup_fast1d_a ( real(kind=rp), dimension(0:n+2,0:n+2), intent(inout)  a,
integer, intent(in)  lbc,
integer, intent(in)  rbc,
real(kind=rp), intent(inout)  ll,
real(kind=rp), intent(inout)  lm,
real(kind=rp), intent(inout)  lr,
real(kind=rp), dimension(0:n,0:n), intent(inout)  ah,
integer, intent(in)  n 
)
private

Definition at line 480 of file fdm.f90.

Here is the caller graph for this function:

◆ fdm_setup_fast1d_b()

subroutine fdm::fdm_setup_fast1d_b ( real(kind=rp), dimension(0:n+2, 0:n+2), intent(inout)  b,
integer, intent(in)  lbc,
integer, intent(in)  rbc,
real(kind=rp), intent(inout)  ll,
real(kind=rp), intent(inout)  lm,
real(kind=rp), intent(inout)  lr,
real(kind=rp), dimension(0:n), intent(inout)  bh,
integer, intent(in)  n 
)
private

Definition at line 526 of file fdm.f90.

Here is the caller graph for this function:

◆ generalev()

subroutine fdm::generalev ( real(kind=rp), dimension(n,n), intent(inout)  a,
real(kind=rp), dimension(n,n), intent(inout)  b,
real(kind=rp), dimension(n), intent(inout)  lam,
integer, intent(in)  n,
integer, intent(in)  lx 
)
private

Definition at line 431 of file fdm.f90.

Here is the caller graph for this function:

◆ plane_space()

subroutine fdm::plane_space ( real(kind=rp), dimension(nelv), intent(inout)  lr,
real(kind=rp), dimension(nelv), intent(inout)  ls,
real(kind=rp), dimension(nelv), intent(inout)  lt,
integer, intent(in)  i1,
integer, intent(in)  i2,
real(kind=rp), dimension(nx), intent(inout)  w,
real(kind=rp), dimension(0:nxn,0:nxn,nz0:nzn,nelv), intent(in)  x,
real(kind=rp), dimension(0:nxn,0:nxn,nz0:nzn,nelv), intent(in)  y,
real(kind=rp), dimension(0:nxn,0:nxn,nz0:nzn,nelv), intent(in)  z,
integer, intent(in)  nx,
integer, intent(in)  nxn,
integer, intent(in)  nz0,
integer, intent(in)  nzn,
integer, intent(in)  nelv,
integer, intent(in)  gdim 
)
private

Definition at line 246 of file fdm.f90.

Here is the caller graph for this function:

◆ qp_sygv()

subroutine fdm::qp_sygv ( real(kind=qp), dimension(n,n), intent(inout)  a,
real(kind=qp), dimension(n,n), intent(inout)  b,
real(kind=qp), dimension(n), intent(inout)  lam,
integer, intent(in)  n,
integer, intent(in)  lx,
real(kind=qp), dimension(4*(lx+2)**3)  bw,
integer, intent(in)  lbw 
)
private

Definition at line 459 of file fdm.f90.

◆ sp_sygv()

subroutine fdm::sp_sygv ( real(kind=sp), dimension(n,n), intent(inout)  a,
real(kind=sp), dimension(n,n), intent(inout)  b,
real(kind=sp), dimension(n), intent(inout)  lam,
integer, intent(in)  n,
integer, intent(in)  lx,
real(kind=sp), dimension(4*(lx+2)**3)  bw,
integer, intent(in)  lbw 
)
private

Definition at line 443 of file fdm.f90.

◆ swap_lengths()

subroutine fdm::swap_lengths ( type(fdm_t), intent(inout)  this,
real(kind=rp), dimension(this%xh%lxyz,nelv), intent(in)  x,
real(kind=rp), dimension(this%xh%lxyz,nelv), intent(in)  y,
real(kind=rp), dimension(this%xh%lxyz,nelv), intent(in)  z,
integer, intent(in)  nelv,
integer, intent(in)  gdim 
)
private

Definition at line 160 of file fdm.f90.

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