m_poisson_fft Module


Uses

  • module~~m_poisson_fft~~UsesGraph module~m_poisson_fft m_poisson_fft module~m_common m_common module~m_poisson_fft->module~m_common module~m_field m_field module~m_poisson_fft->module~m_field module~m_mesh m_mesh module~m_poisson_fft->module~m_mesh module~m_tdsops m_tdsops module~m_poisson_fft->module~m_tdsops module~m_field->module~m_common module~m_mesh->module~m_common module~m_mesh->module~m_field iso_fortran_env iso_fortran_env module~m_mesh->iso_fortran_env module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content mpi mpi module~m_mesh->mpi module~m_tdsops->module~m_common module~m_tdsops->iso_fortran_env module~m_mesh_content->module~m_common

Used by

  • module~~m_poisson_fft~~UsedByGraph module~m_poisson_fft m_poisson_fft module~m_base_backend m_base_backend module~m_base_backend->module~m_poisson_fft module~m_cuda_poisson_fft m_cuda_poisson_fft module~m_cuda_poisson_fft->module~m_poisson_fft module~m_omp_poisson_fft m_omp_poisson_fft module~m_omp_poisson_fft->module~m_poisson_fft module~m_base_case m_base_case module~m_base_case->module~m_base_backend module~m_solver m_solver module~m_base_case->module~m_solver module~m_case_channel m_case_channel module~m_case_channel->module~m_base_backend module~m_case_channel->module~m_base_case module~m_case_channel->module~m_solver module~m_case_generic m_case_generic module~m_case_generic->module~m_base_backend module~m_case_generic->module~m_base_case module~m_case_generic->module~m_solver module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_base_backend module~m_case_tgv->module~m_base_case module~m_case_tgv->module~m_solver module~m_cuda_backend m_cuda_backend module~m_cuda_backend->module~m_base_backend module~m_cuda_backend->module~m_cuda_poisson_fft module~m_omp_backend m_omp_backend module~m_omp_backend->module~m_base_backend module~m_solver->module~m_base_backend module~m_time_integrator m_time_integrator module~m_solver->module~m_time_integrator module~m_vector_calculus m_vector_calculus module~m_solver->module~m_vector_calculus module~m_time_integrator->module~m_base_backend module~m_vector_calculus->module~m_base_backend proc~init_omp_poisson_fft m_omp_backend::omp_backend_t%init_omp_poisson_fft proc~init_omp_poisson_fft->module~m_omp_poisson_fft program~xcompact xcompact program~xcompact->module~m_base_backend program~xcompact->module~m_base_case program~xcompact->module~m_case_channel program~xcompact->module~m_case_generic program~xcompact->module~m_case_tgv program~xcompact->module~m_cuda_backend program~xcompact->module~m_omp_backend

Abstract Interfaces

abstract interface

  • public subroutine fft_forward(self, f_in)

    Arguments

    Type IntentOptional Attributes Name
    class(poisson_fft_t) :: self
    class(field_t), intent(in) :: f_in

abstract interface

  • public subroutine fft_backward(self, f_out)

    Arguments

    Type IntentOptional Attributes Name
    class(poisson_fft_t) :: self
    class(field_t), intent(inout) :: f_out

abstract interface

  • public subroutine fft_postprocess(self)

    Arguments

    Type IntentOptional Attributes Name
    class(poisson_fft_t) :: self

abstract interface

  • public subroutine poisson_xxx(self, f, temp)

    Arguments

    Type IntentOptional Attributes Name
    class(poisson_fft_t) :: self
    class(field_t), intent(inout) :: f
    class(field_t), intent(inout) :: temp

abstract interface

  • public subroutine field_process(self, f_out, f_in)

    Arguments

    Type IntentOptional Attributes Name
    class(poisson_fft_t) :: self
    class(field_t), intent(inout) :: f_out
    class(field_t), intent(in) :: f_in

Derived Types

type, public, abstract ::  poisson_fft_t

FFT based Poisson solver

Components

Type Visibility Attributes Name Initial
integer, public :: nx_glob

Global dimensions

integer, public :: ny_glob

Global dimensions

integer, public :: nz_glob

Global dimensions

integer, public :: nx_loc

Local dimensions

integer, public :: ny_loc

Local dimensions

integer, public :: nz_loc

Local dimensions

integer, public :: nx_perm

Local dimensions in the permuted slabs

integer, public :: ny_perm

