Octopus
berry_oct_m Module Reference

Data Types

type  berry_t
 

Functions/Subroutines

subroutine, public berry_init (this, namespace)
 
subroutine, public berry_perform_internal_scf (this, namespace, space, eigensolver, gr, st, hm, iter, ks, ions, ext_partners)
 
subroutine, public calc_dipole (dipole, space, mesh, st, ions)
 
real(real64) function, public berry_dipole (st, mesh, latt, space, dir)
 Uses the single-point Berry`s phase method to calculate dipole moment in a periodic system. More...
 
complex(real64) function berry_phase_det (st, mesh, latt, space, dir, ik)
 
subroutine berry_phase_matrix (st, mesh, latt, space, nst, ik, ik2, gvector, matrix)
 
subroutine, public berry_potential (st, namespace, space, mesh, latt, e_field, pot)
 local potential for electric enthalpy of uniform field in single-point Berry phase More...
 
real(real64) function, public berry_energy_correction (st, space, mesh, latt, e_field, vberry)
 

Function/Subroutine Documentation

◆ berry_init()

subroutine, public berry_oct_m::berry_init ( type(berry_t), intent(inout)  this,
type(namespace_t), intent(in)  namespace 
)

Definition at line 158 of file berry.F90.

◆ berry_perform_internal_scf()

subroutine, public berry_oct_m::berry_perform_internal_scf ( type(berry_t), intent(in)  this,
type(namespace_t), intent(in)  namespace,
type(electron_space_t), intent(in)  space,
type(eigensolver_t), intent(inout)  eigensolver,
type(grid_t), intent(in)  gr,
type(states_elec_t), intent(inout)  st,
type(hamiltonian_elec_t), intent(inout)  hm,
integer, intent(in)  iter,
type(v_ks_t), intent(inout)  ks,
type(ions_t), intent(in)  ions,
type(partner_list_t), intent(in)  ext_partners 
)

Definition at line 182 of file berry.F90.

◆ calc_dipole()

subroutine, public berry_oct_m::calc_dipole ( real(real64), dimension(:), intent(out)  dipole,
class(space_t), intent(in)  space,
class(mesh_t), intent(in)  mesh,
type(states_elec_t), intent(in)  st,
type(ions_t), intent(in)  ions 
)

Definition at line 249 of file berry.F90.

◆ berry_dipole()

real(real64) function, public berry_oct_m::berry_dipole ( type(states_elec_t), intent(in)  st,
class(mesh_t), intent(in)  mesh,
type(lattice_vectors_t), intent(in)  latt,
class(space_t), intent(in)  space,
integer, intent(in)  dir 
)

Uses the single-point Berry`s phase method to calculate dipole moment in a periodic system.

This is only accurate in the limit of a large supercell. It is implemented only for an orthogonal unit cell.

\[ \mu = - eL/2*\pi Im ln <\Psi|exp(-i(2*\pi/L)x)|\Psi> \]

E Yaschenko, L Fu, L Resca, R Resta, Phys. Rev. B 58, 1222-1229 (1998) Single-point Berry`s phase method for dipole should not be used when there is more than one k-point. in this case, finite differences should be used to construct derivatives with respect to k

Definition at line 302 of file berry.F90.

◆ berry_phase_det()

complex(real64) function berry_oct_m::berry_phase_det ( type(states_elec_t), intent(in)  st,
class(mesh_t), intent(in)  mesh,
type(lattice_vectors_t), intent(in)  latt,
class(space_t), intent(in)  space,
integer, intent(in)  dir,
integer, intent(in)  ik 
)
private

Definition at line 335 of file berry.F90.

◆ berry_phase_matrix()

subroutine berry_oct_m::berry_phase_matrix ( type(states_elec_t), intent(in)  st,
class(mesh_t), intent(in)  mesh,
type(lattice_vectors_t), intent(in)  latt,
class(space_t), intent(in)  space,
integer, intent(in)  nst,
integer, intent(in)  ik,
integer, intent(in)  ik2,
integer, dimension(:), intent(in)  gvector,
complex(real64), dimension(:,:), intent(out)  matrix 
)
private
Parameters
[in]gvector(3)
[out]matrix(nst, nst)

Definition at line 378 of file berry.F90.

◆ berry_potential()

subroutine, public berry_oct_m::berry_potential ( type(states_elec_t), intent(in)  st,
type(namespace_t), intent(in)  namespace,
class(space_t), intent(in)  space,
class(mesh_t), intent(in)  mesh,
type(lattice_vectors_t), intent(in)  latt,
real(real64), dimension(:), intent(in)  e_field,
real(real64), dimension(:,:), intent(out)  pot 
)

local potential for electric enthalpy of uniform field in single-point Berry phase

P Umari et al., Phys Rev Lett 95, 207602 (2005) eqs (3), (7)

\[ E * (e L / 2 \pi) Im e^{i 2 \pi r / L} / z \]

Parameters
[in]e_field(spacedim)
[out]pot(meshnp, stdnspin)

Definition at line 447 of file berry.F90.

◆ berry_energy_correction()

real(real64) function, public berry_oct_m::berry_energy_correction ( type(states_elec_t), intent(in)  st,
class(space_t), intent(in)  space,
class(mesh_t), intent(in)  mesh,
type(lattice_vectors_t), intent(in)  latt,
real(real64), dimension(:), intent(in)  e_field,
real(real64), dimension(:,:), intent(in)  vberry 
)
Parameters
[in]e_field(spaceperiodic_dim)
[in]vberry(meshnp, stdnspin)

Definition at line 495 of file berry.F90.