| 
| 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) | 
|   | 
      
        
          | 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.
 
 
      
        
          | 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.