m_cuda_spectral Module


Uses

  • module~~m_cuda_spectral~~UsesGraph module~m_cuda_spectral m_cuda_spectral cudafor cudafor module~m_cuda_spectral->cudafor module~m_common m_common module~m_cuda_spectral->module~m_common

Used by

  • module~~m_cuda_spectral~~UsedByGraph module~m_cuda_spectral m_cuda_spectral module~m_cuda_poisson_fft m_cuda_poisson_fft module~m_cuda_poisson_fft->module~m_cuda_spectral module~m_cuda_backend m_cuda_backend module~m_cuda_backend->module~m_cuda_poisson_fft program~xcompact xcompact program~xcompact->module~m_cuda_backend

Subroutines

public subroutine memcpy3D(dst, src, nx, ny, nz)

Copy data between x3d2 padded arrays and cuFFTMp descriptors

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout), device, dimension(:, :, :) :: dst
real(kind=dp), intent(in), device, dimension(:, :, :) :: src
integer, intent(in), value :: nx
integer, intent(in), value :: ny
integer, intent(in), value :: nz

public subroutine process_spectral_000(div_u, waves, nx_spec, ny_spec, y_sp_st, nx, ny, nz, ax, bx, ay, by, az, bz)

Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size.

Read more…

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout), device, dimension(:, :, :) :: div_u

Divergence of velocity in spectral space

complex(kind=dp), intent(in), device, dimension(:, :, :) :: waves

Spectral equivalence constants

integer, intent(in), value :: nx_spec

Grid size in spectral space

integer, intent(in), value :: ny_spec

Grid size in spectral space

integer, intent(in), value :: y_sp_st

Offset in y direction in the permuted slabs in spectral space

integer, intent(in), value :: nx

Grid size

integer, intent(in), value :: ny

Grid size

integer, intent(in), value :: nz

Grid size

real(kind=dp), intent(in), device, dimension(:) :: ax
real(kind=dp), intent(in), device, dimension(:) :: bx
real(kind=dp), intent(in), device, dimension(:) :: ay
real(kind=dp), intent(in), device, dimension(:) :: by
real(kind=dp), intent(in), device, dimension(:) :: az
real(kind=dp), intent(in), device, dimension(:) :: bz

public subroutine process_spectral_010(div_u, waves, nx_spec, ny_spec, y_sp_st, nx, ny, nz, ax, bx, ay, by, az, bz)

Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size.

Read more…

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout), device, dimension(:, :, :) :: div_u

Divergence of velocity in spectral space

complex(kind=dp), intent(in), device, dimension(:, :, :) :: waves

Spectral equivalence constants

integer, intent(in), value :: nx_spec

Grid size in spectral space

integer, intent(in), value :: ny_spec

Grid size in spectral space

integer, intent(in), value :: y_sp_st

Offset in y direction in the permuted slabs in spectral space

integer, intent(in), value :: nx

Grid size

integer, intent(in), value :: ny

Grid size

integer, intent(in), value :: nz

Grid size

real(kind=dp), intent(in), device, dimension(:) :: ax
real(kind=dp), intent(in), device, dimension(:) :: bx
real(kind=dp), intent(in), device, dimension(:) :: ay
real(kind=dp), intent(in), device, dimension(:) :: by
real(kind=dp), intent(in), device, dimension(:) :: az
real(kind=dp), intent(in), device, dimension(:) :: bz

public subroutine enforce_periodicity_y(f_out, f_in, ny)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), device, dimension(:, :, :) :: f_out
real(kind=dp), intent(in), device, dimension(:, :, :) :: f_in
integer, intent(in), value :: ny

public subroutine undo_periodicity_y(f_out, f_in, ny)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), device, dimension(:, :, :) :: f_out
real(kind=dp), intent(in), device, dimension(:, :, :) :: f_in
integer, intent(in), value :: ny