momentGW.uhf.fock
Fock matrix self-consistent loop for unrestricted references.
Module Contents
- class momentGW.uhf.fock.FockLoop(gw, gf=None, se=None, **kwargs)
Bases:
FockLoopSelf-consistent loop for the density matrix via the Hartree–Fock self-consistent field for spin-unrestricted molecular systems.
- Parameters:
gw (BaseUGW) – GW object.
gf (tuple of dyson.Lehmann, optional) – Initial Green’s function object for each spin channel. If None, use gw.init_gf(). Default value is None.
se (tuple of dyson.Lehmann, optional) – Initial self-energy object for each spin channel. If passed, use as dynamic part of the self-energy. If None, self-energy is assumed to be static and fully defined by the Fock matrix. Default value is None.
fock_diis_space (int, optional) – DIIS space size for the Fock matrix. Default value is 10.
fock_diis_min_space (int, optional) – Minimum DIIS space size for the Fock matrix. Default value is 1.
conv_tol_nelec (float, optional) – Convergence tolerance for the number of electrons. Default value is 1e-6.
conv_tol_rdm1 (float, optional) – Convergence tolerance for the density matrix. Default value is 1e-8.
max_cycle_inner (int, optional) – Maximum number of inner iterations. Default value is 100.
max_cycle_outer (int, optional) – Maximum number of outer iterations. Default value is 20.
- property naux
Get the number of auxiliary states.
- property nqmo
Get the number of quasiparticle MOs.
- property nelec
Get the number of electrons.
- property h1e
Get the core Hamiltonian.
- property mo_coeff
Get the MO coefficients.
- property nmo
Get the number of MOs.
- property nocc
Get the number of occupied MOs.
- auxiliary_shift(fock, se=None)
Optimise a shift in the auxiliary energies to best satisfy the electron number.
- Parameters:
fock (numpy.ndarray) – Fock matrix for each spin channel.
se (tuple of dyson.Lehmann, optional) – Self-energy for each spin channel. If None, use self.se. Default value is None.
- Returns:
se – Self-energy for each spin channel.
- Return type:
tuple of dyson.Lehmann
Notes
If there is no dynamic part of the self-energy (self.se is None), this method returns None.
- search_chempot(gf=None)
Search for a chemical potential for a given Green’s function.
- Parameters:
gf (tuple of dyson.Lehmann, optional) – Green’s function for each spin channel. If None, use self.gf. Default value is None.
- Returns:
chempot (tuple of float) – Chemical potential for each spin channel.
nerr (tuple of float) – Error in the number of electrons for each spin channel.
- solve_dyson(fock, se=None)
Solve the Dyson equation for a given Fock matrix.
- Parameters:
fock (numpy.ndarray) – Fock matrix for each spin channel.
se (dyson.Lehmann, optional) – Self-energy for each spin channel. If None, use self.se. Default value is None.
- Returns:
gf (tuple of dyson.Lehmann) – Green’s function for each spin channel.
nerr (float) – Error in the number of electrons.
Notes
If there is no dynamic part of the self-energy (self.se is None), this method simply diagonalises the Fock matrix and returns the Lehmann representation of the resulting zeroth-order Green’s function.
- kernel(integrals=None)
Driver for the Fock loop.
- Parameters:
integrals (UIntegrals, optional) – Integrals object. If None, generate from scratch. Default value is None.
- Returns:
converged (bool) – Whether the loop has converged.
gf (tuple of dyson.Lehmann) – Green’s function object for each spin channel.
se (tuple of dyson.Lehmann) – Self-energy object for each spin channel.
- make_rdm1(gf=None)
Get the first-order reduced density matrix.
- Parameters:
gf (dyson.Lehmann, optional) – Green’s function object. If None, use either self.gf, or the mean-field Green’s function. Default value is None.
- Returns:
rdm1 – First-order reduced density matrix.
- Return type:
numpy.ndarray
- get_fock(integrals, rdm1, h1e=None)
Get the Fock matrix.
- Parameters:
integrals (BaseIntegrals) – Integrals object.
rdm1 (numpy.ndarray) – First-order reduced density matrix.
h1e (numpy.ndarray, optional) – Core Hamiltonian. If None, use self.h1e. Default value is None.
- Returns:
fock – Fock matrix.
- Return type:
numpy.ndarray