Local dimensions in the permuted slabs

integer, public :: nz_perm

Local dimensions in the permuted slabs

integer, public :: nx_spec

Local dimensions in the permuted slabs in spectral space

integer, public :: ny_spec

Local dimensions in the permuted slabs in spectral space

integer, public :: nz_spec

Local dimensions in the permuted slabs in spectral space

integer, public :: x_sp_st

Offset in y and z directions in the permuted slabs in spectral space

integer, public :: y_sp_st

Offset in y and z directions in the permuted slabs in spectral space

integer, public :: z_sp_st

Offset in y and z directions in the permuted slabs in spectral space

complex(kind=dp), public, allocatable, dimension(:, :, :) :: waves

Local domain sized array storing the spectral equivalence constants

real(kind=dp), public, allocatable, dimension(:) :: ax

Wave numbers in x, y, and z

real(kind=dp), public, allocatable, dimension(:) :: bx

Wave numbers in x, y, and z

real(kind=dp), public, allocatable, dimension(:) :: ay

Wave numbers in x, y, and z

real(kind=dp), public, allocatable, dimension(:) :: by

Wave numbers in x, y, and z

real(kind=dp), public, allocatable, dimension(:) :: az

Wave numbers in x, y, and z

real(kind=dp), public, allocatable, dimension(:) :: bz

Wave numbers in x, y, and z

logical, public :: periodic_x

Periodicity in x, y, and z

logical, public :: periodic_y

Periodicity in x, y, and z

logical, public :: periodic_z

Periodicity in x, y, and z

procedure(poisson_xxx), public, pointer :: poisson => null()

Procedure pointer to BC specific poisson solvers

Type-Bound Procedures

procedure(fft_forward), public, deferred :: fft_forward
procedure(fft_backward), public, deferred :: fft_backward
procedure(fft_postprocess), public, deferred :: fft_postprocess_000
procedure(fft_postprocess), public, deferred :: fft_postprocess_010
procedure(field_process), public, deferred :: enforce_periodicity_y
procedure(field_process), public, deferred :: undo_periodicity_y
procedure, public :: solve_poisson
procedure, public :: base_init
procedure, public :: waves_set

Subroutines

public subroutine base_init(self, mesh, xdirps, ydirps, zdirps, n_spec, n_sp_st)

Arguments

Type IntentOptional Attributes Name
class(poisson_fft_t) :: self
type(mesh_t), intent(in) :: mesh
type(dirps_t), intent(in) :: xdirps
type(dirps_t), intent(in) :: ydirps
type(dirps_t), intent(in) :: zdirps
integer, intent(in), dimension(3) :: n_spec
integer, intent(in), dimension(3) :: n_sp_st

public subroutine solve_poisson(self, f, temp)

Arguments

Type IntentOptional Attributes Name
class(poisson_fft_t) :: self
class(field_t), intent(inout) :: f
class(field_t), intent(inout) :: temp

public subroutine poisson_000(self, f, temp)

Arguments

Type IntentOptional Attributes Name
class(poisson_fft_t) :: self
class(field_t), intent(inout) :: f
class(field_t), intent(inout) :: temp

public subroutine poisson_010(self, f, temp)

Arguments

Type IntentOptional Attributes Name
class(poisson_fft_t) :: self
class(field_t), intent(inout) :: f
class(field_t), intent(inout) :: temp

public subroutine waves_set(self, geo, xdirps, ydirps, zdirps)

Spectral equivalence constants

Read more…

Arguments

Type IntentOptional Attributes Name
class(poisson_fft_t) :: self
type(geo_t), intent(in) :: geo
type(dirps_t), intent(in) :: xdirps
type(dirps_t), intent(in) :: ydirps
type(dirps_t), intent(in) :: zdirps

public subroutine wave_numbers(a, b, k, e, k2, n, L, d, periodic, c_a, c_b, c_alpha)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(out), dimension(:) :: a
real(kind=dp), intent(out), dimension(:) :: b
complex(kind=dp), intent(out), dimension(:) :: k
complex(kind=dp), intent(out), dimension(:) :: e
complex(kind=dp), intent(out), dimension(:) :: k2
integer, intent(in) :: n
real(kind=dp), intent(in) :: L
real(kind=dp), intent(in) :: d
logical, intent(in) :: periodic
real(kind=dp), intent(in) :: c_a
real(kind=dp), intent(in) :: c_b
real(kind=dp), intent(in) :: c_alpha