dftd4_cutoff Module

Realspace cutoff and lattice point generator utilities


Uses


Variables

Type Visibility Attributes Name Initial
real(kind=wp), private, parameter :: cn_default = 30.0_wp

Coordination number cutoff

real(kind=wp), private, parameter :: disp2_default = 60.0_wp

Two-body interaction cutoff

real(kind=wp), private, parameter :: disp3_default = 40.0_wp

Three-body interaction cutoff


Interfaces

public interface get_lattice_points

  • private subroutine get_lattice_points_cutoff(periodic, lat, rthr, trans)

    Create lattice points within a given cutoff

    Arguments

    Type IntentOptional Attributes Name
    logical, intent(in) :: periodic(:)

    Periodic dimensions

    real(kind=wp), intent(in) :: lat(:,:)

    Lattice parameters

    real(kind=wp), intent(in) :: rthr

    Real space cutoff

    real(kind=wp), intent(out), allocatable :: trans(:,:)

    Generated lattice points

  • private subroutine get_lattice_points_rep_3d(lat, rep, origin, trans)

    Generate lattice points from repeatitions

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(in) :: lat(:,:)

    Lattice vectors

    integer, intent(in) :: rep(:)

    Repeatitions of lattice points to generate

    logical, intent(in) :: origin

    Include the origin in the generated lattice points

    real(kind=wp), intent(out), allocatable :: trans(:,:)

    Generated lattice points


Derived Types

type, public, sequence  ::  realspace_cutoff

Collection of real space cutoffs

Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: cn = cn_default

Coordination number cutoff

real(kind=wp), public :: disp2 = disp2_default

Two-body interaction cutoff

real(kind=wp), public :: disp3 = disp3_default

Three-body interaction cutoff


Subroutines

private subroutine get_lattice_points_cutoff(periodic, lat, rthr, trans)

Create lattice points within a given cutoff

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: periodic(:)

Periodic dimensions

real(kind=wp), intent(in) :: lat(:,:)

Lattice parameters

real(kind=wp), intent(in) :: rthr

Real space cutoff

real(kind=wp), intent(out), allocatable :: trans(:,:)

Generated lattice points

private subroutine get_lattice_points_rep_3d(lat, rep, origin, trans)

Generate lattice points from repeatitions

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: lat(:,:)

Lattice vectors

integer, intent(in) :: rep(:)

Repeatitions of lattice points to generate

logical, intent(in) :: origin

Include the origin in the generated lattice points

real(kind=wp), intent(out), allocatable :: trans(:,:)

Generated lattice points

private pure subroutine get_translations(lat, rthr, rep)

Generate a supercell based on a realspace cutoff, this subroutine doesn’t know anything about the convergence behaviour of the associated property.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: lat(3,3)
real(kind=wp), intent(in) :: rthr
integer, intent(out) :: rep(3)