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' | Same as 'nmr', except all quadrupolar nuclei are kept in the laboratory frame. Their couplings to the rest of the system consequently have secular and pseudosecular terms retained. |
| '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. |
| 'quad-only' | Quadratic couplings only, in the laboratory frame: laboratory frame zero-field splitting for electrons; laboratory frame quadrupolar couplings for nuclei; laboratory frame for giant spin model interactions; all other interactions ignored. |
The retention argument may be set to 'zeeman' (in which case all spin-spin couplings are ignored) or 'couplings' (in which case 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.