hqs_nmr.solver.implementations.nmr_solver

Different solvers to evaluate individual spectral contributions of a NMR Spin Hamiltonian.

Functions

nmr_solver(hamiltonian, gyromagnetic_ratios, ...)

Calculate a NMR spectrum exploiting Sz conservation given a SpinHamiltonianSystem.

nmr_solver_local_su2(hamiltonian, ...)

Calculate a NMR spectrum using Sz and local SU2 conservation given a SpinHamiltonianSystem.

hqs_nmr.solver.implementations.nmr_solver.nmr_solver(hamiltonian: SpinHamiltonianSystem, gyromagnetic_ratios: np.ndarray, omegas: np.ndarray, eta: float, spin_contributions: list[int], solver_settings: NMRSolverSettings, **kwargs: dict[str, Any]) np.ndarray

Calculate a NMR spectrum exploiting Sz conservation given a SpinHamiltonianSystem.

Evaluates a correlator function of the form: .. math:: sum_n frac{bra{n} I^+_l ket{m} bra{m} I^- ket{n}}{omega + E_n - E_m + i eta} text{where} I^- = sum_l I^-_l.

Parameters:
  • hamiltonian – Struqture spin Hamiltonian.

  • gyromagnetic_ratios – Array of the gyromagnetic factors per site.

  • omegas – Desired frequencies.

  • eta – Explicit broadening of the peaks.

  • spin_contributions – List of indices l of I^+_l for which to evaluate the correlator.

  • solver_settings – Object storing solver-specific settings.

  • kwargs – Catch all for general interface.

Returns:

An array of the spectral function for the specified spin contributions at each frequency.

Raises:

ValueError – if number of spins does not match the number of gyromagnetic factors.

hqs_nmr.solver.implementations.nmr_solver.nmr_solver_local_su2(hamiltonian: SpinHamiltonianSystem, gyromagnetic_ratios: np.ndarray, omegas: np.ndarray, eta: float, spin_contributions: list[int], solver_settings: NMRSolverSettings, **kwargs: dict[str, Any]) np.ndarray

Calculate a NMR spectrum using Sz and local SU2 conservation given a SpinHamiltonianSystem.

Evaluates a correlator function of the form .. math:: sum_n frac{bra{n} I^+_l ket{m} bra{m} I^- ket{n}}{omega + E_n - E_m + i eta} text{where} I^- = sum_l I^-_l.

Parameters:
  • hamiltonian – Struqture spin Hamiltonian.

  • gyromagnetic_ratios – Array of the gyromagnetic factors per site.

  • omegas – Desired frequencies.

  • eta – Explicit broadening of the peaks.

  • spin_contributions – List of indices for which to evaluate the correlator.

  • solver_settings – Object storing solver-specific settings.

  • kwargs – Catch all for general interface.

Returns:

An array with the correlator function for the specified spin contributions at each frequency.

Raises:

ValueError – if number of spins does not match the number of gyromagnetic factors.