R-matrix solver

High-level R-matrix solver built on a Lagrange mesh.

class jitr.rmatrix.rmatrix.Solver(nbasis, basis='Legendre', **args)[source]

Bases: object

Solve coupled-channel Schrödinger equations with the R-matrix method.

Parameters:
  • nbasis (int)

  • basis (str)

  • args (Any)

radial_grid(a, k0)[source]

Return the physical quadrature grid for a dimensionless radius a.

Return type:

ndarray[tuple[Any, ...], dtype[double]]

Parameters:
nonlocal_radial_grids(a, k0)[source]

Return the physical tensor-product quadrature grids for a.

Return type:

tuple[ndarray[tuple[Any, ...], dtype[double]], ndarray[tuple[Any, ...], dtype[double]]]

Parameters:
precompute_boundaries(a)[source]

Precompute basis-function values at the channel radius a.

Return type:

ndarray[tuple[Any, ...], dtype[cdouble]]

Parameters:

a (float)

get_channel_block(matrix, i, j=None)[source]

Extract a channel block from a full block-structured matrix.

Return type:

ndarray[tuple[Any, ...], dtype[cdouble]]

Parameters:
  • matrix (ArrayLike)

  • i (int)

  • j (int | None)

kinetic_matrix(a, l, mu=None)[source]

Assemble the full kinetic-energy matrix.

Return type:

ndarray[tuple[Any, ...], dtype[cdouble]]

Parameters:
  • a (float)

  • l (ArrayLike)

  • mu (ArrayLike | None)

energy_matrix(a, l, E=None)[source]

Assemble the full overlap-weighted energy matrix.

Return type:

ndarray[tuple[Any, ...], dtype[cdouble]]

Parameters:
  • a (float)

  • l (ArrayLike)

  • E (ArrayLike | None)

free_matrix(a, l, E=None, mu=None, coupled=True)[source]

Precompute the free Hamiltonian matrix.

Return type:

ndarray[tuple[Any, ...], dtype[cdouble]] | list[ndarray[tuple[Any, ...], dtype[cdouble]]]

Parameters:
  • a (float)

  • l (ArrayLike)

  • E (ArrayLike | None)

  • mu (ArrayLike | None)

  • coupled (bool)

interaction_matrix(k0, E0, a, nch, local_potential=None, nonlocal_potential=None)[source]

Build the interaction matrix from pre-evaluated potential arrays.

Return type:

ndarray[tuple[Any, ...], dtype[cdouble]]

Parameters:
  • k0 (float)

  • E0 (float)

  • a (float)

  • nch (int)

  • local_potential (ArrayLike | None)

  • nonlocal_potential (ArrayLike | None)

solve(channels, asymptotics, local_potential=None, nonlocal_potential=None, interaction_matrix=None, free_matrix=None, basis_boundary=None, weights=None, wavefunction=False)[source]

Solve the scattering problem for one coupled set of channels.

Return type:

tuple[ndarray, ...]

Parameters: