- If you want the program to automatically correct special positions
(highly recommended for inorganic structures
), you should select 'Yes' for the 'Use Dynamical Occupancy Correction
' option (that's the default, anyway). Thus an atom on a two-fold axis will
only be seen as a single atom, and not two at the same position.
For organic structures you should not select this option.
- Now would be a good idea to save everything (top window menu File->Save,
just in case ?)
- Second Step: create a PowderPattern Object
- From the top menu 'Objects', create a new PowderPattern Object
.
- Click on the 'Powder Diffraction' tab. There you can see you new
PowderPattern Object and change its name after in the 'PowderPattern' Field.
- Import your experimental Pattern, from your PowderPattern
'Object' menu ->Import FullProf Pattern (for example-other formats are
supported). (Alternatively, you can just Simulate a Powder Spectrum
(if you have no data), using the PowderPattern's Object->Simulate menu.
This will create a powder pattern with constant intensity equal to 1)
- Change the wavelength and then the radiation
type (X-Ray, neutron) for your experiment.
- Add a background component for your experiment. To do this
you first need to create a text file with two columns, 2Theta (in degrees),
and Ibackground, eg:
10 5367.3
15 128.45
90 137.90
Add as many points as necessary, with increasing 2theta values (so
far only linear interpolation is available). The format (spaces etc) is
free, as long as you alternate 2theta/Intensity values. Once this file is
created, in the 'Components' menu -> Add Interpolated Background. Then
in the 'Object' menu of the new PowderPatternBackground object, use 'Import'
and choose your 2theta/Intensity file. - Finaly add a Crystalline component
to your Powder Pattern: in the PowderPattern 'Components' menu -> Add
Crystalline Phase. You will be prompted to choose the crystal structure.
You can now add several crystal
phases.
- You can now display your calculated and observed patterns
: use the 'Pattern'-> Show graph. It can take some time to generate all
profiles the first time. In the Pattern menu you can fit the scale factor
to minimise R or Rw. You can use a right button-click to update the graph
each time something as changed (crystal structure, profile parameters, etc...).
You can resize the window (like all others), and you can zoom by dragging
with the mouse left-button (double-click to unzoom).
- You can change the profile parameters and profile type for your Crystalline
phase with the corresponding fields, and the 2theta zero/transparency/displacement
parameters (right-click update on the powder pattern graph after each change
to check the correct values).
- Now would be a good idea to save everything, just in case ?
- Third Step: create a GlobalOptimization
- From the top menu 'Objects', create a new Monte-Carlo Object
.
- Click on the 'Global Optimization' tab. You have your new object,
which you can name (this time it's not useful)
- You can choose the algorithm, the recommended choice being
Parallel Tempering: for simple structures it
can be slower than Simulated Annealing but otherwise it can get the optimization
out of false mimima much more easily than Simulated Annealing, since you have
'high temperatures at all times'.
- You can choose the Temperature schedule:
the recommended choice is now 'smart', and the temperature values will be
dynamically adjusted during the refinement, between the min and the max values
entered (it is recommended not to change the default values).
- You can choose the Displacement Amplitude (or mutation) schedule:
this affects how much the parameters can vary for each random move.
It is now recommended to choose an exponential decrease of the mutation
amplitude, from 8 to .125. (you must not choose smart in any way if you already
have chosen smart for the temerature regime-it will make Fox crash).
- Then you can change the number of trials to do. Very simple
structures (PbSO4) can be solved in 20000 trials, but for many independent
atoms you can use million of trials.
- Before launching the global optimization, you must first tell
the algorithm which Objects are to be optimized: in this case use the
'Optimize' menu -> 'Add object to optimize', and add both your Crystal
and your powder pattern object. The two objects should appear at the bottom.
- Then you must choose which cost functions (ie strutural model
criterion) you are going to use. Use the 'Optimize'-> 'Add Cost Function'
menu and add (for example), the Rw for your powder pattern. You can also choose
the R-factor. (The antibump cost function cannot be used unless you
add antibump distances, which can be done in the Crystal menu 'Parameters->Add
AntiBump distance'). If you add several cost functions, the weighted
sum of the cost functions will be used as a criterion.
NEW: you can now choose integrated R and Rw factors, so that even if the
profile parameters are not very good, the refinement should work well by comparing
the 'integrated' intensities other each peak. (This are not extracted
intensities, the refinement is still made on the full pattern).
- Before Launching the optimization, check for all objects (crystal
and powder pattern) which parameters are not fixed (box unchecked).
With this version of the program you should only optimize atomic positions
(and populations if necessary-but this is delicate-do it only when you have
approximate values for atoms positions). You must avoid refining lattice
or profile parameters since this is going to very slow (in a global optimization,
you should already now them sufficiently beforehand), and the 'global' nature
of the optimization will lead to delirious values and then to a crash of the
program (negative profile width, etc..) unless you give small limits to these
parameters.
- Then You can launch the optimization : 'Optimize'-> 'Run
Optimization'. If you have windows with the 3D Crystal Structure and the Powder
Pattern graph, these should be automatically modified for each new 'best
structure' found by the program. All structure parameters are updated 'live'
during the optimization as well. You can Stop the optimization via
the 'Optimize' menu.
- Once you have a reasonable structural model, you can copy the atomic
positions and use them in a least-squares refinement program (gsas, fullprof,
...).
- You can save the atomic positions using the Crystal's menu 'Object->Save
(Text)'. This will give you the atom positions with the corresponding Biso,
as well as the occupancies and dynamical correction of the occupancy (if
it is <1, it corresponds to an atom on a special position, or different
equivalent atoms merged during the optimization). The table of minimal distances
can be used to determine which atoms are overlapping, if any.
- Further notes
- You can edit the saved files, which are written in
XML format. There you can (among other things) change the limits for
all parameters (denoted with a <Par> tag). You can set low and high
limits. This is automatically done when you create Polyhedron. If you have
already used HTML, you should easily be able to read the file format, which
includes every data to describe all objects... You can also change the connectivity
of all ZScatterer, etc...
- You can combine several Powder patterns corresponding to the same
structure, as in the example file example/pbso4-joint.xml.
- every time you want to load a save file, you must re-launch the program
beforehand (you are not supposed to have objects (crystal,...) with the
same name).
This program is in still being developped. If you want to keep up with new
releases, you can subscribe to the ObjCryst-Fox
mailing list which will give only announcements.
If you want to see new features in this program,
you can drop me an email
or, since this is an open-source project, you can contribute to it. Further
developments should include : preferred orientation.. and other Cost Functions.