See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/267375610 Introduction to the Program FULLPROF: Refinement of Crystal and Magnetic Structures from Powder and Single Crystal... Article CITATIONS READS 2 5,128 1 author: Juan Rodriguez-Carvajal Institut Laue-Langevin 486 PUBLICATIONS 14,809 CITATIONS SEE PROFILE Some of the authors of this publication are also working on these related projects: Various Scientific Software Development View project Molecular Multiferroics View project All in-text references underlined in blue are linked to publications on ResearchGate, letting you access and read them immediately. Available from: Juan Rodriguez-Carvajal Retrieved on: 03 November 2016 Introduction to the Program FULLPROF: Refinement of Crystal and Magnetic Structures from Powder and Single Crystal Data Juan Rodríguez-Carvajal Laboratoire Léon Brillouin (CEA-CNRS), CEA/Saclay, 91191 Gif sur Yvette Cedex, FRANCE. In these notes an introduction to the program FullProf is presented. After a brief introduction summarizing the history of the program we present the main elements of the Rietveld method and how to use the program in routine work for refining crystal and magnetic structures. The most specialized topics (microstructure effects, flipping ratio refinements, the use of special form-factors, time of flight neutron powder diffraction) will not be treated here. A full example of Simulated Annealing run, for localizing hydrogen atoms using neutron powder diffraction, is discussed in more detail. These notes have been written taking parts of the manual and other tutorial documents that are available in the FullProf Web site. Introduction The program FullProf has been mainly developed to perform Rietveld analysis [1] of neutron or X-ray powder diffraction data collected at constant, or variable, step in scattering angle 2θ or using the technique of neutron time-of-flight (TOF). Single Crystal refinements can also be performed alone or in combination with powder data. However, the program has some “structure determination” capabilities by using the Simulated Annealing method for global optimization. The first versions of the program FullProf were based on the code of the DBWS program [2], which was also a major modification of the original Rietveld-Hewat program. The program FullProf has been re-written using the full capabilities of the new Fortran 95 standard during 1997-1998. It is progressively being transformed in a program based in the Crystallographic Fortran 95 Modules Library [3]. The program works with some allocatable arrays so the user can directly control the dimensions of important arrays at run time. In this paper we shall describe some elementary points concerning the methods implemented in the program and how to use it. For further details the user should consult the manual and tutorials. The Windows version of the program and all the suite of programs related to FullProf are now distributed within the FullProf Suite installer (setup_FullProf_Suite.exe). This installer, additional documents and tutorials, can be found in the FullProf Web site [4]. The Rietveld Method A powder diffraction pattern can be recorded in numerical form for a discrete set of scattering angles, times of flight or energies. We will refer to this scattering variable as T . Then, the experimental powder diffraction pattern is usually given as two arrays {Ti , yi }i =1,...,n . In the case of data that have been manipulated or normalized in some way the three arrays {Ti , yi ,σ i }i =1,...,n , where σ i is the standard deviation of the profile intensity yi , are needed in order to properly weight the residuals in the least squares procedure. The profile can be modeled using the calculated counts yci at the ith step by summing the contribution from neighboring Bragg reflections plus the background: yc ,i = ∑ Sφ ∑ Iφ ,h Ω(Ti − Tφ ,h ) + bi φ (1) h The vector h (=H, reciprocal lattice vector, or H+k for magnetic structures of propagation vector k) labels the Bragg reflections, the subscript φ labels the phase and vary from 1 up to the number of phases existing in the model. In FullProf the term phase is synonymous of a same procedure for calculating the integrated intensities Iφ ,h . This includes the usual meaning of a phase and also the case of the magnetic contribution to scattering (treated usually as a different phase) coming from a single crystallographic phase in the sample. The general expression of the integrated intensity is: Iφ ,h = {L A P C F 2 } (2) φ ,h For simplicity we will drop the φ -index. Sometimes we will refer to the whole arrays { yi } and { yci } as yobs and ycalc respectively. The meaning of the different terms appearing in (1) and (2) is the following: • Sφ is the scale factor of the phase φ • • • • • • • Lh contains the Lorentz, polarization and multiplicity factors Fh is the structure factor (crystal structures) or the modulus of the magnetic interaction vector (magnetic structures). Ah is the absorption correction Ph is the preferred orientation function Ω is the reflection profile function that models both instrumental and sample effects Ch includes special corrections (non linearity, efficiencies, special absorption corrections, extinction, etc) bi is the background intensity In the following sections we discussed the different terms in more detail. The Rietveld Method consist of refining a crystal (and/or magnetic) structure by minimizing the weighted squared difference between the observed { yi }i =1,...,n and the calculated (1) pattern {y c ,i (α)}i =1,...,n against the parameter vector α = (α1 , α 2 , α 3 ,...α p ) . The function minimized in the Rietveld Method is: n χ 2 = ∑ wi { yi − yc ,i (α)} 2 (3) i =1 with wi = σ12 , being σ i2 the variance of the "observation" yi . In more complex cases the user i may consider several diffraction patterns, or some chemical constraints. For those cases the general expression of the function to be minimized is: N N P =1 p =1 n m P j =1 1 χ T2 = ∑ ω P χ P2 + χ G2 = ∑ ω P ∑ wi { yi − yci (α)} + c ∑ 2 {g j − g cj (α)} σ 2 i =1 2 (4) gj Where χ P2 and χ G2 are the chi-square of the pattern P and the chi-square of soft constraints. The weight factors ω p are provided by the user and are internally normalized in order to get N ∑ω P =1 P = 1 , for the N patterns. The quantity g j is the prescribed value of a constraint (distance, angle, valence, magnetic moment, etc) with standard deviation σ gj .The smaller the value of σ gj the higher is the strength of the constraint. The calculated value of the constraint g cj (α) is performed as a function of a subset of components of the vector parameter α .The normalization constant c is taken as the current value of the global reduced chi-square for all the diffraction patterns. For simplicity we shall consider the expression (3) to explain some standard points concerning the least squares optimization. If the optimum set of free parameters is α opt ,the necessary condition for a minimum of (3) is that the gradient of ∂χ 2 χ 2 should be zero: =0 ∂α α=α opt A Taylor expansion of yic ( α) around an initial guess α0 allows the application of an iterative process. The shifts to be applied to the parameters at each cycle for improving χ 2 are obtained by solving a linear system of equations (normal equations) Aδ α 0 = b (5) where the components of the p × p matrix A and vector b in the Gauss-Newton algorithm, used within FullProf, are given by the expressions: ∂y ( α ) ∂yc ,i ( α0 ) Akl = ∑ wi c ,i 0 ∂α k ∂α l i (6) ∂yc ,i ( α0 ) bk = ∑ wi ( yi − yc ,i ) ∂α k i The shifts of the parameters δ α0 obtained by solving the normal equations are added to the starting parameters giving rise to a new set α1 = α0 + δ α0 . The new parameters are considered as the starting ones in the next cycle and the process is repeated until a convergence criterion is satisfied. The shifts applied to the current parameters may be pre-multiplied by a user defined factor that depend on each individual parameter (through the codeword) and a relaxation factor. The standard deviations of the adjusted parameters are calculated by the expression: σ (α k ) = ak ( A −1 ) kk χν2 (7) Where the reduced chi-square is defined as: χν2 = χ2 (8) n- p The quantity ak is the coefficient of the codeword for the parameter α k . The χν2 quantity used in the above formula is always calculated for the points in the pattern having Bragg contributions, thus σi could be greater than the corresponding value calculated with other programs. In FullProf the quantity χν2 is also calculated for all points considered in the refinement, so the user can easily re-calculate the alternative value of the standard deviation. In normal least square refinements the weighting scheme is based in fixed variances of the profile intensities. This is appropriate when the statistics is good enough to be considered as Gaussian. For low counting statistics a maximum likelihood refinement is more appropriate. This is equivalent to calculate the variance according to the model instead of using experimental fixed variances that are very bad estimated when low counting rate is dominant. In such a case the weights of the observations are calculated at each cycle as: 2 wi = 1 σ calc ,i supposing a Poissonian distribution and correcting for eventual normalization factors used in the input data file to estimate the experimental variances. Single Crystal, or Integrated Intensity, data The program FullProf is also able to refine the crystal and magnetic structure using single crystal data, even if they correspond to a twinned crystal. The method is completely analogue to the Rietveld method, except that is more simple because all the complexities related with background and peak shapes are absent. The function optimized when using integrated intensities is: 2 2 2 M = ∑ wn (Gobs (9) ,n − ∑ Gcalc ,k ) n k The index n runs over the observations (1,..Nobs). The index k runs over the reflections contributing to the observation n (in case of twinned crystals or overlapped integrated intensities coming from powder data). G 2 is the square of the structure factor (intensity corrected for Lp-factor). In case of powder diffraction Gk2 = I k = ( jLpF 2 ) k , so clusters of integrated intensities are used. Getting started with the Rietveld method using FullProf The minimal input for the program FullProf is a file of extension “.pcr”, which called hereafter a PCR file, containing the structural and peak shape information. The code of the file (let us call it CODFIL for CODFIL.pcr) serves for naming different output files distinguished by their extension. The PCR file may just be the unique input when a simulation is performed. For treating experimental data, at least a file containing the profile intensities, or the reflection indices and structure factors for single crystals, is needed. The extension of this file is usually “.dat” but any other extension is admissible. Below we give a description of the examples contained in the file pcr_dat.zip (this file is accessible in the site given in [4]). We shall discuss some elementary rules and comments about the problems the user can experience in running the program. The Commission on Powder Diffraction of the International Union of Crystallography has published some guidelines for Rietveld refinement [5] that can be used to complete the rules provided in this paragraph. Rietveld refinement has nothing to do with structure determination. To start refining a structure an initial model (even if incomplete) is necessary. This model is supposed to be obtained from a crystal structure solver program or by any other mean. For starting a profile refinement from the scratch, the best is to copy one of the PCR files accompanying the distribution of FullProf, and modify it according to the user’s case: x-ray or neutron diffraction, crystal or magnetic structure refinement, synchrotron, TOF neutrons, etc. The provided PCR files in the archive pcr_dat.zip can be used as templates. Of course the closer to the user’s case is the initial PCR file the easier is to modify it. An important aspect is the format of the profile intensities data file that must be correctly given before attempting any kind of refinement. The user must be aware of the way he(she) can control the refinement procedure: the number of parameters to be refined, fixing parameters, making constraints, etc. The control of the refined parameters is achieved by using codewords. These are the numbers Cx that are entered for each refined parameter. A zero codeword means that the parameter is not being refined. For each refined parameter, the codeword is formed as: C x = sign(a ) (10 p + a ) where p specifies the ordinal number of the parameter x and a (multiplier) is the factor by which the computed shift (see equation 5) will be multiplied before use. The calculated shifts are also multiplied by a relaxation factor before being applied to the parameters. Recently, we have developed a Windows GUI, called EdPCR, to control the PCR file, so that the user can control everything without been concerned with numbering the different parameters. All this part is automatically performed by EdPCR, by using the mouse and clicking on the appropriate boxes. To access EdPCR one can use a button existing in the toolbar of the visualizing program WinPLOTR [6]. The menu item “Templates” in EdPCR allows to import CIF or SHELX files to create, from the scratch, a PCR file that can be modified afterward. A stepwise method for Rietveld refinement Although the principles behind the Rietveld profile refinement method are rather simple, the use of the technique requires some expertise. This results merely from the fact that Rietveld refinement uses a least-squares minimisation technique which, as any local search technique, gets easily stuck in false minima. Besides, correlation between model parameters, or a bad starting point, may easily cause divergence in early stages of the refinement. All these difficulties can actually be readily overcome by following a few simple prescriptions: • Use the best possible starting model: this can be easily done for background parameters and lattice constants. In some cases, in particular when the structural model is very crude, it is advisable to analyze first the pattern with the profile matching (Le Bail) method in order to determine accurately the profile shape function, background and cell parameters before running the Rietveld method. • Do not start by refining all structural parameters at the same time. Some of them affect strongly the residuals (they must be refined first) while others produce only little improvement and should be held fixed till the latest stages of the analysis. • Before you start, collect all the information available both on your sample (approximate cell parameters and atomic positions) and on the diffractometer and experimental conditions of the data measurement: zero-shift and resolution function of the instrument, for instance. Then a sensible sequence of refinement of a crystal structure is the following: 1. Scale factor. 2. Scale factor, zero point of detector , 1rst background parameter and lattice constants. In case of very sloppy background, it may be wise to actually refine at least two background parameters, or better fix the background using linear interpolation between a set of fixed points provided by user. 3. Add the refinement of atomic positions and (eventually) an overall DebyeWaller factor, especially for high temperature data. 4. Add the peak shape and asymmetry parameters (or better: use an external instrumental resolution file adapted to the diffractometer providing the data). 5. Add atom occupancies (if required). 6. Turn the overall temperature factor into individual isotropic thermal parameters. 7. Include additional background parameters (if background is refined). 8. Refine the individual anisotropic thermal parameters if the quality of the data is good enough. 9. In case of constant wavelength data, the parameters to correct for instrumental or physical 2θ aberrations with a COS or SIN angular dependence. 10. Microstructural parameters: size and strain effects. In all cases, it is essential to plot frequently the observed and experimental patterns. The examination of the difference pattern is a quick and efficient method to detect blunders in the model or in the input file controlling the refinement process. I may also provide useful hints on the best sequence to refine the whole set of model parameters for each particular case. When large and unrealistic fluctuations of certain parameters occur from one cycle to the next, examine the correlation matrix: if large values (say larger than 50%) are observed, refine separately the corresponding parameters, at least in the early stages of the refinement. Finally it must be remembered that there is a limit to the amount of information that can be retrieved from a powder diffraction pattern. Indeed structures with up to a hundred or more structural parameters can be refined from neutron powder data but such refinements must be performed with great care; for refinements involving a large number of variables the physical significance of certain parameters must be carefully examined. For instance thermal and profile parameters can become poorly defined and act as a dumping ground for systematic errors; then it is preferable to fix their values to a physically reasonable number and exclude them from the refinement. When the uncertainty concerns the atomic parameters, it may help to provide some external information to the program. This can be achieved for instance by using strict constraints. For instance the displacement (thermal) parameters of chemically similar but crystallographically distinct atoms may be constrained to be identical, or the occupancy of two distinct and partly occupied sites of a structure may be compelled by the chemical analysis of the material. For complex structures it may be necessary to use soft constraints on distances and angles, or even rigid body constrains. If there are difficulties from the very beginning (for instance a singular matrix at the first refinement), start refining the scale factors only and examine the observed versus calculated pattern using WinPLOTR. These will most of the time reveal a glaring blunder in the input data (zero-shift, step size, angular limits etc). Examples. Content of pcr_dat.zip To test the installation of the program, or for training purposes, a list of complete examples are provided together with FullProf. The content of the file pcr_dat.zip is now distributed within the FullProf Suite installer. Anyway it can be obtained as a separate file in the same area as the program. The files contained in pcr_dat.zip have been selected in order to illustrate the use of FullProf in a variety of situations. In no way the proposed models pretend to be the most adequate to the data. In some cases there is a clear disagreement between the data and the model. The user may try to improve the models including new parameters that have a clear physical relevance. Increasing the number of parameters just for getting more nice fits may result in non sense values. At present the files contained in the archive pcr_dat.zip are given in the following table: PCR Code Ce1 Ce2 Rutana Tbbaco Tbba Tb PbSOx PbSO PbSOm Pb PbSO4 PbSO4a Pb_ho Pb_sing Pb_san C60s C60 Dy Dya Dyb Dyc Hocu Hobb Hob Hobk1 Hobk2 Hobk3 Cuf1k Pb_san La Lab Monte Hmt Urea Pyr Ycbacu Arg_si Cecoal Cecua1 Lamn_3t2 Lamn_pol Si3n4r Sin_3t2 Pb_san Maghem Purpose refinement of a CeO2 standard " Conventional X-ray diffraction pattern: Rutile+Anatase Conventional X-ray diffraction pattern: Tb2BaCoO5 Conventional X-ray diffraction pattern: Profile Matching Search for Tb,Ba and Co by Montecarlo with prev. output Crystal structure refinement of PbSO4 with X-rays Profile matching to obtain an overlapped intensity file Search for Pb by Montecarlo using previous output Profile matching test of PbSO4 neutron data Crystal structure refinement of PbSO4 Crystal structure refinement of PbSO4 (anisotropic b's) Artificial multipattern refinement Data File ceo2.dat " Rutana.dat Tbbaco.dat " Tb.int Pbsox.dat " pbsom.int Pbso4.dat " " Pbso4.dat,Pbsox.dat, Hobk.dat Example of new format of PCR file adapted for multipattern Pbso4.dat refinements Example of Simulated Annealing: solves the structure of PbSO4 Pb_san.int Compares C60 x-tal data to form-factor SPHS sin(Qr)/Qr C60.int Refinement of C60 x-tal data using symmetry adapted cubic C60.int harmonics. Form-factor type SASH. Four different ways of refining the crystal Dy.dat and magnetic structure of DyMn6Ge6 " " " Refinement of the magnetic structure of Ho2Cu2O5 (D1B data) Hocu.dat Refinement with integrated intensities (Nuc+mag) Hobb.int Montecarlo search for mag. moments in Ho2BaNiO5 " Three different ways of refining the crystal Hobk.dat and magnetic structure of Ho2BaNiO5 " " Refinement of crystal & magnetic structrure of CuF2. Cuf1k.dat Microstructural effects (D1A data) Example of Simulated Annealing: solves the structure of PbSO4 Pb_san.int Two ways for strain refinement in La2NiO4 (D1B) La.dat with low resolution neutron powder data " Montecarlo test with single crystal data Monte.int Rigid body-TLS refinement of published single X-tal data Hmt.int Test Rigid body with satellites (simulated data) Urea.dat Test Rigid body with general TLS refinement (sim. data) Pyr.dat YBaCuO with Ca. Data from D1A Ycbacu.dat Corrected TOF data of Si from SEPD at Argonne Arg_si.dat TOF data from POLARIS at ISIS Cecoal TOF data from POLARIS at ISIS Cecua1.dat Constant wavelenght neutron data from 3T2 (LLB) of LaMnO3 Lamn_3t2.dat TOF data from POLARIS at ISIS on the RT phase of LaMnO3 Lamn_pol.dat Quantitative phase analysis. Two polymorphs of Si3N4. (Studvik) Si3n4r.dat As above but data taken at 3T2 (LLB) Sin_3t2 Example of Simulated Annealing: solves the structure of PbSO4 Pb_san.int Refinement of Fe2O3-Fe3O4 at RT (D1A data) Maghem In general, the user must first run the program to verify that the provided PCR files behave correctly. After that, the user should make a copy of the control files for saving them before running his(her) own options. The best way is to modify the given values for different sets of parameters and run the program. The beginner must make extensive use of editor-plot cycles. The plot of the file CODFIL.prf is of absolutely necessity for knowing the behavior of the program under bad (or inaccurate) input parameters. To use the above files for training, the inexperienced user must start with the simplest cases, that is ce1.pcr and ce2.pcr used to process the file ceo2.dat. This file corresponds to a data collection on cerium oxide with a laboratory X-ray powder diffractometer, using CuKα doublets. Other simple examples with conventional X-rays are: the rutile-anatase mixture, that allow a quantitative analysis of the relative fraction of each component, and the diffraction pattern of Tb2BaCoO5 presenting micro-absorption effects that produce some negative temperature factors. The user can modify the input file in order to input the micro-absorption correction and look for the changes in the results. The next files to be processed are those of PbSO4. The data file correspond to a laboratory X-ray diffraction pattern (pbsox.dat) and to a neutron powder diffraction pattern (pbso4.dat) obtained on D1A (ILL) that was used in a Round Robin on Rietveld refinement [7]. For a person working mainly with crystal structures the next files to be studied are: ycbacu, hmt and urea for powder diffraction. Some files to be used with single crystal data are also given: c60. The first one uses a simplistic model (just a spherical shell) for describing the C60 molecule that gives relatively good results. The user can try this file as an example of special form factor refinement. The free parameter is the radius of the C60 molecule. If the user is interested in magnetic structures it is worth to read the article [8], and references therein, for an introduction to the way the formalism of propagation vectors is implemented in FullProf, taking into account that slightly different conventions (see the mathematical section of the manual) have finally been adopted concerning the sign of phases. The user can start practicing with the rest of the files in the following order. • la, lab: refinement of the low temperature phase crystal and magnetic structure of La2NiO4. The data are from a medium-low resolution neutron powder diffractometer (D1B at ILL). This phase present a microstrain that is refined using two equivalent methods in the two files. The magnetic structure is very simple. A peak from an impurity phase is near the first magnetic peak. • The files hobb, hob, hobk1, hobk2, hobk3 concern the refinement of the crystal and magnetic structures of Ho2BaNiO5 at 1.5K, using different methods and conditions. The user can verify that hob.pcr can solve the magnetic structure of Ho2BaNiO5 just testing random configurations. This is a very favorable case and this method cannot be applied for general magnetic structure determination. The data are from D1B at ILL. • Hocu: refinement of the magnetic structure of Ho2Cu2O5. The data have been taken on D1B diffractometer at the ILL. Magnetic scattering dominates nuclear scattering. The crystal structure cannot be refined with these data. • Cuf1k: refinement of the magnetic structure of CuF2. The data have been taken on D1A diffractometer when it was installed provisionally at the LLB. Nuclear scattering dominates magnetic scattering. The diffraction pattern cannot be refined properly without taking into account microstructural effects. • The files dy, dya, dyb, dyc use different methods to refine the incommensurate magnetic structure of DyMn6Ge6. This is a conical structure that can be refined using a real space approach as in dy and dya or using Fourier components of the magnetic moments, which is the general formalism of FullProf for handling magnetic structures. This is the case of files dyb and dyc. The only right way to learn about crystal and magnetic structure refinements is practicing with real data as those given in the pcr_dat.zip archive, or better, with the data collected by and of interest to the user. Solving or completing structures by Simulated Annealing An option for helping to solve crystal and/or magnetic structures has been implemented in FullProf. This is a simulated annealing module able to handle two types of algorithms: fixed and variable steps for generating new configurations. The simulated annealing technique [9] works, at present, only with integrated intensities. A short report about the technique and the implementation in FullProf may be found in reference [10], here we show just some examples of using the method . To solve a crystal or a magnetic structure a complete list of atoms with all their attributes (thermal parameters, magnetic moments, etc) should be given as if everything were known. An example of simulating annealing PCR file is given in Figure 1. The use of codewords is totally supported so that any usual constraint may be used in the search. Of course the initial values of the parameters are arbitrary provided the hard constraints through the codewords are respected. In fact the meaning of the codewords is the same as in least square refinements, the multipliers and signs are applied to the shifts with respect to the previous values of the parameters. The scale factor may be treated automatically so that no codeword should be given to this parameter. Para-di-Iodo-Benzene (Sim.Annealing) ! !Nat Dis Ang Pr1 Pr2 Pr3 Jbt Irf Isy Str Furth 6 0 0 1.0 0.0 0.0 4 4 0 0 0 ! P b c a <--Space group symbol !Atom Typ x y z B ! d theta phi X0 Y0 Pi1 I 0.17439 0.04548 -0.30989 0.00000 0.00 0.00 0.00 0.00 3.50000 -0.09100 -0.09100 0.00000 0.00000 0.00 0.00 0.00 0.00 0.00 Pi2 C 0.06946 0.01811 -0.12342 0.00000 0.00 0.00 0.00 0.00 1.39400 -0.09100 -0.09100 0.00 0.00 0.00 . . . . . . . . . . . . . . . . . . . ATZ Nvk Npr More 0.00 0 0 0 Occ P6 Z0 CHI 1.00000 1.00000 0.00 0.00 0.00000 -2.62905 0.00 31.00 1.00000 0.00 THETA P16:SAT 2.05548 11.00 0.00000 PHI Spc 0.06590 21.00 0 0 ! Limits for selected parameters (+ steps & BoundCond for SA): 1 0.0000 3.1416 0.5000 1 Theta 2 -3.1416 3.1416 0.5000 1 Phi 3 -3.1416 3.1416 0.5000 1 Chi ! T_ini Anneal Accept NumTemps NumThCyc InitConf 8.000 0.900 0.020 80 0 0 ! NCyclM Nsolu Num_Ref Nscalef NAlgor 200 1 71 1 1 Figure 1: Part of a PCR file showing the use of the simulated anneling method to determine the orientation of the molecule of I2C6D4. The center of the molecule is at the origin and only three angles are needed to fix the position of the molecule in the unit cell. The program recognizes the use of simulated annealing by putting the variable Nre equal to the number of parameters to be eventually varied, and Cry =3 at the beginning of the PCR file (see appendix of the manual for details). In the example above the three angles (in radians) defining the orientation of the molecule are selected as parameters 1, 2 and 3. The admissible range of values are given in a list followed by an indicator telling to the program how to treat the boundaries. The number “1” following the value of the initial step (0.5 radians) indicates that periodic boundary conditions are applied. => **** SIMULATED ANNEALING SEARCH FOR STARTING CONFIGURATION **** => Initial configuration cost: 77.53 => Initial configuration state vector: => Theta Phi Chi => 1 2 3 => 1.3807 2.4672 -3.0110 => NT: 1 Temp: 8.00 (%Acc): 23.50 <Step>: 5.2360 <R-factor>: 44.4302 . . . . . . . => NT: 6 Temp: 4.72 (%Acc): 30.50 <Step>: 0.3496 <R-factor>: 23.8774 . . . . . . . . => NT: 11 Temp: 2.79 (%Acc): 39.33 <Step>: 0.1440 <R-factor>: 13.4990 . . . . . . . . => NT: 21 Temp: 0.97 (%Acc): 38.50 <Step>: 0.0530 <R-factor>: 6.3417 . . . . . . . . => NT: 33 Temp: 0.27 (%Acc): 36.17 <Step>: 0.0179 <R-factor>: 4.3854 =>BEST CONFIGURATIONS FOUND BY Simulated Annealing FOR PHASE: => -> Configuration parameters ( 71 reflections): => Sol#: 1 RF2= 3.928 :: => Theta Phi Chi => 1 2 3 => 0.9401 0.1464 2.7477 => => CPU Time: 1 25.177 seconds 0.420 minutes Figure 2: Simplified screen capture of the FullProf output when running in the simulating annealing mode for the example of Figure 1. The first picture of the structure corresponds to the starting configuration. The final result is also displayed. The flag InitConf is important for selecting the treatment of the initial configuration. If InitConf = 0 the initial configuration is totally random. If InitConf =1, the initial configuration is the one given by the values of the parameters in the PCR-file. This last option is useful when one tries to optimize an already good starting configuration, by controlling the box limits and the steps. The other critical point is to select between the two algorithms. This is controlled by the value of the variable Nalgor. If its value is zero, the Corana [11] algorithm is selected. This algorithm does not use fixed steps for moving the parameters defining the configuration, instead the program starts by using then whole admissible interval as initial step for all parameters and then adapt progressively their values in order to maintain an approximate rate of accepted configurations between 40% and 60%. If Nalgor =1 the same algorithm is used but the starting steps are those given in the file. For Nalgor =2, the normal SA algorithm (fixed steps) is used. The last method, used with appropriate boundary box for parameters and InitConf =1, is better when one tries to refine a configuration without destroying the Calculated Neutron powder diffraction pattern without Hydrogen atoms Where are the hydrogen atoms? Figure 3: Comparison of the calculated versus observed neutron powder diffraction pattern of Sr acid oxalate hydrate, using the represented crystal structure solved by X-ray powder diffraction [13]. starting configuration. Within the distribution of FullProf there is a simple example of simulating annealing work using neutron diffraction data from D1A on lead sulfate PbSO4. The file is Pb_san.pcr, where the user finds a particular case of how to prepare a PCR file adapted for simulated annealing. In this example the atoms are treated independently using the correct space group and an artificial constraint is used: several atoms are constrained to have the same y fractional coordinate. We know that all these atoms are in a special position of the Pnma space group (y should be ¼ or ¾), but the file is prepared in such a way as to illustrate the use of constraints. Starting from a random configuration for all the free parameters (including the special y’s) the program finds progressively the good atom positions when the appropriate values of the control parameters are used. The user may play with the different parameters (starting temperature, number of Monte Carlo cycles per temperature, type of algorithm, number of reflections to be used, etc) to experience when the method is able to solve the PbSO4 structure. Another interesting case is that of searching hydrogen (deuterium) atoms when the rest of atoms are already known. We shall take as an example the case of Sr acid oxalate hydrate that was solved by conventional Fourier synthesis [12, 13]. How to prepare a Simulating Annealing PCR file? !Nat Dis Ang Pr1 Pr2 Pr3 Jbt Irf Isy Str Furth 14 0 0 0.0 0.0 1.0 0 4 0 0 0 ! P 21/n <--Space group symbol !Atom Typ X Y Z Biso Sr SR 0.87930 0.41798 0.73560 1.55853 0.00 0.00 0.00 0.00 C1 C 0.63200 0.23920 0.57800 1.48511 0.00 0.00 0.00 0.00 C2 C 0.58300 0.51640 0.09300 1.48511 0.00 0.00 0.00 0.00 C3 C 0.64800 0.27780 0.34700 1.48511 0.00 0.00 0.00 0.00 O1 O 0.62200 0.22870 0.15700 1.24468 0.00 0.00 0.00 0.00 . . . . . . . . . . O7 O 0.69400 0.34880 0.32900 1.24468 0.00 0.00 0.00 0.00 H1 D 0.17449 0.26512 0.31765 2.00000 11.00 21.00 31.00 0.00 H2 D 0.41474 0.05317 0.39374 2.00000 41.00 51.00 61.00 0.00 H3 D 0.14942 0.30371 0.01023 2.00000 71.00 81.00 91.00 0.00 Ranges and steps ATZ Nvk Npr More 966.691 0 5 0 Occ 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 1.00000 0.00 In Fin N_t Spc /Codes 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 Periodic boundary conditions ! Limits for selected parameters (+ steps & BoundCond for SA): 1 0.0000 1.0000 0.0152 1 X_H1 2 0.0000 1.0000 0.0073 1 Y_H1 3 0.0000 1.0000 0.0264 1 Z_H1 4 0.0000 1.0000 0.0279 1 X_H2 5 0.0000 1.0000 0.0080 1 Y_H2 6 0.0000 1.0000 0.0323 1 Z_H2 7 0.0000 1.0000 0.0334 1 X_H3 8 0.0000 1.0000 0.0087 1 Y_H3 9 0.0000 1.0000 0.0346 1 Z_H3 ! T_ini Anneal Accept NumTemps NumThCyc InitConf 5.000 0.900 0.020 30 0 0 ! NCyclM Nsolu Num_Ref Nscalef NAlgor 80 1 106 1 0 Random initial configuration Corana algorithm Number of reflections Initial step = range to consider Automatic treatment of the scale factor Figure 4: Example of two different parts of a PCR file adapted to locate three hydrogen positions in the asymmetric unit in Sr acid oxalate hydrate. The non hydrogen atoms structure was solved ab initio from X-ray powder diffraction using direct methods [13], but the calculated neutron powder diffraction pattern without hydrogen atoms was very poor (see Fig. 3). A profile matching refinement of the neutron diffraction pattern, putting the option to generate a file containing cluster of integrated intensities, provided the input file (extension “.int”) necessary to run a simulated annealing work. For searching the hydrogen atoms, it is not necessary to use a large number of reflections. Only the reflections up to 47(°) in 2θ are sufficient to find the hydrogen positions. The PCR file are prepared by putting all known atoms in their fixed positions (according to the results obtained by X-ray diffraction) and three additional hydrogen atoms (according to chemical analysis) in arbitrary positions. The limits for the free parameters (positions of hydrogen atoms) are put in the appropriate place (see Figure 4), and the file is ready for run. The final result after running the simulated annealing job followed by Rietveld refinement of the proposed solution is displayed in Figure 5. The files corresponding to this case, and a PDF file with more details about the problem, can be obtained from the Internet [14] The chemical formula is Sr(HC2O4). ½ (C2O4) . H2O Where are the hydrogen atoms? Two types of oxalate groups Chains along c C2O4 ⋅⋅⋅ H⋅⋅⋅C2O4 ⋅⋅⋅ H⋅⋅⋅ And water molecules Isolated C2O4 Figure 6: Results obtained from simulated annealing and further Rietveld refinement of the crystal structure of Sr acid oxalate hydrate. The user should experiment for their own cases in order to select good control parameters. For instance the appropriate starting temperature depends strongly on the number of free parameters, the step sizes and the constraints. For solving a structure (crystallographic or magnetic) from the scratch it is important to select a temperature for which the percentage of accepted configurations is high (or the order of 80%) in order to let the procedure explore a large set of configurations. The number of Monte Carlo cycles per temperature should be a factor (from about 15 to 50) the number of free parameters. There is no guarantee that the optimum solution will be found, however if the final R-factors are lower than say 25% the structure provided by the program may contain some recognizable fragment that serves to start normal Rietveld refinement cycles together with Fourier synthesis. For using the GFourier program [12], distributed in the same site as FullProf, it is important to use the value Jfou=4 in the PCR-file, to output an appropriate set of structure factors and an input file (extension inp) for GFourier. Acknowledgements It is a pleasure to thank here all my colleagues that have contributed with discussions, writing pieces of code, or are presently contributing with companion programs to FullProf: Thierry Roisnel, Javier González-Platas, Aziz Daoud-Aladine, Carlos Frontera, Laurent Chapon and Vincent Rodriguez. I would like to thank many users for giving me a feedback without which the program could not be improved. References: [1] H.M. Rietveld, Acta Cryst. 22, 151 (1967); H.M. Rietveld, J. Applied Cryst. 2, 65 (1969). [2] D.B. Wiles & R.A. Young, J. Applied Cryst. 14, 149 (1981); D.B. Wiles & R.A. Young, J. Applied Cryst. 15, 430 (1982) [3] J. Rodríguez-Carvajal and J. González-Platas: “Crystallographic Fortran 90 Modules Library (CrysFML): a simple toolbox for crystallographic computing programs” Commission on Crystallographic Computing of IUCr, Newsletter 1, January 2003. Available at http://www.iucr.org/iucr-top/comm/ccom/newsletters/ . [4] The most recent versions, for different platforms, of the program FullProf can be found at the ftp-area: ftp://ftp.cea.fr/pub/llb/divers/fullprof.2k. Different mirrors of this site can be found at http://www.ccp14.ac.uk. [5] L.B. McCusker et al., J. Appl. Cryst. 32, 36 (1999). [6] J. Rodríguez-Carvajal and T. Roisnel, “FullProf.98 and WinPLOTR New Windows Applications for Diffraction”. Commission on Powder Diffraction, IUCr, Newsletter 20, MayAugust (1998). J. Rodríguez-Carvajal, “Recent developments of the program FullProf”. Commission on Powder Diffraction, IUCr, Newsletter 26, December (2001). J. González-Platas and J. Rodríguez-Carvajal, “EdPCR a GUI for FullProf” (unpublished) [7] R.J. Hill, J.Appl.Cryst 25, 589 (1992). [8] J. Rodríguez-Carvajal, Physica B 192, 55 (1993). [9] S. Kirkpatrick, C.D. Gellat, Jr., M.P. Vecchi. Science 220, Nr. 4598, 671 (1983) [10] J. Rodríguez-Carvajal, Materials Science Forum 378-381, 268 (2001); see also Proceedings of the XVIII Conference on Applied Crystallography, Ed. Henryk Morawiec and Danuta Stróz, World Scientific, London 2001, pp 30-36. [11] A. Corana, M. Marchesi, C. Martini, S. Ridella, ACM Trans. Math. Softw. 13, 262 (1987) [12] J. González-Platas and J. Rodríguez-Carvajal, “GFourier: a Windows/Linux program to calculate and display Fourier maps ”. Program available within the FullProf Suite. [13] G. Vanhoyland et al. J. Solid State Chem. 157, 283 (2001). [14] The file sr_oxalate.zip contains the data and PCR files to practice with simulated anneling. The file ECM-21-Workshop.zip contains a PDF file corresponding to a presentation on several aspects of FullProf includint a tutorial for the oxalate case. Both files can be found at ftp://ftp.cea.fr/pub/llb/divers/Rietveld-exercises .