API Reference

The package is organised into two core objects that represent the main components of the ghost-GA method, namely the Fragment and the Lattice objects. The Fragment class represents the locally correlated space (site or cluster) and takes care of solving the correspondig embedding problem and updating the self-energy and hybridization parameters. The Lattice class represents the lattice, takes care of the Brillouin-zone integration, and makes the fragments talk to each other.

The software provides a collection of impurity solvers, which are organised in the gem.solvers subpackage. Each solver implements the common interface defined in gem.solvers.solver_template, which allows them to be used interchangeably within the self-consistency loop.

Say something about the gdmft object too?

Core Modules

gem.solvers

gem.fragment

gem.lattice

gem.gdmft

fragment

The gem.fragment module provides the Fragment class, which represents a single correlated site (or cluster) together with its ghost orbital bath. It holds the embedding Hamiltonian, the quasiparticle weights, and the self-energy parameters (\(R\), \(\Lambda\)) and hybridisation parameters (\(D\), \(\Lambda_c\)) that connect the fragment to the lattice. The key methods are:

  • solve_impurity() — solves the quantum-impurity (embedding) problem at a given chemical potential and temperature, returning the ground-state (or thermal) density matrix.

  • update_self_energy() — updates the ghost-GA self-energy parameters \(R\) and \(\Lambda\) by minimising the ghost-GA energy functional with respect to these parameters, given the current impurity solution.

  • update_hybridization() — updates the hybridisation parameters \(D\) and \(\Lambda_c\) by minimising the ghost-GA energy functional with respect to these parameters, given the current impurity solution.

lattice

The gem.lattice module provides the Lattice class, which wraps the Brillouin-zone integration over the non-interacting dispersion. It assembles the quasiparticle Hamiltonian from the self-energy parameters of all fragments, integrates it over the Brillouin zone to obtain the thermal expectation values to update the hybridization function, and feeds these results back to the fragments. The key methods are:

  • solve_qp() — performs the quasiparticle Brillouin-zone integration given the current self-energy parameters of each fragment, computes the thermal expectation values to update the hybridization function, and feeds these results back to the fragments.

  • fit_mu() — adjusts the chemical potential iteratively until the total lattice filling matches a prescribed target.

gdmft — Simple Self-Consistency Driver

The gem.gdmft module provides the Gdmft class, which drives the ghost-DMFT self-consistency loop for a simple single fragment case. It manages the exchange of hybridisation functions between the lattice and the impurity fragments and evaluates the total-energy functional.

Solvers

gem.solvers

The gem.solvers subpackage collects all supported impurity solvers. Each solver implements the common interface defined in gem.solvers.solver_template.

Available solvers:

  • SimpleED (simple_ed) — lightweight exact diagonalisation, no extra dependencies.

Utilities

gem.utility

Helper routines used throughout the code:

  • utilities — general linear-algebra and Green’s-function helpers.

  • delta_fit — routines to perform thermal density matrix fitting of the hybridisation function and self-energy parameters. to a discrete bath.