Example - how to evaluate the crystal field of NdCu using

A simple input file is made up in the following:

- The first line in the input file sets the type of single ion module, for rare earth in spin-orbit
coupling we use
*so1ion*. - Comment lines start with #.
- The type of ion has to be given plus several lines containing the crystal field parameters.

It follows an example, we take the values
for NdCu from literature [21]. Note that
if the crystal field parameters are not known, there are different
possibilities to obtain values, such as ab initio calculation,
point charge calculations (use module *pointc*) and fitting
to experimental data (see section 17).

#!MODULE=so1ion #<!--mcphas.cf--> # comment followed by # the ion type and the crystal field parameters [meV] IONTYPE=Nd3+ GJ=0.727273 # - note you can also do any pure spin problem by entering e.g. IONTYPE=S=2.5 B20= 0.116765 B22 = 0.134172 B40 = 0.0019225 B42 = 0.0008704 B44 = 0.0016916 B60 = 0.0000476 B62 = 0.0000116 B64 = 0.0000421 B66 = 0.0003662 # instead of the Stevens parameters Blm # second order crystal field parameters Dx^2 Dy^2 and Dz^2 can be entered in meV # - this corresponds to the Hamiltonian H=+Dx2 Jx^2+Dy2 Jy^2+Dz2 Jz^2 Dx2=0.1 Dy2=0 Dz2=0.4

- The calculation of the single ion properties is
performed using
*singleion*with the option*-r*, i.e. type the command**singleion -r Nd3p.sipf 20 0 0 0 0 0 0**Here Nd3p.sipf refers to the name of the single ion property file, the numbers 20 0 0 0 0 0 0 indicate the temperature in Kelvin, the 3 components of the applied magnetic field in Tesla and the 3 components of the exchange field in meV, respectively. Files

