In RMCProfile, it is possible to refine the nucleus and magnetic structure altogether, and one can find detailed instructions in section 2.11 in the manual. The magnetic scattering will be calculated for both the Bragg diffraction and the total scattering pattern in reciprocal space (see the manual for detailed formulation). Specifically for the total scattering calculation, no Fourier transform will be performed and therefore in RMCProfile, the magnetic scattering will not be calculated in real space. Thus, unless one can exclude the magnetic contribution cleanly from the real space signal, the real space data cannot be fitted in RMCProfile when the magnetic scattering contribution is existing — since otherwise one would have inconsistence between the model and the data. In practice, one could seek for help from the unit-cell based fitting for the magnetic total scattering pattern in real space (i.e. the magnetic pair distribution function, mPDF [1]) to perform the co-refinement of the nucleus and magnetic structure first and then exclude the magnetic signal from the overall pattern after refinement, and then feed the clean nucleus scattering data into RMCProfile for fitting [2].
In this post, I will take one of my examples to demonstrate the refinement of both the nucleus and magnetic structure in RMCProfile, and for this case, I am using exactly the approach mentioned above to extract a pure nucleus total scattering signal from an initial mPDF refinement. In general, one does not have to do this, in which case we simply just include only the reciprocal total scattering data in the fitting. For the example to be used for the demo, I include the whole RMC fitting folder here. To prepare the magnetic structure refinement in RMCProfile, one needs to,
1. Put all the magnetic ions up in front in the RMC6F configuration. Like in my example, I have Fe atoms as the only magnetic species and as one can see from the RMC6F configuration, all the Fe atoms come up in front among all the atoms.
In the example here, I have two types of Fe ions with different valence and therefore with respect to the magnetic scattering, they should be treated differently. Therefore, one can see that in the RMC6F configuration, we have two types of Fe atoms come in the first and second place in the configuration. In general, this conflicts with how RMCProfile package treats atoms of the same type in the configuration -- basically, all atoms sit together consecutively will be treated as the same type of atom. If we are not dealing with magnetic scattering, we can separate the same type of atoms by another type of atom to let the program treat them differently. However, as mentioned above, it is a harsh requirement for fitting the magnetic structure in RMCProfile that all magnetic atoms should come up in the front. In this case, we have to put in a keyword 'USE_RMC6F_ATOM_INFO' in the '.dat' input file to tell the program to treat the two types of Fe atoms differently.
2. Prepare the magnetic structure configuration file — in the example here, it is the ’10K_Sn1Fe3_spin.cfg’ file. In this file, there are two header lines — the first line contains three numbers and they are the number density, the total number of magnetic atoms and the number of magnetic species, respectively. The second line contains the number of atom for each of the magnetic species. In the example, I have two types of Fe atoms as the magnetic species and there are 750 Fe atoms of the first type in the configuration and 3000 Fe atoms of the second type, in total making 3750 Fe atoms as the magnetic species in the system. The following lines contain the xyz cartesian coordination of the unit magnetic moment vector for each of the magnetic species — in the example here, the first 700 lines correspond to the first type of Fe atoms and the following 3000 lines correspond to the second type. Here, one should keep in mind that the magnetic moment vector specified in each line is a unit vector, and the magnitude of the magnetic moment should be specified in the ‘.dat’ file (see the example here and also the manual). There is not an existing utility in RMCProfile for generating the magnetic structure configuration file and one has to come up with a routine to populate those unit vectors in each line as the initial magnetic configuration.
3. Once the configuration files are ready, specification of magnetic structure refinement is simply to follow the template as given in the example here and one can again refer to the manual for detailed instructions about those keywords.
4. There is one thing to specifically point out about the magnetic self scattering term. From the formulation presented in the manual, one can see the first term in the formulation refers to the self-scattering term. If one were to perform a Fourier transform of the total scattering pattern, one would find that such a term would yield a peak in the very low r region in real space. This does bring up the concern about the consistence between the model and the data. In practice, we usually apply a Fourier filter to filter out the low-r region garbage when processing the total scattering data and such a Fourier filter will automatically filter out the low-r peak corresponding to the magnetic self-scattering. Therefore, if indeed the Fourier filter is applied at the data processing stage, we should not include the magnetic self-scattering signal for the modeling. To specify this explicitly in the ‘.dat’ file for RMCProfile, one needs to put in the keyword ‘> NO_SELF_SCATTERING ::’.
References
[1] B. Frandsen, et al. J. Appl. Cryst. (2022). 55, 1377-1382.
[2] Y. P. Zhang, et al. Phys. Rev. B 100, 014419.