(git:5e7fe52)
Loading...
Searching...
No Matches
kpoint_lattice_fft Module Reference

Batched lattice Fourier transforms for complete regular k-point grids. More...

Functions/Subroutines

logical function, public regular_kpoint_grid (xkp, nkp_grid, grid_index, k_offset)
 Test and map a complete, uniformly shifted reciprocal grid.
subroutine, public cell_to_k_grid_fft (values_rs, index_to_cell, xkp, nkp_grid, values_k, used_fft, deriv_direction, hmat, selected_kpoints)
 Transform a batch of real matrices from image cells to every supplied k point.
subroutine, public k_grid_to_cell_fft (values_k, xkp, nkp_grid, index_to_cell, values_rs, used_fft)
 Transform complete reciprocal-grid data back to image-cell values.

Detailed Description

Batched lattice Fourier transforms for complete regular k-point grids.

  Real-space image cells are folded modulo the reciprocal grid.  Shifted Monkhorst-Pack
  meshes are handled by a phase twist before the FFT.  Non-regular or incomplete k-point
  lists transparently use the direct phase sum.

Function/Subroutine Documentation

◆ regular_kpoint_grid()

logical function, public kpoint_lattice_fft::regular_kpoint_grid ( real(kind=dp), dimension(:, :), intent(in) xkp,
integer, dimension(3), intent(in) nkp_grid,
integer, dimension(:, :), intent(out), optional grid_index,
real(kind=dp), dimension(3), intent(out), optional k_offset )

Test and map a complete, uniformly shifted reciprocal grid.

Parameters
xkpreciprocal coordinates, in units of reciprocal lattice vectors
nkp_gridregular-grid dimensions
grid_indexFFT-grid index for every k point
k_offsetcommon reciprocal-coordinate offset
Returns
true for a complete regular grid

Definition at line 49 of file kpoint_lattice_fft.F.

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

◆ cell_to_k_grid_fft()

subroutine, public kpoint_lattice_fft::cell_to_k_grid_fft ( real(kind=dp), dimension(:, :, :), intent(in) values_rs,
integer, dimension(:, :), intent(in) index_to_cell,
real(kind=dp), dimension(:, :), intent(in) xkp,
integer, dimension(3), intent(in) nkp_grid,
complex(kind=dp), dimension(:, :, :), intent(out) values_k,
logical, intent(out), optional used_fft,
integer, intent(in), optional deriv_direction,
real(kind=dp), dimension(3, 3), intent(in), optional hmat,
integer, dimension(:), intent(in), optional selected_kpoints )

Transform a batch of real matrices from image cells to every supplied k point.

Parameters
values_rsreal-space matrices; the last dimension enumerates image cells
index_to_cellinteger lattice vector for every image cell
xkpreciprocal coordinates of all requested k points
nkp_griddimensions of the candidate regular reciprocal grid
values_kcomplex matrices at every k point
used_fftreports whether the regular-grid FFT path was used
deriv_directionoptional Cartesian k derivative (1, 2, or 3)
hmatdirect-lattice cell matrix, required for a derivative
selected_kpointsoptional indices of k points to retain in values_k

Definition at line 114 of file kpoint_lattice_fft.F.

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

◆ k_grid_to_cell_fft()

subroutine, public kpoint_lattice_fft::k_grid_to_cell_fft ( complex(kind=dp), dimension(:, :, :), intent(in) values_k,
real(kind=dp), dimension(:, :), intent(in) xkp,
integer, dimension(3), intent(in) nkp_grid,
integer, dimension(:, :), intent(in) index_to_cell,
complex(kind=dp), dimension(:, :, :), intent(out) values_rs,
logical, intent(out), optional used_fft )

Transform complete reciprocal-grid data back to image-cell values.

Parameters
values_kcomplex matrices on a complete regular reciprocal grid
xkpreciprocal coordinates, in units of reciprocal lattice vectors
nkp_griddimensions of the reciprocal grid
index_to_cellinteger lattice vector for every requested image cell
values_rsreconstructed complex matrices in the requested image cells
used_fftreports whether the regular-grid FFT path was used

Definition at line 258 of file kpoint_lattice_fft.F.

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