*Nd3p.sipf.levels.cef, Nd3p.sipf.trs*and*_Nd3p.sipf*are generated in directory*results*, which must exist in order to run the program.*_Nd3p.sipf*contains the same information as the input file*Nd3p.sipf*, however it is not just copy, but formatted newly by the program*singleion*. In particular all numerical values are taken from the internal storage, thus this file can be used to check, whether the input file was read correctly (a typical error which can be detected this way would be to enter a number as ''4,25'' instead of ''4.26'' (correct way). In the first case a wrong number will be read and used in the calculation. The other output files of program*singleion*contain the results of the calculation, i.e. the diagonalisation of the Hamilton operator and the neutron scattering cross section. The program*singleion*outputs a variety of results, such as eigenvectors and energies of the crystal field states. In addition it provides the neutron powder cross section for each crystal field transition (in barn/sr) at a given temperature according to the formula

(7) Note: in this calculation energy and Q dependence of the double differential scattering cross section are not considered and integration over all energies and scattering angles has been performed. In order to get a more realistic scattering intensity, the form factor (giving a dependence), the factor and the Debye Waller factor should be considered.

Here comes the output file

*results/Nd3p.sipf.levels.cef*:# # #!d=10 sipffile=Nd3p.sipf T= 20 K Hexta=0 T Hextb=0 T Hextc=0 T Hxc1=0 meV Hxc2=0 meV Hxc3=0 meV Ia=0 Ib=-1.25627e-15 Ic=5.58172e-16 #! Eigenvalues = -5.85363 -5.85363 -2.94823 -2.94823 -0.86682 -0.86682 1.39302 1.39302 8.27566 8.27566 #Eigenvectors [as colunmns] #Real Part -0.022805 -0.042996 +0.025080 -0.000746 -0.000979 +0.009997 +0.242313 -0.000570 +0.968599 +0.000466 +0.786799 -0.417315 -0.009191 -0.309074 -0.119114 -0.011666 +0.000725 +0.308423 -0.000020 +0.041658 +0.174846 +0.329651 -0.305620 +0.009088 +0.070534 -0.720191 -0.469697 +0.001105 +0.151679 +0.000073 -0.203103 +0.107725 -0.008431 -0.283518 +0.671893 +0.065804 +0.001456 +0.618963 -0.000080 +0.166744 -0.052032 -0.098100 +0.853917 -0.025393 +0.007647 -0.078084 -0.492365 +0.001158 +0.096278 +0.000046 +0.098100 -0.052032 +0.025393 +0.853917 -0.078084 -0.007647 +0.001158 +0.492365 -0.000046 +0.096278 +0.107725 +0.203103 -0.283518 +0.008431 -0.065804 +0.671893 -0.618963 +0.001456 +0.166744 +0.000080 -0.329651 +0.174846 -0.009088 -0.305620 -0.720191 -0.070534 +0.001105 +0.469697 -0.000073 +0.151679 -0.417315 -0.786799 -0.309074 +0.009191 +0.011666 -0.119114 -0.308423 +0.000725 +0.041658 +0.000020 +0.042996 -0.022805 +0.000746 +0.025080 +0.009997 +0.000979 -0.000570 -0.242313 -0.000466 +0.968599 #Imaginary Part 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Here comes the output file

*results/Nd3p.sipf.trs*:#output file of program mcdisp version 5.2Sat Oct 31 04:57:16 2015 #!<--mcphas.mcdisp.trs--> #********************************************************************* # mcdisp - program to calculate the dispersion of magnetic excitations # reference: M. Rotter et al. J. Appl. Phys. A74 (2002) 5751 # M. Rotter J. Comp. Mat. Sci. 38 (2006) 400 #********************************************************************* #(*)The unpolarized powder average neutron cross section sigma for each transition # is calculated neglecting the formfactor, the Debye Wallerfactor, factor k'/k as follows: #-------------------------------------------------------------- # Transition intensities in barn/sr. | # | # = | # | 2 | # | = const wi |<i|M |k>| | # | T | # = | # E -> E | # i k | # | # with | # | # - E /T | # e i | # wi = const -------------- | # ---- - E /T | # > n e i | # ---- i | # i | # | # | # ----- | # 2 2 \ 2 | # |<i,r|M |k,s>| = --- > |<i,r|M -<M >|k,s>| | # T 3 / u u | # ----- | # u = x,y,z | # | # | # and | # | # 1 2 | # const = ( --- r ) | # 2 0 | # | # -12 | # r = -0.53908* 10 cm | # 0 | # | # | # M = L + 2 S = g J | # J | # | #--------------------------------------------------------------| # | # 1.Sum rule : | # | # | # ---- = 2 | # > | =--- *g *g *const * J(J+1) *wi | # ---- = 3 J J | # k E -> E | # i k | # | #--------------------------------------------------------------| # | # 2. sum rule : | # | # | # ---- = 2 | # > | = --- * const*g *g *J(J+1) | # ---- = 3 J J | # k,i E -> E | # i k | #-------------------------------------------------------------- #! ninit= 1e+08 (max number of initial states) -do not modify: needed to count transitions #! pinit= 0 (minimum population number of initial states)-do not modify: needed to count transitions #! maxE= 1e+10 meV(maximum value of transition energy)-do not modify: needed to count transitions #! T= 20 K Ha=0 Hb=0 Hc=0 T #********************************************************************* #i j k ionnr transnr energy |gamma_s| sigma_mag_dip[barn/sr](*) wnn'|<n|I1-<I1>|n'>|^2 wnn'|<n|I2-<I2>|n'>|^2 ... with wnn'=wn-wn' for n!=n' and wnn=wn/k_B T 1 1 1 1 1 -1e-06 0.578897 0.0255675 0 0.450589 0.128308 1 1 1 1 2 0 1.97195 0.0870932 0.931383 0.981677 0.0588932 1 1 1 1 2 0 1.97195 0.0870932 0.931383 0.981677 0.0588932 1 1 1 1 3 2.9054 0.732717 0.023043 0.605775 0.115041 0.0119001 1 1 1 1 3 -2.9054 0.732717 0.00427206 0.605775 0.115041 0.0119001 1 1 1 1 4 2.9054 0.506209 0.0159196 0.147164 0.35519 0.00385427 1 1 1 1 4 -2.9054 0.506209 0.00295142 0.147164 0.35519 0.00385427 1 1 1 1 5 4.98681 0.619651 0.016806 0.0312924 0.427228 0.161131 1 1 1 1 5 -4.98681 0.619651 0.000931608 0.0312924 0.427228 0.161131

- at the end of the file
*results/Nd3p.sipf.trs*the neutron scattering cross section of the different transitions is given as a list of energy (column 6) vs intensity (column 8). However by default only 5 pairs of levels are considered. In order to consider all possible pairs of levels (in our case 55), you have to enter the option*-nt 55*, i.e. issue the command**singleion -r Nd3p.sipf -nt 55 20 0 0 0 0 0 0**In order to calculate a spectrum these results have to be convoluted with the resolution function of a neutron spectrometer. This can be done by the program

*convolute*. For example, the commands**gauss 0.5 0.05 -4 4 res.dat****convolute 6 8 results/Nd3p.sipf.trs 1 2 res.dat results/Nd3p.sipf.cvt**create a Gaussian resolution function (of 0.5 meV full width half maximum stored in stepsize 0.5 meV from -4 to 4 meV) and convolute the calculated neutron transition energies vs intensities in file

*results/Nd3p.sipf.trs*with this Gaussian resolution function. The step size of the output spectrum is 0.05 meV. The output spectrum is contained in file*results/Nd3p.sipf.cvt*. - Use program
*display*to view the spectrum:**display 1 2 results/Nd3p.sipf.cvt**In order to create an image file for printing the viewed spectrum can be saved by either a printscreen or by using the option

*-o file.jpg*of the*display*program. Such a jpg image is shown in figure 5. - In order to calculate the magnetisation for our problem (in the paramagnetic state),
the magnetic field has to be given in the command line and
program
*singleion*has to be started with the option*-M*, i.e.**so1ion -M -r Nd3p.sipf 10 0 0 1 0 0 0**The numbers denote a temperature (10 K) and a field 1 Tesla along the z-axis. By default the results are written directly to the screen, however they can be piped into a file by

**so1ion -M -r Nd3p.sipf 10 0 0 1 0 0 0 results/moment.rtplot**Here the '''' sign appends the ouput of each command, thus iterating the command for several different magnetic fields allows to calculate a magnetisation curve - fig. 6 shows the result.

**Figure 6:**Calculated magnetic moment for field applied along direction ( axis, note the notation of the crystal field axes with respect to the crystal lattice is in our example) of NdCu at a temperature of 10 K. [plot created by program*gnuplot*] - In a similar way the temperature dependence of the susceptibility can be calculated, actually
one calculates the magnetisation at variable temperature.
- The crystal field contribution to the specific heat may be calculated
from the output file
*results/Nd3p.sipf.levels.cf*using the program*cpsingleion*, e.g.**cpsingleion 10 100 1 results/Nd3p.sipf.levels.cef**calculates the specific heat in the temperature interval 10-100 K with a step width of 1 K. Alternatively a comparison to experimental data can be made by**cpsingleion 1 2 cpexp.dat results/Nd3p.sipf.levels.cef**, where the temperatures are given in column 1 and the experimental specific heat in column 2 of file*cpexp.dat*. The calculated specific heat is compared to the experimental data and a standard deviation*sta*is calculated and output is written to stdout. Other quantities can be calculated using the options: -s (calculate entropy (J/molK) instead of cp), -f (calculate free energy (J/mol) instead of cp),-u (calculate magnetic energy (J/mol) instead of cp), -z (calculate partition sum instead of cp). Fig. 7 shows an example.**Figure 7:**Calculated specific heat of NdCu in zero magnetic field as calculated by*cpsingleion*(crystal field contribution) in comparison with experimental data [21]. The dashed line shows the results of a calculation, which in addition to the crystal field takes into account the two ion interaction and using*singleion*as a module in*mcphas*- see below and chapter 7. [plot created by program*gnuplot*] - The spin-disorder resistivity due to scattering of conduction -electrons with the localised
-electrons via the exchange interaction can be calculated in the first Born approximation as [23],

where is the exchange constant, is the Bose factor and is the Fermi function . The program

*rhoso1ion*can be used to calculate this resistivity for magnetic ions in a crystal field. The wavefunctions are taken from the file*results/Nd3p.sipf.levels.cef*output by*singleion*. The matrix elements of are calculated according to the formulae of Dekker [24].*rhoso1ion*calculates only the sum in the above equation, however. The constant coefficient is set to unity, or may be specified using the option*-rho0*or*-r*. The syntax is otherwise the same as*cpsingleion*. For example, to calculate the resistivity from 10 to 100 K in 1 K steps with .cm, the command**rhoso1ion 10 100 1 -r 0.2 -i results/Nd3p.sipf.levels.cef**can be used. Alternatively, for comparison with data,

**rhoso1ion 1 2 rhoexp.dat -r 0.2 -i results/Nd3p.sipf.levels.cef**can be used. Note that as the temperature dependence of the resistivity in this case is mainly a function of the Bose and Fermi functions, at high temperatures where all crystal field levels are thermally occupied, the resistivity will saturate to a value .

*Exercises:*

- Use
*singleion*to calculate the energies, eigenvectors and transition matrix elements (for inelastic neutron scattering) for Nd in an orthorhombic crystal field. Use the parameters given in section 6.3.

Martin Rotter 2017-01-10