Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Data Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
poisson Module Reference
+ Collaboration diagram for poisson:

Data Types

type  int_p
 
type  real_p
 

Public Member Functions

subroutine, public spectral_solve (u, rhs)
 
subroutine init_comm_infrastructure (comm_world, shape_x)
 one-time setup of communication infrastructure for poisson_mod More...
 
integer function xyz_to_pid (ix, iy, iz, shape_x, shape_p)
 
subroutine mesh_to_grid (mesh, grid, shape_x)
 
subroutine grid_to_mesh (grid, mesh, shape_x)
 
subroutine poisson_kernel (grid, shape_x, start_x, end_x, boundaries)
 
subroutine shuffle_test ()
 
subroutine transpose_test ()
 
subroutine cos_test ()
 

Private Member Functions

subroutine init_mesh_to_grid (nelm, shape_x)
 

Private Attributes

integer comm_xy
 
integer comm_yz
 
logical, save interface_initialized = .false.
 
logical, save mesh_to_grid_initialized = .false.
 
integer alloc_local_xy
 
integer nin_local_xy
 
integer nout_local_xy
 
integer idx_in_local_xy
 
integer idx_out_local_xy
 
integer alloc_local_yz
 
integer nin_local_yz
 
integer nout_local_yz
 
integer idx_in_local_yz
 
integer idx_out_local_yz
 
type(real_p), dimension(:), allocatable send_buffers
 
type(real_p), dimension(:), allocatable rec_buffers
 
integer, dimension(:), allocatable dest_pids
 
integer, dimension(:), allocatable dest_slots
 
integer, dimension(:), allocatable dest_indexes
 
integer, dimension(:), allocatable dest_lengths
 
integer, dimension(:), allocatable src_pids
 
integer, dimension(:), allocatable src_lengths
 
integer, dimension(:,:,:), allocatable src_slots
 
integer, dimension(:,:,:), allocatable src_indexes
 
integer comm_size
 

Detailed Description

Definition at line 9 of file poisson_mod.F90.

Member Function/Subroutine Documentation

subroutine poisson::cos_test ( )

Definition at line 779 of file poisson_mod.F90.

References fft::fft_r2r(), grid_to_mesh(), mesh::ieg_to_xyz(), parallel::lglel(), mesh_to_grid(), poisson_kernel(), sum(), and fft::transpose_grid().

Referenced by init_comm_infrastructure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine poisson::grid_to_mesh ( real(dp), dimension(0:,0:,0:), intent(in)  grid,
real(dp), dimension(:), intent(out mesh,
integer, dimension(3), intent(in)  shape_x 
)

Definition at line 502 of file poisson_mod.F90.

References parallel::gllel(), parallel::gllnid(), parallel::lglel(), mpi_irecv(), mpi_isend(), and mpi_wait().

Referenced by cos_test(), shuffle_test(), and spectral_solve().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine poisson::init_comm_infrastructure ( integer, intent(in)  comm_world,
integer, dimension(3), intent(in)  shape_x 
)

one-time setup of communication infrastructure for poisson_mod

Parameters
[in]comm_worldCommunicator in which to setup solver
[in]shape_xShape of mesh

Definition at line 218 of file poisson_mod.F90.

References cos_test(), mpi_comm_free(), mpi_comm_rank(), mpi_comm_size(), mpi_comm_split(), nekgsync(), shuffle_test(), and transpose_test().

Referenced by spectral_solve().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine poisson::init_mesh_to_grid ( integer, intent(in)  nelm,
integer, dimension(3), intent(in)  shape_x 
)
private

Definition at line 315 of file poisson_mod.F90.

References parallel::gllnid(), mesh::ieg_to_xyz(), parallel::lglel(), nekgsync(), and xyz_to_pid().

Referenced by mesh_to_grid().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine poisson::mesh_to_grid ( real(dp), dimension(:), intent(in)  mesh,
real(dp), dimension(0:,0:,0:), intent(out grid,
integer, dimension(3), intent(in)  shape_x 
)

Definition at line 444 of file poisson_mod.F90.

References parallel::gllnid(), init_mesh_to_grid(), parallel::lglel(), mpi_irecv(), mpi_isend(), and mpi_wait().

Referenced by cos_test(), shuffle_test(), spectral_solve(), and transpose_test().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine poisson::poisson_kernel ( real(dp), dimension(0:,0:,0:), intent(inout)  grid,
integer, dimension(3), intent(in)  shape_x,
real(dp), dimension(3), intent(in)  start_x,
real(dp), dimension(3), intent(in)  end_x,
character(3), dimension(6), intent(in)  boundaries 
)

Definition at line 555 of file poisson_mod.F90.

References fft::wavenumber().

Referenced by cos_test(), and spectral_solve().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine poisson::shuffle_test ( )

Definition at line 616 of file poisson_mod.F90.

References fft::fft_r2r(), grid_to_mesh(), parallel::lglel(), mesh_to_grid(), and fft::transpose_grid().

Referenced by init_comm_infrastructure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine, public poisson::spectral_solve ( real(dp), dimension (:), intent(out u,
real(dp), dimension (:), intent(inout)  rhs 
)
Todo:
replace this with coarse grid dssum

Definition at line 48 of file poisson_mod.F90.

References ctimer::dnekclock(), dssum(), fft::fft_r2r(), grid_to_mesh(), init_comm_infrastructure(), parallel::lglel(), mesh_to_grid(), poisson_kernel(), sum(), and fft::transpose_grid().

Referenced by hsmg_routines::hsmg_coarse_solve().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

subroutine poisson::transpose_test ( )

Definition at line 692 of file poisson_mod.F90.

References parallel::lglel(), mesh_to_grid(), and fft::transpose_grid().

Referenced by init_comm_infrastructure().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

integer function poisson::xyz_to_pid ( integer, intent(in)  ix,
integer, intent(in)  iy,
integer, intent(in)  iz,
integer, dimension(3), intent(in)  shape_x,
integer, dimension(2), intent(in)  shape_p 
)

Definition at line 305 of file poisson_mod.F90.

Referenced by init_mesh_to_grid().

+ Here is the caller graph for this function:

Member Data Documentation

integer poisson::alloc_local_xy
private

Definition at line 21 of file poisson_mod.F90.

integer poisson::alloc_local_yz
private

Definition at line 22 of file poisson_mod.F90.

integer poisson::comm_size
private

Definition at line 43 of file poisson_mod.F90.

integer poisson::comm_xy
private

Definition at line 17 of file poisson_mod.F90.

integer poisson::comm_yz
private

Definition at line 17 of file poisson_mod.F90.

integer, dimension(:), allocatable poisson::dest_indexes
private

Definition at line 35 of file poisson_mod.F90.

integer, dimension(:), allocatable poisson::dest_lengths
private

Definition at line 36 of file poisson_mod.F90.

integer, dimension(:), allocatable poisson::dest_pids
private

Definition at line 33 of file poisson_mod.F90.

integer, dimension(:), allocatable poisson::dest_slots
private

Definition at line 34 of file poisson_mod.F90.

integer poisson::idx_in_local_xy
private

Definition at line 21 of file poisson_mod.F90.

integer poisson::idx_in_local_yz
private

Definition at line 22 of file poisson_mod.F90.

integer poisson::idx_out_local_xy
private

Definition at line 21 of file poisson_mod.F90.

integer poisson::idx_out_local_yz
private

Definition at line 22 of file poisson_mod.F90.

logical, save poisson::interface_initialized = .false.
private

Definition at line 18 of file poisson_mod.F90.

logical, save poisson::mesh_to_grid_initialized = .false.
private

Definition at line 19 of file poisson_mod.F90.

integer poisson::nin_local_xy
private

Definition at line 21 of file poisson_mod.F90.

integer poisson::nin_local_yz
private

Definition at line 22 of file poisson_mod.F90.

integer poisson::nout_local_xy
private

Definition at line 21 of file poisson_mod.F90.

integer poisson::nout_local_yz
private

Definition at line 22 of file poisson_mod.F90.

type(real_p), dimension(:), allocatable poisson::rec_buffers
private

Definition at line 32 of file poisson_mod.F90.

type(real_p), dimension(:), allocatable poisson::send_buffers
private

Definition at line 31 of file poisson_mod.F90.

integer, dimension(:,:,:), allocatable poisson::src_indexes
private

Definition at line 41 of file poisson_mod.F90.

integer, dimension(:), allocatable poisson::src_lengths
private

Definition at line 39 of file poisson_mod.F90.

integer, dimension(:), allocatable poisson::src_pids
private

Definition at line 38 of file poisson_mod.F90.

integer, dimension(:,:,:), allocatable poisson::src_slots
private

Definition at line 40 of file poisson_mod.F90.


The documentation for this module was generated from the following file: