Octopus
vdw_ts_oct_m Module Reference

Tkatchenko-Scheffler pairwise method for van der Waals (vdW, dispersion) interactions. More...

Detailed Description

Tkatchenko-Scheffler pairwise method for van der Waals (vdW, dispersion) interactions.

This is based on a scaling approach that yields in situ atomic polarizabilities, dispersion coefficients, and vdW radii that reflect the local electronic environment. This code is based on the Quantum Espresso implementation of TS.

Data Types

type  vdw_ts_t
 

Functions/Subroutines

subroutine, public vdw_ts_init (this, namespace, ions)
 
subroutine, public vdw_ts_end (this)
 
subroutine, public vdw_ts_calculate (this, namespace, space, latt, atom, natoms, pos, mesh, nspin, density, energy, potential, force)
 Calculate the potential for the Tatchenko-Scheffler vdW correction as described in Phys. Rev. Lett. 102 073005 (2009). More...
 
subroutine, public vdw_ts_force_calculate (this, force_vdw, ions, mesh, nspin, density)
 
subroutine, public vdw_ts_write_c6ab (this, ions, dir, fname, namespace)
 
subroutine get_vdw_param (namespace, atom, c6, alpha, r0)
 

Function/Subroutine Documentation

◆ vdw_ts_init()

subroutine, public vdw_ts_oct_m::vdw_ts_init ( type(vdw_ts_t), intent(out)  this,
type(namespace_t), intent(in)  namespace,
type(ions_t), intent(in)  ions 
)

Definition at line 172 of file vdw_ts.F90.

◆ vdw_ts_end()

subroutine, public vdw_ts_oct_m::vdw_ts_end ( type(vdw_ts_t), intent(inout)  this)

Definition at line 248 of file vdw_ts.F90.

◆ vdw_ts_calculate()

subroutine, public vdw_ts_oct_m::vdw_ts_calculate ( type(vdw_ts_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
type(lattice_vectors_t), intent(in)  latt,
type(atom_t), dimension(:), intent(in)  atom,
integer, intent(in)  natoms,
real(real64), dimension(1:space%dim,1:natoms), intent(in)  pos,
class(mesh_t), intent(in)  mesh,
integer, intent(in)  nspin,
real(real64), dimension(:, :), intent(in)  density,
real(real64), intent(out)  energy,
real(real64), dimension(:), intent(out), contiguous  potential,
real(real64), dimension(:, :), intent(out)  force 
)

Calculate the potential for the Tatchenko-Scheffler vdW correction as described in Phys. Rev. Lett. 102 073005 (2009).

Parameters
[in]spaceSystem dimensions and boundary conditions
[in]lattCrystal lattice
[in]atomAtoms
[in]natomsNumber of atoms == size(atoms)
[in]posAtomic positions

Definition at line 266 of file vdw_ts.F90.

◆ vdw_ts_force_calculate()

subroutine, public vdw_ts_oct_m::vdw_ts_force_calculate ( type(vdw_ts_t), intent(in)  this,
real(real64), dimension(1:ions%space%dim, 1:ions%natoms), intent(inout)  force_vdw,
type(ions_t), intent(in)  ions,
class(mesh_t), intent(in)  mesh,
integer, intent(in)  nspin,
real(real64), dimension(:, :), intent(in)  density 
)

Definition at line 426 of file vdw_ts.F90.

◆ vdw_ts_write_c6ab()

subroutine, public vdw_ts_oct_m::vdw_ts_write_c6ab ( type(vdw_ts_t), intent(inout)  this,
type(ions_t), intent(in)  ions,
character(len=*), intent(in)  dir,
character(len=*), intent(in)  fname,
type(namespace_t), intent(in)  namespace 
)

Definition at line 547 of file vdw_ts.F90.

◆ get_vdw_param()

subroutine vdw_ts_oct_m::get_vdw_param ( type(namespace_t), intent(in)  namespace,
character(len=*), intent(in)  atom,
real(real64), intent(out)  c6,
real(real64), intent(out)  alpha,
real(real64), intent(out)  r0 
)
private

Definition at line 579 of file vdw_ts.F90.