SciPy keywords

Back to the backend overview

About this backend

The scipy backend builds operators as SciPy CSR matrices. The solver stages also accept a NumPy array, a SciPy sparse matrix, or a matrix-free LinearOperator. ED uses SciPy’s LOBPCG eigensolver; XAS and RIXS use EDRIXS’s Lanczos routines, and the RIXS correction-vector step uses SciPy’s GMRES solver.

XAS and RIXS use the lowest retained initial energy and the first incident energy as internal references. Assuming the incident grid is near resonance, this centers the intermediate Hamiltonian; RIXS also centers the final Hamiltonian on the initial energy. Dense and sparse diagonals are shifted before matrix-vector multiplication, without changing the input operators. The public energy grids and returned RIXS pole energies retain their original reference. Spectra are evaluated before restoring the pole energies. For a custom LinearOperator, shifting is necessarily applied after its matrix-vector product and cannot recover precision lost inside that product.

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. It is separate from the eigensolver tolerance accepted by ed.

ed

Option

Default

Description

blocksize

None

LOBPCG block size; defaults to the requested number of eigenpairs.

tol

1e-10

LOBPCG convergence tolerance.

maxiter

200

Maximum LOBPCG iterations.

seed

None

Seed used to generate the initial LOBPCG block.

initial_guess

None

Initial LOBPCG block with shape (dimension, blocksize).

suppress_lobpcg_warnings

True

Suppress SciPy nonconvergence warnings; results are still returned.

xas

Option

Default

Description

nkryl

200

Maximum intermediate-state Lanczos dimension.

rixs

Option

Default

Description

nkryl

200

Maximum final-state Lanczos dimension.

linsys_tol

1e-09

GMRES convergence tolerance.

linsys_maxiter

50000

Maximum GMRES iterations.

linsys_restart

200

GMRES restart interval.