mbd_input_t Derived Type

type, public :: mbd_input_t

Contains user input to an MBD calculation.


Contents


Components

TypeVisibility AttributesNameInitial
character(len=30), public :: method ='mbd-rsscs'

VdW method to use to calculate energy and gradients.

  • mbd-rsscs: The MBD@rsSCS method.
  • mbd-nl: The MBD-NL method.
  • ts: The TS method.
  • mbd: Generic MBD method (without any screening).
integer, public :: comm =-1

MPI communicator.

Only used when compiled with MPI. Leave as is to use the MPI_COMM_WORLD communicator.

integer, public :: max_atoms_per_block =MAX_ATOMS_PER_BLOCK

Number of atoms per block in a BLACS grid.

integer, public :: log_level =MBD_LOG_LVL_INFO

Level of printing

procedure(printer_i), public, nopass, pointer:: printer=> null()

If assigned, will be used for logging

logical, public :: calculate_forces =.true.

Whether to calculate forces.

logical, public :: calculate_vdw_params_gradients =.false.

Whether to calculate gradients of energy w.r.t. vdW parameters

logical, public :: calculate_spectrum =.false.

Whether to keep MBD eigenvalues.

logical, public :: do_rpa =.false.

Whether to evalulate the MBD energy as an RPA integral over frequency.

logical, public :: rpa_orders =.false.

Whether to calculate individual RPA orders

logical, public :: rpa_rescale_eigs =.false.

Whether to rescale RPA eigenvalues as in 10.1021/acs.jctc.6b00925.

integer, public :: n_omega_grid =N_FREQUENCY_GRID

Number of imaginary frequency grid points.

real(kind=dp), public :: k_grid_shift =K_GRID_SHIFT

Off- shift of the -point grid in units of inter--point distance.

logical, public :: zero_negative_eigvals =.false.

Whether to zero out negative eigenvalues.

character(len=20), public :: xc =''

XC functional for automatic setting of damping parameters.

real(kind=dp), public :: ts_d =TS_DAMPING_D

TS damping parameter .

real(kind=dp), public :: ts_sr =-1

Custom TS damping parameter .

Leave as is to use a value based on the XC functional.

real(kind=dp), public :: mbd_a =MBD_DAMPING_A

MBD damping parameter .

real(kind=dp), public :: mbd_beta =-1

Custom MBD damping parameter .

Leave as is to use a value based on the XC functional.

character(len=10), public :: vdw_params_kind ='ts'

Which free-atom reference vdW parameters to use for scaling.

  • ts: Values from original TS method.
  • tssurf: Values from the TS approach.
character(len=3), public, allocatable:: atom_types(:)

() Atom types used for picking free-atom reference values.

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

(, a.u.) Custom free-atom vdW paramters to use for scaling.

Columns contain static polarizabilities, C6 coefficients, and vdW radii.

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

(, a.u.) Atomic coordinates.

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

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

integer, public :: k_grid(3) =[-1, -1, -1]

Number of -points along reciprocal axes.

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

Parallelization scheme.

  • auto: Pick based on system system size and number of -points.
  • kpoints: Parallelize over -points.
  • atoms: Parallelize over atom pairs.