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

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

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)
 

Detailed Description

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

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

Setup the arrays s, d needed for the fast evaluation of the system.

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

Solve the generalized eigenvalue problem /$ A x = lam B x/$ A – symm. B – symm., pos. definite.

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

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.

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: