gem.solvers.simple_ed.SimpleED

class gem.solvers.simple_ed.SimpleED(norb, use_Ntot=False, use_Sz=False, dtype=<class 'numpy.complex128'>, N_sector=None, Sz_sector=None, solver_params=None, **kwargs)[source]

Simple exact diagonalization solver for a general embedding Hamiltonian.

Symmetry sectors are controlled by use_Ntot / use_Sz (which symmetries to exploit) and N_sector / Sz_sector (which sector(s) to include):

  • N_sector = <int> — solve only that particle-number sector.

  • N_sector = None — solve all particle-number sectors.

  • Sz_sector = <int> — solve only that Sz sector.

  • Sz_sector = None — solve all Sz sectors.

The Hamiltonian is built and diagonalised independently in each sector. Expectation values (density matrix, energies) are obtained as thermal/degeneracy-weighted averages across all included sectors.

Methods

build_Hemb(D, eloc, Lambdac, V2E[, mu, ...])

Build the embedding Hamiltonian in every active sector.

build_denmat_op()

build_docc_op(i[, debug])

Build double-occupancy operator for orbitals (i, i+1) in sector 0.

calc_density_matrix()

Compute the one-body density matrix as a thermal/degeneracy average across all active sectors.

calc_double_occ(i)

Compute thermal double occupancy on orbital (i, i+1) averaged over all sectors.

compute_E1loc(nimp)

One-body local energy (impurity block) averaged across sectors.

compute_E2loc()

Two-body local energy averaged across sectors.

solve_Hemb([num_eig, which, tol, verbose, T])

Diagonalise each sector and build the global (thermal) partition function.

build_S2_op

build_h1e

build_one_body

build_two_body

h5read_state

h5write_gs

inner

Methods

__init__(norb[, use_Ntot, use_Sz, dtype, ...])

build_Hemb(D, eloc, Lambdac, V2E[, mu, ...])

Build the embedding Hamiltonian in every active sector.

build_S2_op()

build_denmat_op()

build_docc_op(i[, debug])

Build double-occupancy operator for orbitals (i, i+1) in sector 0.

build_h1e(eloc, D, Lambdac, mu[, verbose])

build_one_body(H1E)

build_two_body(Umatrix[, debug])

calc_density_matrix()

Compute the one-body density matrix as a thermal/degeneracy average across all active sectors.

calc_double_occ(i)

Compute thermal double occupancy on orbital (i, i+1) averaged over all sectors.

compute_E1loc(nimp)

One-body local energy (impurity block) averaged across sectors.

compute_E2loc()

Two-body local energy averaged across sectors.

h5read_state(filename, group_path, name)

h5write_gs(filename, group_path, name)

inner(bra, ket[, operator])

solve_Hemb([num_eig, which, tol, verbose, T])

Diagonalise each sector and build the global (thermal) partition function.