(git:6a2e663)
dct Module Reference

the type I Discrete Cosine Transform (DCT-I) More...

Functions/Subroutines

subroutine, public dct_type_init (pw_grid, neumann_directions, dct_env)
 Initializes a dct_type. More...
 
subroutine, public dct_type_release (dct_env)
 Releases a dct_type. More...
 
subroutine, public setup_dct_pw_grids (pw_grid, cell_hmat, neumann_directions, dct_pw_grid)
 sets up an extended pw_grid for Discrete Cosine Transform (DCT) calculations More...
 
subroutine, public pw_expand (neumann_directions, recv_msgs_bnds, dests_expand, srcs_expand, flipg_stat, bounds_shftd, pw_in, pw_expanded)
 expands a pw_r3d_rs_type data to an evenly symmetric pw_r3d_rs_type data that is 8 times larger than the original one: the even symmetry for a 1D sequence of length n is defined as: 1 2 3 ... n-2 n-1 n --> 1 2 3 ... n-2 n-1 n n-1 n-2 ... 3 2 and is generalized to 3D by applying the same rule in all three directions More...
 
subroutine, public pw_shrink (neumann_directions, dests_shrink, srcs_shrink, bounds_local_shftd, pw_in, pw_shrinked)
 shrinks an evenly symmetric pw_r3d_rs_type data to a pw_r3d_rs_type data that is 8 times smaller (the reverse procedure of pw_expand). More...
 

Variables

integer, parameter, public neumannxyz = 111
 
integer, parameter, public neumannxy = 110
 
integer, parameter, public neumannxz = 101
 
integer, parameter, public neumannyz = 011
 
integer, parameter, public neumannx = 100
 
integer, parameter, public neumanny = 010
 
integer, parameter, public neumannz = 001
 

Detailed Description

the type I Discrete Cosine Transform (DCT-I)

History
07.2014 created [Hossein Bani-Hashemian] 11.2015 dealt with periodic grids [Hossein Bani-Hashemian] 03.2016 dct in one or two directions [Hossein Bani-Hashemian]
Author
Mohammad Hossein Bani-Hashemian

Function/Subroutine Documentation

◆ dct_type_init()

subroutine, public dct::dct_type_init ( type(pw_grid_type), intent(in), pointer  pw_grid,
integer, intent(in)  neumann_directions,
type(dct_type), intent(inout)  dct_env 
)

Initializes a dct_type.

Parameters
pw_gridthe original plane wave grid
neumann_directionsdirections in which dct should be performed
dct_envdct_type to be initialized
History
08.2014 created [Hossein Bani-Hashemian]
Author
Mohammad Hossein Bani-Hashemian

Definition at line 83 of file dct.F.

Here is the caller graph for this function:

◆ dct_type_release()

subroutine, public dct::dct_type_release ( type(dct_type), intent(inout)  dct_env)

Releases a dct_type.

Parameters
dct_envdct_type to be released
History
03.2016 created [Hossein Bani-Hashemian]
Author
Mohammad Hossein Bani-Hashemian

Definition at line 131 of file dct.F.

Here is the caller graph for this function:

◆ setup_dct_pw_grids()

subroutine, public dct::setup_dct_pw_grids ( type(pw_grid_type), intent(in), pointer  pw_grid,
real(dp), dimension(3, 3), intent(in)  cell_hmat,
integer, intent(in)  neumann_directions,
type(pw_grid_type), intent(inout), pointer  dct_pw_grid 
)

sets up an extended pw_grid for Discrete Cosine Transform (DCT) calculations

Parameters
pw_gridthe original plane wave grid
cell_hmatcell hmat
neumann_directionsdirections in which dct should be performed
dct_pw_gridDCT plane-wave grid
History
07.2014 created [Hossein Bani-Hashemian]
Author
Mohammad Hossein Bani-Hashemian

Definition at line 162 of file dct.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pw_expand()

subroutine, public dct::pw_expand ( integer, intent(in)  neumann_directions,
integer, dimension(:, :, :), intent(in), pointer  recv_msgs_bnds,
integer, dimension(:), intent(in), pointer  dests_expand,
integer, dimension(:), intent(in), pointer  srcs_expand,
integer, dimension(:), intent(in), pointer  flipg_stat,
integer, dimension(2, 3), intent(in)  bounds_shftd,
type(pw_r3d_rs_type), intent(in)  pw_in,
type(pw_r3d_rs_type), intent(inout)  pw_expanded 
)

expands a pw_r3d_rs_type data to an evenly symmetric pw_r3d_rs_type data that is 8 times larger than the original one: the even symmetry for a 1D sequence of length n is defined as: 1 2 3 ... n-2 n-1 n --> 1 2 3 ... n-2 n-1 n n-1 n-2 ... 3 2 and is generalized to 3D by applying the same rule in all three directions

Parameters
neumann_directionsdirections in which dct should be performed
recv_msgs_bndsbounds of the messages to be received
dests_expandlist of the destination processes
srcs_expandlist of the source processes
flipg_statflipping status for the received data chunks
bounds_shftdbounds of the original grid shifted to have g0 in the middle of the cell
pw_inthe original plane wave data
pw_expandedthe pw data after expansion
History
07.2014 created [Hossein Bani-Hashemian]
Author
Mohammad Hossein Bani-Hashemian

Definition at line 516 of file dct.F.

Here is the caller graph for this function:

◆ pw_shrink()

subroutine, public dct::pw_shrink ( integer, intent(in)  neumann_directions,
integer, dimension(:), intent(in), pointer  dests_shrink,
integer, intent(inout)  srcs_shrink,
integer, dimension(2, 3), intent(in)  bounds_local_shftd,
type(pw_r3d_rs_type), intent(in)  pw_in,
type(pw_r3d_rs_type), intent(inout)  pw_shrinked 
)

shrinks an evenly symmetric pw_r3d_rs_type data to a pw_r3d_rs_type data that is 8 times smaller (the reverse procedure of pw_expand).

Parameters
neumann_directionsdirections in which dct should be performed
dests_shrinklist of the destination processes
srcs_shrinklist of the source processes
bounds_local_shftdlocal bounds of the original grid after shifting
pw_inthe original plane wave data
pw_shrinkedthe shrunk plane wave data
History
07.2014 created [Hossein Bani-Hashemian]
Author
Mohammad Hossein Bani-Hashemian

Definition at line 700 of file dct.F.

Here is the caller graph for this function:

Variable Documentation

◆ neumannxyz

integer, parameter, public dct::neumannxyz = 111

Definition at line 64 of file dct.F.

◆ neumannxy

integer, parameter, public dct::neumannxy = 110

Definition at line 64 of file dct.F.

◆ neumannxz

integer, parameter, public dct::neumannxz = 101

Definition at line 64 of file dct.F.

◆ neumannyz

integer, parameter, public dct::neumannyz = 011

Definition at line 64 of file dct.F.

◆ neumannx

integer, parameter, public dct::neumannx = 100

Definition at line 64 of file dct.F.

◆ neumanny

integer, parameter, public dct::neumanny = 010

Definition at line 64 of file dct.F.

◆ neumannz

integer, parameter, public dct::neumannz = 001

Definition at line 64 of file dct.F.