cart2mode.m

From Spinach Documentation Wiki
Jump to: navigation, search

Converts Cartesian derivatives of spin Hamiltonian parameters, as produced by electronic structure theory packages, into the derivatives with respect to dimensionless mode coordinates that the bosonic mode specification interface of create.m expects in the inter.modes.coupling_mod and inter.modes.zeeman_mod fields. The dimensionless coordinate of each mode is (a+a')/sqrt(2), and the Cartesian displacement that it produces on a degree of freedom with mass m is scaled by sqrt(hbar/(m*omega)), where omega is the angular frequency of the mode. The function therefore contracts the Cartesian derivative array with the mass-weighted normal mode eigenvector and applies the zero-point displacement scaling.

Both first and second derivatives are supported: the first order case describes a linear modulation of a spin interaction by a single mode, and the second order case describes the bilinear Raman-type modulation by a pair of modes, or the quadratic modulation by one mode when the same eigenvector is supplied twice.

Syntax

    mode_derivs=cart2mode(cart_derivs,eigvecs,masses,frqs)

Parameters

    cart_derivs - first derivatives of an interaction with
                  respect to Cartesian displacements, in Hz
                  per Angstrom, an array of dimension
                  [d1 d2 3N] where N is the number of atoms
                  and the Cartesian degrees of freedom are
                  ordered [x1 y1 z1 x2 y2 z2 ...]; or second
                  derivatives in Hz per Angstrom squared, an
                  array of dimension [d1 d2 3N 3N]

    eigvecs     - orthonormal mass-weighted normal mode
                  eigenvector, a [3N 1] column vector for
                  the first order case; two such vectors
                  as a [3N 2] array for the second order
                  case

    masses      - atomic masses in unified atomic mass
                  units, an [N 1] column vector

    frqs        - mode frequency in Hz, a positive scalar
                  for the first order case; a [1 2] vector
                  for the second order case

Outputs

    mode_derivs - derivatives with respect to dimensionless
                  mode coordinates, in Hz, a [d1 d2] array
                  to be placed into the corresponding cell
                  of inter.modes.coupling_mod (d1=3, d2=3)
                  or inter.modes.zeeman_mod (d1=1, d2=3)

Notes

  1. Raw Taylor derivatives are returned; the 1/2 factors of the Taylor expansion are applied by Spinach internally.
  2. Derivative data in wavenumbers or meV should be converted into Hz with icm2hz.m or mev2hz.m beforehand.
  3. Zero and negative frequency modes are rejected because their zero-point scaling is undefined.

See also

create.m, mev2hz.m, icm2hz.m, kelvin2hz.m, hamiltonian.m, Spin system specification, Kernel utilities

Version 2.12, authors: Ilya Kuprov