Fortran keywords
About this backend
This backend runs the native, MPI-parallel Fortran solvers described in the EDRIXS paper. It uses a staged, file-backed workflow: Python writes the solver inputs, calls the native executable, and reads the results. The EDRIXS repository contains the Fortran sources and build instructions.
All staged operations are collective on an
mpi4py communicator.
When comm is omitted, mpi4py.MPI.COMM_WORLD is used. Every rank in
that communicator must enter the operation; see the
mpi4py collective communication tutorial
for the underlying MPI model.
For exact diagonalization, ed_solver=0 selects dense LAPACK,
ed_solver=1 selects Lanczos, and ed_solver=2 selects parallel
ARPACK/PARPACK. The ARPACK project documentation describes the serial and MPI-enabled
libraries used by the last mode.
These options belong only to the staged interface. The legacy *_fort
functions retain their existing explicit parameters and behavior.
get_ops
The Fortran backend constructs the complete problem at once, so
build_op(..., backend='fortran') is not supported.
Option |
Default |
Description |
|---|---|---|
|
|
mpi4py communicator used collectively by the backend. |
|
|
Discard Coulomb coefficients whose magnitude does not exceed this threshold. |
To resume a staged calculation from native input files already present in the
current working directory, call get_ops_disk(). It
returns hmat_i, hmat_n, and trans_ops handles without rewriting
the problem files.
ed
Option |
Default |
Description |
|---|---|---|
|
|
mpi4py communicator used collectively by the backend. |
|
|
Native eigensolver: 0 for dense, 1 for Lanczos, or 2 for ARPACK. |
|
|
Number of eigenvectors written for subsequent spectroscopy stages. |
|
|
ARPACK Krylov subspace size. |
|
|
Write eigenvectors to native files. |
|
|
Maximum eigensolver iterations. |
|
|
Dimension below which the native solver uses dense diagonalization. |
|
|
Eigenvalue convergence tolerance. |
For later XAS or RIXS calculations, idump must remain true and nvector
must be at least the later num_gs value. nvector cannot exceed
num_evals.
xas
Option |
Default |
Description |
|---|---|---|
|
|
mpi4py communicator used collectively by the backend. |
|
|
Number of saved initial states included in the spectrum. |
|
|
Maximum intermediate-state Krylov dimension. |
rixs
Option |
Default |
Description |
|---|---|---|
|
|
mpi4py communicator used collectively by the backend. |
|
|
Number of saved initial states included in the spectrum. |
|
|
Maximum final-state Krylov dimension. |
|
|
Maximum iterations for the intermediate-state linear solve. |
|
|
Convergence tolerance for the intermediate-state linear solve. |