m_omp_poisson_fft Module


Uses

  • module~~m_omp_poisson_fft~~UsesGraph module~m_omp_poisson_fft m_omp_poisson_fft decomp_2d_constants decomp_2d_constants module~m_omp_poisson_fft->decomp_2d_constants decomp_2d_fft decomp_2d_fft module~m_omp_poisson_fft->decomp_2d_fft module~m_common m_common module~m_omp_poisson_fft->module~m_common module~m_field m_field module~m_omp_poisson_fft->module~m_field module~m_mesh m_mesh module~m_omp_poisson_fft->module~m_mesh module~m_omp_spectral m_omp_spectral module~m_omp_poisson_fft->module~m_omp_spectral module~m_poisson_fft m_poisson_fft module~m_omp_poisson_fft->module~m_poisson_fft module~m_tdsops m_tdsops module~m_omp_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_omp_spectral->module~m_common module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_tdsops module~m_tdsops->module~m_common module~m_tdsops->iso_fortran_env module~m_mesh_content->module~m_common

Used by

  • module~~m_omp_poisson_fft~~UsedByGraph module~m_omp_poisson_fft m_omp_poisson_fft 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

Interfaces

public interface omp_poisson_fft_t

  • private function init(mesh, xdirps, ydirps, zdirps) result(poisson_fft)

    Arguments

    Type IntentOptional Attributes Name
    type(mesh_t), intent(in) :: mesh
    class(dirps_t), intent(in) :: xdirps
    class(dirps_t), intent(in) :: ydirps
    class(dirps_t), intent(in) :: zdirps

    Return Value type(omp_poisson_fft_t)


Derived Types

type, public, extends(poisson_fft_t) ::  omp_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

complex(kind=dp), public, allocatable, dimension(:, :, :) :: c_x
complex(kind=dp), public, allocatable, dimension(:, :, :) :: c_y
complex(kind=dp), public, allocatable, dimension(:, :, :) :: c_z

Constructor

private function init (mesh, xdirps, ydirps, zdirps)

Type-Bound Procedures

procedure, public :: solve_poisson
procedure, public :: base_init
procedure, public :: waves_set
procedure, public :: fft_forward => fft_forward_omp
procedure, public :: fft_backward => fft_backward_omp
procedure, public :: fft_postprocess_000 => fft_postprocess_000_omp
procedure, public :: fft_postprocess_010 => fft_postprocess_010_omp
procedure, public :: enforce_periodicity_y => enforce_periodicity_y_omp
procedure, public :: undo_periodicity_y => undo_periodicity_y_omp

Subroutines

public subroutine fft_forward_omp(self, f_in)

Arguments

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

public subroutine fft_backward_omp(self, f_out)

Arguments

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

public subroutine fft_postprocess_000_omp(self)

Arguments

Type IntentOptional Attributes Name
class(omp_poisson_fft_t) :: self

public subroutine fft_postprocess_010_omp(self)

Arguments

Type IntentOptional Attributes Name
class(omp_poisson_fft_t) :: self

public subroutine enforce_periodicity_y_omp(self, f_out, f_in)

Arguments

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

public subroutine undo_periodicity_y_omp(self, f_out, f_in)

Arguments

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