Next: External module function Lcalc
Up: Module Functions for Observables
Previous: External module function mcalc
Contents
Index
External module function dm1 - used by mcdisp
In order to visualized magnetic moment fluctuations and to calculate neutron intensities
in dipole approximation the external single ion module has to provide the transition
matrix elements of the magnetic moment operator in units of
by the
vector
, which is given by:
.
The format to be used is:
extern "C" int dm1(int & tn,double & T,Vector & Hxc,Vector & Hext,double * g_J,Vector & MODPAR,
char ** sipffilename,ComplexVector & m1,float & maxE, ComplexMatrix & est)
The meaning of the symbols is as follows:
on input
|tn| transition-number
sign(tn) >0 standard, <0 routine should do some printout to stdout for user information
MODPAR Vector with Parameters read in single ion property file
sipffilename file name of the single ion parameter file
g_J Lande factor
T Temperature[K]
Hxc vector of exchange field [meV] (can be n-dimensional, for a set of n operators)
Hext external magnetic field [T]
est eigenstate matrix (initialized by estates)
it should/may also contain population numbers of the states
(imaginary part of row 0)
and eigenvalues (real part of row 0) with values set by the most recent call
for this ion (use of this matrix is optional)
u1(1) ninit + i pinit (from mcdisp options -ninit and -pinit)
maxE upper boundary for transition energy (meV) to be considered
(from mcdisp option -maxE)
on output
int total number of transitions
u1 transition matrix element vector m1=<-|m-<m>|+>sqrt((n- - n+))
The module function must perform the following tasks:
- check if the dimensions of vector Hxc (taken by mcphas from the number of
interaction constant columns in mcphas.j)
and MODPAR (taken by mcphas from the number of params in the single ion property
file) agree with the module specifications. If the check fails the module function should exit the
program with an appropriate error message
- the module function should do a numbering of all possible single ion transitions and return
the total number of transitions as an integer. Input file parameters params are supplied as a vector MODPAR and
Lande factor as g_J and can be used for this purpose. The numbering will depend on
the parameters ninit, pinit and maxE which are provided as input. These parameters
have to be considered. IMPORTANT: the numbering scheme of transitions has to
be the same for du1calc and all the corresponding d...1 functions for observables !
- for the transition number tn the vector m1 is to
be filled with
.
(note
).
- If the energy of this transition
is zero, i.e.
(diffuse scattering),
the expression (77) would be zero because
vanishes.
In this case the single ion module should calculate
instead of
.
- if
all quantities should be evaluated assuming that all Boltzmann probabilities
are zero except for the state number
, for which the probability
.
Next: External module function Lcalc
Up: Module Functions for Observables
Previous: External module function mcalc
Contents
Index
martin rotter
2013-09-19