Quantica.GreenSolvers
— ModuleGreenSolvers
is a Quantica submodule containing several pre-defined Green function solvers. The alias GS
can be used in place of GS
. Currently supported solvers and their possible keyword arguments are
GS.SparseLU()
: Direct inversion solver for 0D Hamiltonians using aSparseArrays.lu(hmat)
factorizationGS.Schur(; boundary = Inf)
: Solver for 1D Hamiltonians based on a deflated, generalized Schur factorizationboundary
: 1D cell index of a boundary cell, orInf
for no boundaries. Equivalent to removing that specific cell from the lattice when computing the Green function.
GS.KPM(; order = 100, bandrange = missing, kernel = I)
: Kernel polynomial method solver for 0D Hamiltoniansorder
: order of the expansion in Chebyshev polynomialsTₙ(h)
of the Hamiltonianh
(lowest possible order isn = 0
).bandrange
: a(min_energy, max_energy)::Tuple
interval that encompasses the full band of the Hamiltonian. Ifmissing
, it is computed automatically.kernel
: generalization that computes momenta asμₙ = Tr[Tₙ(h)*kernel]
, so that the local density of states (seeldos
) becomes the density of thekernel
operator.- This solver does not allow arbitrary indexing of the resulting
g::GreenFunction
, only on contactsg[contact_ind::Integer]
. If the system has none, we can add a dummy contact usingattach(h, nothing; sites...)
, seeattach
.
GS.Bands(bands_arguments; boundary = missing, bands_kw...)
: solver based on the integration of bandstructure simplicesbands_arguments
: positional arguments passed on tobands
bands_kw
: keyword arguments passed on tobands
boundary
: eithermissing
(no boundary), ordir => cell_pos
, wheredir::Integer
is the Bravais vector normal to the boundary, andcell_pos::Integer
the value of cell indicescells[dir]
that define the boundary (i.e.cells[dir] <= cell_pos
are vaccum)- This solver only allows zero or one boundary. WARNING: if a boundary is used, the algorithm may become unstable for very fine band meshes.