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 174 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 250 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 268 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 429 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 552 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 584 of file vdw_ts.F90.