geom_t Derived Type

type, public :: geom_t

Represents a molecule or a crystal unit cell.

The documented variables should be set before calling the initializer.


Components

Type Visibility Attributes Name Initial
real(kind=dp), public, allocatable :: coords(:,:)

(, a.u.) Atomic coordinates.

real(kind=dp), public, allocatable :: lattice(:,:)

(, a.u.) Lattice vectors in columns, unallocated if not periodic.

integer, public, allocatable :: k_grid(:)

Number of -points along reciprocal axes.

real(kind=dp), public, allocatable :: custom_k_pts(:,:)

Custom -point grid.

character(len=10), public :: parallel_mode = 'auto'

Type of parallelization:

  • atoms: distribute matrices over all MPI tasks using ScaLAPACK, solve eigenproblems sequentialy.
  • k_points: parallelize over k-points (each MPI task solves entire eigenproblems for its k-points)
logical, public :: get_eigs = .false.

Whether to keep MBD eigenvalues

logical, public :: get_modes = .false.

Whether to calculate MBD eigenvectors

logical, public :: do_rpa = .false.

Whether to calculate MBD energy by frequency integration

logical, public :: get_rpa_orders = .false.

Whether to calculate RPA orders

type(logger_t), public :: log

Used for logging

integer, public :: mpi_comm = MPI_COMM_WORLD

MPI communicator