(git:5e7fe52)
Loading...
Searching...
No Matches
lattice_preconditioner_operator.F File Reference

Go to the source code of this file.

Modules

module  lattice_preconditioner_operator
 Block-circulant inverse operators for replicated-cell OT preconditioners.

Functions/Subroutines

subroutine, public lattice_preconditioner_operator::lattice_grid (lattice_dims, index_to_cell, xkp)
 Enumerate a regular direct/reciprocal lattice with the first direction varying fastest.
subroutine, public lattice_preconditioner_operator::build_lattice_inverse (operator_matrix, lattice_dims, inverse_k, projection_error, used_fft, info)
 Project a cell-major SPD operator onto lattice translations and invert its Fourier blocks.
subroutine, public lattice_preconditioner_operator::build_lattice_inverse_from_blocks (blocks, lattice_dims, inverse_k, used_fft, info)
 Transform and invert already projected real-space lattice blocks.
subroutine, public lattice_preconditioner_operator::build_lattice_local_correction (operator_matrix, lattice_dims, local_cell_count, correction_indices, operator_columns, coarse_inverse, corrected_projection_error, info)
 Build a balanced local correction for selected non-circulant cell blocks.
pure real(kind=dp) function, public lattice_preconditioner_operator::lattice_fft_cost_ratio (lattice_dims, block_size, rhs_count, num_pe)
 Estimate lattice-FFT application work relative to a dense inverse application.
pure real(kind=dp) function, public lattice_preconditioner_operator::lattice_fft_storage_ratio (lattice_dims, operator_count)
 Estimate reciprocal-block storage relative to one dense real operator.
pure real(kind=dp) function, public lattice_preconditioner_operator::lattice_local_cost_ratio (lattice_dims, local_cell_count)
 Estimate balanced-local-correction work relative to a dense inverse application.
pure real(kind=dp) function, public lattice_preconditioner_operator::lattice_local_storage_ratio (lattice_dims, operator_count, local_cell_count)
 Estimate balanced-local-correction storage relative to one dense real operator.
pure logical function, public lattice_preconditioner_operator::lattice_fft_auto_select (lattice_dims, block_size, rhs_count, operator_count, num_pe, projection_error, used_fft, info)
 Conservative error-, work-, and storage-aware AUTO selector.
subroutine, public lattice_preconditioner_operator::apply_lattice_inverse_dense (inverse_k, lattice_dims, matrix_in, matrix_out, used_fft, imaginary_residual)
 Apply inverse Fourier blocks to a dense cell-major real matrix.
subroutine, public lattice_preconditioner_operator::apply_lattice_state_inverse_dense (inverse_k, lattice_dims, matrix_in, matrix_out, used_fft, imaginary_residual, state_indices)
 Apply one inverse Fourier operator to every column of a dense real matrix.

Variables

integer, parameter, public lattice_preconditioner_operator::lattice_fft_auto_min_cells = 8
real(kind=dp), parameter, public lattice_preconditioner_operator::lattice_fft_auto_max_error = 1.0E-3_dp
real(kind=dp), parameter, public lattice_preconditioner_operator::lattice_fft_auto_max_cost_ratio = 0.8_dp
real(kind=dp), parameter, public lattice_preconditioner_operator::lattice_fft_auto_max_storage_ratio = 4.0_dp