Difference between revisions of "Assume.m"

From Spinach Documentation Wiki
Jump to: navigation, search
m (Rename Arguments section heading to Parameters)
(Update function See also links and function index membership)
Line 80: Line 80:
  
 
==See also==
 
==See also==
[[Create.m]], [[Basis.m]], [[Crystal.m]], [[Doublerot.m]], [[Kernel_contexts|Kernel contexts]]
+
[[create.m]], [[basis.m]], [[crystal.m]], [[doublerot.m]], [[residual.m]], [[Kernel_functions]], [[Kernel_contexts]]
  
 
''Version 1.9, authors: [[Ilya Kuprov]]''
 
''Version 1.9, authors: [[Ilya Kuprov]]''

Revision as of 19:34, 6 June 2026

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.

Syntax

    spin_system=assume(spin_system,assumptions,retention)

Parameters

    assumptions - 'nmr'  for high-field NMR)

    'esr'  for electron rotating frame ESR

    'deer' for DEER spectroscopy

    'deer-zz' for DEER spectroscopy with electron
    flip-flop terms removed

    'labframe' for full laboratory frame simulation
    with all Hamiltonian terms retained

    'qnmr'     for quadrupolar NMR with numerical
    rotating frames: spin-1/2 particles
    will be in the rotating frame but
    spin>1/2 particles initially in the
    laboratory frame

    retention   - 'zeeman' drops all spin-spin interactions

    'couplings' drops all Zeeman interactions

Outputs

    the function updates the spin_system object

See also

create.m, basis.m, crystal.m, doublerot.m, residual.m, Kernel_functions, Kernel_contexts

Version 1.9, authors: Ilya Kuprov