Basis input documentation
Initialize plane-wave basis with ke_cutoff.
Used to initialize class qimpy.electrons.Basis
.
YAML template:
ke-cutoff: 20.0 # Wavefunction kinetic energy cutoff in Hartrees. real-wavefunctions: no # Whether to use real wavefunctions (instead of complex). grid: # Override parameters of grid for wavefunction operations: ke-cutoff: null # Kinetic-energy cutoff for grid in Hartrees. shape: null # Explicit grid dimensions [Nx, Ny, Nz]. fft-block-size: 0 # Number of wavefunction bands to FFT simultaneously. mpi-block-size: 0 # Number of wavefunction bands to MPI transfer simultaneously.
Component classes:
Parameters:
ke-cutoff
Type: float, Default: 20.0
Wavefunction kinetic energy cutoff in Hartrees.
real-wavefunctions
Type: bool, Default: no
Whether to use real wavefunctions (instead of complex). This is only supported for non-spinorial, Gamma-point-only calculations, where conjugate symmetry allows real wavefunctions.
grid
Type: Grid, Default: null
Override parameters of grid for wavefunction operations.
fft-block-size
Type: int, Default: 0
Number of wavefunction bands to FFT simultaneously. Higher numbers require more memory, but can achieve better occupancy of GPUs or high-core-count CPUs. The default of 0 auto-selects the block size based on the number of bands and k-points being processed by each process.
mpi-block-size
Type: int, Default: 0
Number of wavefunction bands to MPI transfer simultaneously. Lower numbers may allow better overlap between computation and transfers, which is beneficial if MPI implementation supports asynchronous progress and/or CUDA streams are used to compute asynrchronously. Higher numbers mitigate MPI latency, but may require more memory. This number is automatically rounded up to nearest multiple of fft_block_size * comm.size. The default of 0 selects the block size based on the number of bands and k-points being processed by each process.