Dense keywords

Back to the backend overview

About this backend

The dense backend uses NumPy ndarray objects. build_op and get_ops return labeled factories; the matrices are built when a factory is called explicitly or by the dense backend at the start of each calculation. Each argument is called independently, including repeated references. Backend-specific solvers also require factories.

It uses SciPy’s dense Hermitian eigensolver for ED. XAS explicitly sums over all intermediate eigenstates, while RIXS explicitly sums over all intermediate and final eigenstates. These are the same exact spectral-decomposition formulas used by the legacy dense Python workflow.

The dense backend is useful for small problems, reference calculations, and pedagogy. It stores every matrix element and diagonalizes the intermediate Hamiltonian during each XAS or RIXS call; RIXS also diagonalizes the final Hamiltonian. The sparse and matrix-free SciPy representations avoid that storage cost and use iterative solvers for larger calculations.

Options are specific to the stage where they are supplied.

build_op and get_ops

Option

Default

Description

tol

1e-10

Discard operator coefficients whose magnitude does not exceed this threshold.

Here tol controls operator truncation.

ed

No backend-specific options.

xas

No backend-specific options.

rixs

No backend-specific options.