# Assume.m

Sets case-specific assumptions for various simulation contexts. This function determines the behaviour of the Hamiltonian generation function and should be called before the Hamiltonian is requested. Syntax:

    spin_system=assume(spin_system,assumptions,retention)


The following assumption sets are supported:

assumption set description
'nmr' Rotating frame approximation for electrons; rotating frame approximation for nuclei; secular terms for electron Zeeman interactions; secular terms for nuclear Zeeman interactions; secular terms for giant spin model interactions; secular coupling terms for spins belonging to the same species; weak coupling terms for spins belonging to different species; secular coupling terms for quadratic and higher order couplings
'esr', 'deer' Rotating frame approximation for electrons; laboratory frame simulation for nuclei; secular terms for electron Zeeman interactions; all terms for nuclear Zeeman interactions; secular terms for inter-electron couplings; secular terms for electron zero-field splittings; secular terms for giant spin model interactions; secular and pseudosecular terms for hyperfine couplings; all terms for inter-nuclear couplings; all terms for nuclear quadrupolar couplings.
'labframe' Laboratory frame simulation for electrons, laboratory frame simulation for nuclei; all terms for electron Zeeman interactions; all terms for nuclear Zeeman interactions; all terms for giant spin model interactions; all terms for all couplings.
'qnmr' A special assumption set for quadrupolar spectroscopy in which the quadrupolar nuclei are kept in the laboratory frame: rotating frame approximation for S=1/2 nuclei; laboratory frame simulation for S>1/2 nuclei; electrons disallowed by the approximation; secular Zeeman terms for S=1/2 nuclei; all Zeeman terms for S>1/2 nuclei; secular terms for couplings between S=1/2 nuclei; weak and pseudosecular terms for couplings between S=1/2 and S>1/2 nuclei; all terms for couplings between S>1/2 nuclei; all terms for nuclear quadrupolar couplings.
'deer-zz' A special assumption set for DEER simulations with flip-flop terms switched off in the inter-electron coupling Hamiltionian: rotating frame approximation for electrons; laboratory frame simulation for nuclei; secular terms for electron Zeeman interactions; all terms for nuclear Zeeman interactions; weak terms for inter-electron couplings; secular terms for electron zero-field splittings; secular terms for giant spin model interactions; weak and pseudosecular terms for hyperfine couplings; all terms for inter-nuclear couplings; all terms for nuclear quadrupolar couplings.

If the retention argument is aupplied, the following Hamiltonian term retention settings are supported:

retention description
'zeeman' all spin-spin couplings are ignored
'couplings' all Zeeman interactions are ignored

Some pulse sequences (notably those dealing with DNP) set their own assumptions internally before calling the Hamiltonian generation function. To that end, assume.m function also contains more specialized assumption sets – see the function code for further information.

When calling kernel contexts assumptions should be passed as the last argument, for example:

    fid=liquid(spin_system,@pulse_acquire,parameters,'nmr');


User-specified assumptions are ignored when generating thermal equilibrium states and relaxation superoperators – assumption sets for those functions are fixed by the nature of the physical problems that they solve.

Version 1.9, authors: Ilya Kuprov