# equilibrium.m

Returns the thermal equilibrium state at the current temperature. If the anisotropic part and the orientation parameters are not given, uses the isotropic Hamiltonian, otherwise uses the full Hamiltonian at the specified orientation.

If the temperature is not specified when create() is called, the high-temperature approximation to the thermal equilibrium state is returned. If the temperature is specified, the accurate equilibrium state at that temperature is produced.

## Contents

## Syntax

rho=equilibrium(spin_system,H,Q,euler_angles)

## Arguments

H - Isotropic part of the Hamiltonian left side pro- duct superoperator (in Lioville space) or Hamil- tonian (in Hilbert space). Q - irreducible components of the anisotropic part of the Hamiltonian left side product superopera- tor (in Lioville space) or Hamiltonian (in Hil- bert space), as returned by hamiltonian.m euler_angles - a row vector of Euler angles (in radians) speci- fying the system orientation relative to the in- put orientation. If the angles are not supplied, only isotropic part of the Hamiltonian is used.

If the anisotropic part and the orientation parameters are not given, uses the isotropic Hamiltonian, otherwise uses the full Hamiltonian at the specified orientation. If the temperature is set to zero during the call to create.m, the high temperature approximation to the thermal equilibrium state is returned. If the temperature is specified, the accurate equilibrium state at that temperature is produced.

## Outputs

rho - thermal equilibrium density matrix (Hilbert spa- ce) or state vector (Lioville space).

## Notes

- In Liouville space calculations, you must supply left side product superoperators, not commutation superoperators. See hamiltonian.m for details of how to get left side product superoperators.
- Assumptions requested from assume.m and supplied to hamiltonian.m must be 'labframe'.
- Because longitudinal spin states in Liouville space correspond to polarisations rather than populations, the state vector returned by equilibrium.m would in some cases contain small numbers (
*e.g.*for 15N at room temperature). It is therefore advisable, when running with accurate thermal equilibria at high temperatures, to inspect the trajectory-level state space reduction tolerances and make sure that important states are not dropped automatically because of their low occupancies. The default tolerances are in most cases tight enough. - It should be stressed again that setting inter.temperature variable to be identically equal to zero (or skipping that parameter altogether) does
**not**collapse the system into the lowest possible collective energy level, but causes equilibrium.m to return the simplified high-temperature equilibrium state that is often used in basic NMR and ESR simulations. - Consistent equilibrium state normalization is only possible at finite temperatures – the high-temperature approximation makes no guarantees that the norms would be consistent between formalisms.

## See also

state.m, operator.m, hamiltonian.m, assume.m

*Version 2.2, authors: Luke Edwards, Ilya Kuprov*