Octopus
berry.F90 File Reference

Go to the source code of this file.

Modules

module  berry_oct_m
 Berry-phase routines for periodic dipoles, static polarization, and the finite-field electric enthalpy potential.
 

Data Types

type  berry_oct_m::berry_t
 Parameters controlling the inner Berry-potential SCF loop. More...
 

Functions/Subroutines

subroutine, public berry_oct_m::berry_init (this, namespace)
 
subroutine, public berry_oct_m::berry_write_polarization (namespace, space, mesh, st, ions, kpoints, iunit)
 Compute and write the static modern-theory polarization after SCF. More...
 
subroutine berry_oct_m::berry_polarization_phase (namespace, space, mesh, st, latt, kpoints, berry_phase)
 Evaluate Berry phases along each periodic reciprocal-lattice direction. More...
 
subroutine berry_oct_m::berry_neighbor_kpoint (namespace, space, mesh, latt, st, neighbor, gvectors, iq, iq_next, det)
 Advance one step on a Berry-phase k-string and return the link determinant. More...
 
subroutine berry_oct_m::berry_build_kpoint_strings (namespace, space, kpoints, neighbor, gvectors)
 Tabulate the k-point strings of a full Monkhorst-Pack grid. More...
 
integer pure function berry_oct_m::berry_kpoint_key (space, kpoints, label)
 Flatten a Monkhorst-Pack grid label into a single index. More...
 
integer function berry_oct_m::berry_occupied_states (namespace, st, iq, iq_next)
 Return the number of occupied states shared by two neighboring k-points. More...
 
complex(real64) function berry_oct_m::berry_overlap_det (st, namespace, space, mesh, latt, nocc, iq, iq_next, gvector)
 Determinant of the occupied-manifold overlap matrix for one k-point link. More...
 
subroutine berry_oct_m::berry_overlap_matrix (st, namespace, space, mesh, latt, nocc, iq, iq_next, gvector, matrix)
 Build the occupied-state overlap matrix for a Berry-phase k-point link. More...
 
subroutine berry_oct_m::berry_write_polarization_info (space, iunit, berry_phase, electronic_dipole, ionic_dipole, total_dipole, electronic_pol, ionic_pol, total_pol, pol_quantum)
 Write the static polarization information. More...
 
subroutine berry_oct_m::berry_write_total_polarization_info (space, iunit, total_pol)
 Write the total polarization. More...
 
subroutine berry_oct_m::berry_polarization_units (space, unit_pol, unit_c_m2)
 Polarization unit. More...
 
subroutine, public berry_oct_m::berry_perform_internal_scf (this, namespace, space, eigensolver, gr, st, hm, iter, ks, ions, ext_partners)
 Inner self-consistency loop for a static electric field in periodic systems. More...
 
subroutine, public berry_oct_m::calc_dipole (dipole, space, mesh, st, ions)
 Calculate the total dipole used by the finite-field Berry machinery. More...
 
real(real64) function, public berry_oct_m::berry_dipole (st, namespace, mesh, latt, space, dir)
 Use the single-point Berry-phase method to calculate a periodic dipole. More...
 
complex(real64) function berry_oct_m::berry_phase_det (st, namespace, mesh, latt, space, dir, ik)
 Determinant entering the single-point Berry-phase dipole. More...
 
subroutine, public berry_oct_m::berry_potential (st, namespace, space, mesh, latt, e_field, pot)
 Local potential for electric enthalpy of a uniform field. More...
 
real(real64) function, public berry_oct_m::berry_energy_correction (st, namespace, space, mesh, latt, e_field, vberry)
 Return the Berry electric-enthalpy correction for the active field. More...