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
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
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
Helper routines used throughout the code: