RODAn Introduction. Written
by Edvin Lundgren in 1997 at the ESRF
·1
Rod, a program to extract structural properties from integrated and corrected surface diffracted intensities or structure factors.
Rod starts by typing ‘rod’ at the prompt.
The first thing you will see is ROD>, and the program waits for input.
Typing ‘help’ (help may be typed at any sublevel of the program) will show you the following commands:
*******************MAIN MENU*******************
Read : Read data/model files
List : List data/model
RESet : Reset all parameters
Calculate : Calculate structure factors
Plot : Goto plotting menu
Set : Set parameters
Fit : Fit experimental structure factors
Keating : Goto Keating menu
Macro : Run macro file
: : Execute an operating system command
Print : Print last plot
Help : Display menu
Quit : Quit program
Moving to a new sublevel or executing a command is done by typing the full name of the command or by typing the first letter of the command as long as the first letter is different for the different commands (compare for example Read and RESet).
·1.1
Read
With this command you can read your data/model files. When typing ‘read’ the program will ask you ‘File type:’ and you have to specify the file type you would like to read into the program (at this stage it is possible to type ‘help’ and a menu of the possible file-types are shown).
*********INPUT FILE TYPES***********
Data : Structure factor data
Surface : Coordinates of surface atoms
Bulk : Coordinates of bulk atoms
Fit : File with fit model of surface atoms
Parameters : File with fit parameters (macro)
Help : Display menu
Return : Return to main menu
The program separates the different data/model files by the extension of the file, therefore you must type this first. You may choose 5 different extensions: .dat, . fit, .sur, .bul, and .par. Thus, .dat is your data file, .fit is the file which contains your fitting parameters, .sur describes the surface you have measured or would like to calculate diffracted intensities or structure factors from, .bul the bulk, and .par is a file in which you may read fitting parameters so that you do not have to type this into the program every time you start a new session. We will return to a more detailed description of the different files below.
After you have typed in the file extension, for instance ‘dat’ (the dot is not necessary), the program prompts you for the name of your file, ‘Give filename (.dat):’. If your file has the extension .dat, it is not necessary to write the extension at this stage, however if your file containing your data has another extension (for instance .wgt) you may read this file as a .dat file provided that you include the extension (in this case .wgt).
It is possible to type the above described commands and inputs on one single line, for instance you would like to read into the program your data which is contained in the file data.dat, you may write
‘r d data’
(d stands for dat), or if your file is called data.wgt
‘r d data.wgt’
The same procedure as described in the case of the .dat file is also used for the other types of files.
There are some restrictions concerning the order of the files to be read into the program. If you are going to perform a fitting, the .fit file should always be read before the .bul file. It is of course possible to only read the .bul file if a fit is not the goal of your session, for instance, maybe you only would like to calculate the bulk bragg reflections for a specific sample in order to know which reflections are allowed.
·1.1a
A description of the file-types used by Rod (.dat, . fit, . sur, .bul, .par).
The .dat file is the file containing your data, an example of such a file (a rod, out of plane) is shown below.
# 01 rod
0 1 0.150 1.19 0.08
0 1 0.350 1.06 0.07
0 1 0.550 1.03 0.07
0 1 0.650 1.02 0.07
0 1 0.850 1.19 0.08
0 1 1.050 2.28 0.16
0 1 1.250 1.42 0.10
0 1 1.450 1.81 0.12
0 1 1.650 2.53 0.17
0 1 1.710 2.84 0.19
0 1 2.330 2.69 0.18
0 1 2.450 1.95 0.13
0 1 2.650 1.29 0.09
0 1 2.850 0.98 0.07
0 1 3.050 0.84 0.06
0 1 3.250 0.75 0.05
0 1 3.450 0.72 0.05
0 1 3.650 0.74 0.05
0 1 3.850 0.75 0.05
0 1 4.050 2.33 0.16
0 1 4.250 0.85 0.06
0 1 4.450 1.16 0.08
The first column corresponds to h, the second k, the third l, the forth the integrated and corrected structure factors and the last one the error (sigma) from the averaging of different rods. The in-plane data (same l, changing h and k) can of course be read in the same way. The program expects you to have a header in your file, in this case ‘# 01 rod’.
The .fit file contains input to your fitting parameters, and variables which are coupled to your fitting parameters. This is the file which contains the information about your surface and which of course you have to create. An example is shown below.
# Pt 111
2.7740 2.7740 6.7960 90.000 90.000 120.000
Pt 0.00000 0.0 0 0.0 0 0.00000 0.0 0 0.0 0 1.00000 1.0 1 0.0 0 1 1 1 0
Pt 0.33333 0.0 0 0.0 0 0.66667 0.0 0 0.0 0 0.66667 1.0 2 0.0 0 1 2 1 0
Pt 0.66667 0.0 0 0.0 0 0.33333 0.0 0 0.0 0 0.33333 1.0 3 0.0 0 1 3 1 0
Pt 0.00000 0.0 0 0.0 0 0.00000 0.0 0 0.0 0 1.00000 1.0 1 0.0 0 1 1 2 1
Pt 0.66667 0.0 0 0.0 0 0.33333 0.0 0 0.0 0 0.66667 1.0 2 0.0 0 1 2 2 1
Pt 0.33333 0.0 0 0.0 0 0.66667 0.0 0 0.0 0 0.33333 1.0 3 0.0 0 1 3 2 1
The first line is a header. The second line
contains the unit-cell parameters a1, a2 ,a3, a23, a13, and
a12,
where a1, a2 are the inplane (x,y) unit vectors, a3 the out of plane unit
vector (z), a23, a13 the angle between a2 and a3
and a1 and a3, respectively, and a12 the
angle between a1 and a2.
In the third line the first column defines the atomic species from which you have measured diffracted intensities, in this case Pt.
The second column defines the x position (x1) of the Pt atoms in terms of the a1 lattice parameter. The third column is the multiplication factor of the x displacement of the x-position (in case you would like to fit the x-coordinate) in terms of the a1 lattice parameter (c1). The number in the forth column defines the serial number of the x-displacement (a1). The fifth the multiplication number of a second x-displacement (c2). The sixth the serial number of the second x-displacement (a2). The total value for an x-displacement Dx is thus given by:
Dx =
c1f1 + c2f2
where f1 and f2 are the obtained fitted values corresponding to the serial numbers a1 and a2, respectively. c1 and c2 are often given simply the value 1.0.
The seventh column represents the starting y-position, y1, the four following columns are equivalent to those for the x-position as described above and the displacement Dy from y1 is given in the same way as in the case for the Dx displacement.
The 12th column and the following four describe the z-position as defined above for the x-y-positions.
The 18th column defines the serial number for an in-plane Debye-Waller factor for the surface atoms.
The 19th the out-of-plane Debye-Waller for the surface atoms.
HINT: If no out-of-plane DW factor is included, the program assumes isotropic DW.
The 20th the serial number (b1) of the occupancy (or concentration) of a particular unit cell if there is a need to fit two different unit cells.
The 21st column is a serial number (b2) in order to connect two different occupancies so that the total number always becomes unity.
The .bul file describes your bulk, an example is shown below.
#Pt 111
2.7740 2.7740 6.7960 90.000 90.000 120.000
Pt 0.00000 0.00000 0.00000 2 3
Pt 0.33333 0.66667 -0.33333 2 3
Pt 0.66667 0.33333 -0.66667 2 3
The first line is a header. The second line describes the bulk unit cell in the same way as described in the case of the .fit file.
In the next lines the first column defines the atomic species from which you have measured diffracted intensities, in this case Pt. The notation is the same as in the .fit file concerning the (x, y, z; columns 2-4) positions of the atoms in the bulk, however no parameters connected (serial numbers) to the fitting of the x, y, and z-positions may be included.
Column 5 denotes the serial number for the in-plane Debey-Waller factor in the bulk. The serial number of the bulk in-plane Debey-Waller (in this case 2) must be different from the serial number of the in-plane Debey-Waller in the .fit file (in that case, as described above, 1). It is not possible to fit (see section 1.7) the bulk in-plane Debey-Waller factor.
Column 6 contains the serial number for the occupation (concentration) of a particular unit cell. As in the case of the bulk in-plane Debye-Waller, it is not possible to fit this parameter.
The .sur file contains the structure of your surface, described as in the bulk file. The .sur file is very useful in order to calculate structure factors (or intensities) originating from the surface for a particular surface unit cell. It is always advantageous to perform such calculations before an experiment for different surface models in order to have some ideas what to expect when performing the actual experiment. From the .sur file it is also possible to create a .fit file by using the “List” command (see section 1.2) in the main menu. An example of a .sur file is shown below:
#Pt111_st.fit, Pt111_st.bul,
2.7740 2.7740 6.7960 90.0 90.0 120.0
Pt 0.00000 0.00000 0.99903 1 0.70 1.67
Pt 0.33333 0.66667 0.66633 1 0.70 0.30
Pt 0.66667 0.33333 0.32848 1 0.70 0.10
Pt 0.00000 0.00000 0.99903 1 0.70 1.67
Pt 0.66667 0.33333 0.66633 1 0.70 0.30
Pt 0.33333 0.66667 0.32848 1 0.70 0.10
The first line is a header. The second line describes the bulk unit cell in the same way as described in the case of the .fit file and the .bul file.
In the following lines the first column defines the atomic species from which you have measured diffracted intensities, in this case Pt.
The notation is the same as in the .fit file and the .bul file concerning the (x, y, z; columns 2-4) positions of the atoms in the surface, however no parameters (serial numbers) connected to the fitting of the x, y, and z-positions may be included.
The 5th column is the surface fraction. (Definition?)
The 6th column is the in-plane Debye-Waller, the 7th is the out-of-plane Debye-Waller factor corresponding to the different layers. Note that the displacement in z-direction of the Pt atoms, the in-plane Debey-Waller, and the out-of-plane Debye-Waller, is taken into account according to the .par file (see below and section 1.7).
The .par file contains information on your fitting parameters corresponding to the serial numbers and other fitting parameters defined in the .fit file. An example is shown below:
!pt111_st, pt111_st.bul
!Goto set parameter menu
set par
scale 0.0435 0.0000 0.0000 NO
beta 0.0000 0.0000 0.0000 NO
surffrac 1.0000 0.0000 0.0000 NO
displace 1 -0.0010 0.0000 0.0000 NO
displace 2 -0.0003 0.0000 0.0000 NO
displace 3 -0.0049 0.0000 0.0000 NO
b1 1 0.7000 0.0000 0.0000 NO
b1 2 0.3000 0.0000 0.0000 NO
b2 1 1.6667 0.0000 0.0000 NO
b2 2 0.3000 0.0000 0.0000 NO
b2 3 0.1000 0.0000 0.0000 NO
occupancy 1 0.8700 0.0000 0.0000 NO
occupancy 2 0.1300 0.0000 0.0000 NO
return return
Thus when reading this file the macro which is described in the file is executed in the ‘set parameters’ sublevel in the program in order to restore previous obtained fitting parameters (see below section 1.6c and 1.7).
·1.2
List
Typing ‘List’ (or l) the program prompts you the following: ‘Item to be listed:’ Typing ‘help’ at this point gives you the following output on the screen:
*****************LIST ITEMS*****************
Bulk : Bulk contribution
Surface : Surface contribution
SUM : Interference sum of bulk and surface
All : Above three values
Data : Structure factor data
Smodel : Surface model
Bmodel : Bulk model
Fit : Fitting model for surface structure
Compare : Comparison between data and theory
Parameters : Values of fit parameters
Symmetry : Symmetry-equivalent reflections of data
Help : Display menu
Return : Return to main menu
Typing any of the above alternatives (except for help and return which are self-explanatory) will prompt you for a file name in case you would like to write your current data or model to a file, or by typing ‘t’ or just doing return you may see what data or model you are using at the moment.
·1.3
RESet
RESet resets all parameters, this means that your .dat, .fit, .sur, .bul and .par has been erased from the memory and must be read into rod again.
·1.4
Calculate
Typing ‘c’(alculate) will take you to the calculate menu (ROD.CALC>). Typing ‘help’ the following will appear:
******STRUCTUR FACTOR CALCULATION MENU*******
Rod : Calculate rod profile
Range : Calculate f 's for range of h and k
Qrange : Calculate f 's within q-max
Data : Calculate f 's for all data points
Distance : Calculate the distance between two atoms
Angle : Calculate the bond between three atoms
Leffective : Calculate effective l from slit width
ROUghness : Calculate roughness in atomic layers
Help : Display menu
Return : Return to main menu
‘Rod’ will calculate the structure factor variations along a rod (l) for a specified rod (specified h and k value). This can be done for either a surface model or a bulk model (or for both if both have been read). It should be noted that the input values of h and k must be modified according to the unit cell defined in the .sur, .fit and the .bul file.
‘Range’ can be used when evaluating in-plane data, that is when L has the same value.
‘Qrange’ ? Calculate structure factors in-plane with Q < Qmax (definition of Q and Qmax?).
‘Data’ will calculate the structure factors for the corresponding data points as for instance for an in-plane data set. Again it should be noted that rod calculates the structure factors (or intensities) according to the definitions of the unit-cell made in the .sur, .fit, and .bul file.
‘Distance’ will calculate the distance between two atoms which you define from your model.
‘Angle’ will calculate the angle of the ‘bond’ between three atoms.
‘Leffective’ may help you in order to calculate corrections to your measurements. This will be defined by your slits in front of the sample, since these will give you a contribution in L. In our case this is taken care of in peak.
‘ROUghness’
?
·1.5
Plot
Typing ‘plot’ will put you in the plot menu (ROD.PLOT>). Typing ‘help’ will show you your plotting options.
****************PLOT MENU***************************
Bulk : Bulk contribution (against l)
SURface : Surface contribution (against l)
SUM : Interference sum of bulk and surface
All : Above three curves (against l)
Data : Rod data (against l)
BOth : Data plus calculated interference sum
FTheory : Theoretical structure factors
FData : Experimental structure factors
FBoth : Theoretical and experimental f 's
MOriginal : Original structure model
MRefined : Refined structure model
MBoth : Original + refined structure model
MLarge : Several unit cells of refined model
DPatterson : Patterson function of experimental data
TPatterson : Patterson of theoretical structure f 's
DIfference : Electron density difference map
ELectron : Electron density map of model
EXp_dens : Electron density map of exp. f 's
ERrors : Set error bar plotting on/off
UNit : Set drawing of unit cell on/off
Help : Display menu
Return : Return to main menu
These plotting options are more ore less self-explanatory. However, the three first plotting options (‘bulk’, ‘SURface’, ‘SUM’) will put you in the plot menu PLOT> and prompt you for input, for example ‘plot’ in order to plot the data in a new frame. Typing ‘ help’ in the PLOT> plot menu will show you the set plot options (such as fonts, colours, etc.) for your plot. Here you may also save your plot parameters in the plotinit.mac file which automatically sets your plot parameters each time you start ROD.
An example for a series of commands in order to calculate and plot a specific rod could be:
ROD>c r 1 1 p sum p
which means “calculate rod 1 1 plot sum (of surface and bulk contribution) plot”. Another example would be if you have a data set and the corresponding calculated (or fitted) values would be
ROD>p err y bo
which means “plot error yes both (data and calculated values)”.
Returning to the ROD.PLOT> menu, FTheory, FData, and FBoth will plot the corresponding in-plane values according to settings done in the ROD.SET.PLOT> menu (size of the radius of the plot of the in-plane structure factors).
MOriginal will plot your original surface model from the .sur file (or .fit file) according to settings done in the ROD.SET.PLOT> menu (radius of in-plane structure factors corresponding to a certain atomic species), while MRefined will plot the refined model and MBoth will plot both of them and finally MLarge which will plot several unit cells. It should be noted that the plotting of the models will be done for all the layers defined in the .sur file or .fit file.
DPatterson and TPatterson, will plot the Patterson of the experimental structure factors and the theoretical structure factors.
DIfference, ELectron, and EXp_dens will plot an electron density difference map between the experimental and the calculated electron densities, an electron density map calculated from the model, and an electron density map obtained from experimental structure factors.
These five “maps” will be plotted according to settings done in the ROD.SET.PLOT> menu (typical settings in this menu would be
xmincon 0.1000
xmaxcon 1.0000
nxcon 101
ymincon 0.1000
ymaxcon 1.0000
nycon 101
minlevel -1.0000
maxlevel 1.0000
nlevel 20
in order to achieve decent plots of the different “maps”) which may be set for convenience in the rod_init.mac.
·1.6
Set
Typing ‘set’ will put you in the set menu (ROD.SET>). By typing ‘help’ the set menu will be shown:
*************SET MENU******************
Calculate : Parameters for rod calculations
Fit : Model par. for fitting surface structure
Parameters : Values of fit parameters
Domain : Parameters describing the domains
Plot : Plotting parameters
Symmetry : Space group symmetry of model
Help : Display menu
Return : Return to main menu
It should be pointed out that many of the parameters set in the sublevels of the ROD.SET> can be made to be set by either the macro rod_init.mac or the .par file.
·1.6a
By typing ‘Calculate’ you will enter the ‘set rod calculation parameters’ menu (ROD.SET.CALC>). By typing ‘help’, the following will appear.
*********SET ROD CALCULATION MENUE********
STructure : Use structure factors or intensities
LStart : Start value of l
LEnd : End value of l
Npoints : Number of points on rod
Atten : Attenuation factor of beam
Beta : Roughness parameter beta
LBragg : l-value of nearest Bragg peak
NLayers : Number of layers in bulk unit cell
Scale : Scale factor of theory
SFraction : Fraction of surface with 1st unit cell
S2fraction : Fraction of surface with 2nd unit cell
NSurf2 : Number of atoms in 2nd unit cell
ROughness : (Temporary) roughness mode calculation
List : List parameters
REturn : Return to main menu
‘STructure’ makes you choose between calculation of structure factors (yes) or intensities (no).
‘LStart’ lets you define the starting value of l for the calculated values
‘LEnd’ lets you define the end value of l.
‘Npoints’ defines the number of calculated points between ‘LStart’ and ‘LEnd’.
‘Atten’
? Definition?
‘Beta’ is the roughness parameter. Definition?
‘LBragg’
is self-explanatory. I don't really understand this!
‘Nlayers’
(Number of layers in bulk unit cell? What does this mean?).
‘Scale’ is the scale factor between theory and experimental values.
‘SFraction’
is usually 1.
‘S2fraction’
how do I introduce 2 surface unit cells?
‘NSurf2’
?
‘ROughness’ By typing ‘ROughness’ you will enter a new sub level ROD.SET.ROUGH> in which the following menu will appear if you type ‘help’:
**********SET ROUGHNESS MODE*********
Approx : Approximated beta model
EXAct :
Exact beta model (BULK ONLY!)
Poisson : Poisson model
(BULK ONLY!)
EXPonent : Exponential model (BULK ONLY!)
Gaussian : Gaussian model (BULK ONLY!)
Linear : Linear model (BULK ONLY!)
Cosine : Cosine model (BULK ONLY!)
Help : Display menu
Return : Return to last menu
The
model which we use is the ‘approximated beta’. How is this defined?
Returning to the ROD.SET.CALC> menu by typing ‘return’, the List and the REturn commands are self-explanatory. As mentioned above, many of the parameters in the ROD.SET.CALC> menu can, for convenience, be set by the rod_init.mac macro which is executed when the rod program is started.
·1.6b
Typing ‘fit’ in the ROD.SET> menu will take you to the ‘set surface model parameters’ menu (ROD.SET.FIT>). In this menu it is possible to create your fit model and to insert the coordinates of your atoms and the fitting parameters. However, this procedure is not often used, since the fit model can be created by creating and reading a .fit file as described above.
·1.6c
Typing ‘par’ in the ROD.SET> menu will take you to the ‘ set parameters’ menu (ROD.SET.PAR>). In this menu it is possible to set your fitting parameters corresponding to those defined in the .fit file. If you type help here the following will appear:
**********SET PARAMETERS************
Scale : Scale factor of theory
BEta : Roughness parameter beta
Surffrac : Reconstructed-surface fraction
Displac : Value of displacement parameter
B1 : Value of paral. Debey-Waller parameter
B2 : Value of perp. Debey_Waller parameter
Occupancy : Value of occupancy parameter
List : List parameters
Help : Display menu
Return : Return to main menu
When one of these commands is typed, you may select the serial number (if such exists, see section 1.1a about the .fit file), then type in the value of the parameter and also select a minimum and maximum limit of this parameter. Finally the program will ask you if these limits should be checked. In this menu it is thus possible to perform the settings of parameters in order to make a fit. However, it is more convenient to perform the setting of the fitting parameters and the actual fitting in the ‘set fitting parameters’ menu (see below).
·1.6d
Returning to the set menu (ROD.SET>) by ‘Return’ and typing ‘Domain’ will put you in the ‘set domain parameters’ menu (ROD.SET.DOMAIN>). The number of domains on your surface will affect the measured diffracted intensity and will therefore have to be taken into account when calculating structure factors. In rod the number of different domains is defined, and the rotation of the different domains with respect to the “unit domain (?)” is defined by rotation matrices. Typing ‘help’ will show the following:
*******SET DOMAIN PARAMETERS**********
Ndomains : Number of rotational surface domains
Matrix : Matrix elements of domain n
Fractional : Calculate fractional coordinates yes/no
Equal : All domains equal occupancy yes/no
Occupancy : Set occupancy parameters of domain n
List : List parameters
Help : Display menu
Return : Return to main menu
‘Ndomains’ lets you define the number of different rotational domains present on the surface.
‘Matrix’ will first prompt you and ask which rotational matrix you would like to change and will then let you change each matrix element in that particular matrix.
‘Fractional’: calculate fractional coordinates (yes/no). HINT: here yes means no and no means yes!
‘Equal’ defines whether or not all domains are equally occupied.
‘Occupancy’ lets you define (if ‘equal’ is set to ‘no’) the occupation number of each domain.
‘List’, ‘Help’ and ‘Return’ are self-explanatory.
·1.6e
Returning to the set menu (ROD.SET>) and type ‘plot’ will put you in the ‘set plot parameters’ menu (ROD.SET.PLOT>). In this menu it is possible to set plotting parameters, especially for plotting of in-plane and for Patterson plots as described above.
·1.6f
Returning to the set menu (ROD.SET>) and type ‘symmetry’ will put you in the ‘set space group symmetry’ menu (ROD.SET.SYMMETRY>). In this menu it is possible to set the space group symmetry which is most important in order to calculate the structure factors, the roughness or Patterson functions correctly!
As mentioned above, many of the parameters under the ROD.SET> and its sublevels (Calculate, Fit, Parameters, Domain, PLot, Symmetry) are set automatically by the rod_init.mac macro when rod is started. It is always a good idea to check this file before starting rod.
·1.7
Fit
Returning to the main menu ( ROD>) and typing ‘fit’ will take you to the ‘set fitting parameters’ menu (PAT.FIT.PAR>). In this menu, all settings for the fit between the model and the experimental data can be made. If you type help, the following will appear:
*******SET FITTING PARAMETERS*******
Value : Set parameter value
VValue : Set all parameters to same value
VRange : Set all parameters to same value
MInimum : Set parameter minimum
MINRange : Set parameter minimum range
MAximum : Set parameter maximum
MAXRange : Set parameter maximum range
RAnge : Range check on parameter yes/no
RRange : Set range check on parameter yes/no
Fix : Fix a parameter value
FAll : Fix all parameter value
FRange : Fix range of parameter value
Loose : Make parameter free
LAll : Make all parameters free
LRange : Make range of parameter free
LIst : List parameter values
Help : Display menu
Break : Quit fit menu
Run : Start fit
Most of these fitting options are self-explanatory. It should be noted that only those parameters defined with a serial number in the .fit file (see section 1.1a) may be fitted (and ‘Scale’, ‘Beta’ and ‘Surface fraction’). As mentioned above, the settings of the fitting parameters may also be done in the ‘set parameters’ menu (ROD.SET.PAR>), however, the actual fitting (‘run’) must be done from here. When typing ‘list’ in PAT.FIT.PAR>, the current settings of each value, limits and whether or not a value is fixed is shown.
By using the ‘List’ command in the main menu (ROD>), the current fitting parameters can be saved to for instance a new .par file as described above. Thus any of your current models or data can be written to an ASCII-file in order to use when creating a figure with another program of your choice.
·1.8
Keating?
Minimization energy calculation?
·1.9
Macro
With this command you may read a macro-file such as the rod_init.mac or plotinit.mac files. Of course you may use this facility for any macro provided that the commands in the macro corresponds to commands which rod will understand.
·2
In this section an example will be presented on how to use rod in order to gain structural information from measured structure factors. We will assume that the experimental data has been corrected by appropriate corrections with PEAK for the experimental setup. The system we will use as an example is a simple adsorption system, the measured structure is denoted Rh(111)-2x2-3CO, that is saturation adsorption of CO on a clean Rh(111) surface.
The first thing we would like to do is to create a surface file describing the surface. We assume that 1 CO molecule (or rather C and O, but with different z-distances from the surface) adsorb on a top site and 2 CO molecules adsorb in hollow sites. The resulting .sur would (there are more ways of describing this surface) look like the following (we may call it “1top2hollow.sur”):
#Rh (111)-(2x2)-3CO one on top, two hollow.
5.382 5.382 6.57 90.000 90.000 120.000
O 0.33333 0.66667 1.0700
C 0.33333 0.66667 0.8904
O 0.66667 0.33333 1.0700
C 0.66667 0.33333 0.8904
O 0.00000 0.00000 1.1203
C 0.00000 0.00000 0.9452
Rh 0.50000 0.50000 0.66667
Rh 0.50000 0.00000 0.66667
Rh 0.00000 0.50000 0.66667
Rh 0.00000 0.00000 0.66666
Rh 0.66667 0.83333 0.33333
Rh 0.66667 0.33333 0.33333
Rh 0.16667 0.83333 0.33333
Rh 0.16667 0.33333 0.33333
Rh 0.83333 0.66667 0.0000
Rh 0.83333 0.16667 0.0000
Rh 0.33333 0.66667 0.0000
Rh 0.33333 0.16667 0.0000
5.382/4 = 1.35 A is the radius of a Rh atom. This means that 5.382 5.382 defines the 2x2 cell in the x-y plane. 6.57/3=2.19 A is the layer spacing between 111 planes.
The .bul file must have the same unit cell parameters and must be a continuation of the surface file. In this case it may look like the following (we may call it “rh111a.bul”):
#Rh (111)-(2x2)-3CO bulk.
5.382 5.382 6.57 90.000 90.000 120.000
Rh 0.50000 0.50000 -0.3333 4
Rh 0.50000 0.00000 -0.3333 4
Rh 0.00000 0.50000 -0.3333 4
Rh 0.00000 0.00000 -0.3333 4
Rh 0.66667 0.83333 -0.6667 4
Rh 0.66667 0.33333 -0.6667 4
Rh 0.16667 0.83333 -0.6667 4
Rh 0.16667 0.33333 -0.6667 4
Rh 0.83333 0.66667 -1.0000 4
Rh 0.83333 0.16667 -1.0000 4
Rh 0.33333 0.66667 -1.0000 4
Rh 0.33333 0.16667 -1.0000 4
The last column contains the in-plane Debye-Waller serial number for the bulk and can be ignored at this point. Already at this moment we may start rod and calculate various things such as CTR:s, fractional order rods and in-plane structure factors. The construction of correct surface and a bulk files is one of the most tricky parts when using the ROD program.
Starting ROD by typing “rod” will initiate plotinit.mac and rod_init.mac. In this example they look as the following:
rod_init.mac:
!Go to set calculate menu
set calculate
structure YES
lstart 0.0100
lend 4.9000
npoints 100
atten 0.001000
beta 0.000000
lbragg 0.000000
nlayers 2
scale 0.594390
sfraction 1.000000
rough approx
return return
!Go to set symmetry menu
set symmetry p1 return return
!Go to set domain menu
set domain
ndomain 1
matrix 1 1.0000 0.0000 0.0000 1.0000
fractional NO
equal YES
return return
!Go to set fit menu
set fit fullmodel yes return return
!Go to set plot menu
set plot
size 0.0500
threshold 0.0000
atomrad 1 0.020
atomrad 2 0.050
atomrad 3 0.250
xmincon 0.1000
xmaxcon 1.0000
nxcon 101
ymincon 0.1000
ymaxcon 1.0000
nycon 101
minlevel -1.0000
maxlevel 1.0000
nlevel 20
return return
!Go to keating menu
keating
alpha 0.0000
beta 0.0000
radius 1 0.00000
radius 2 0.00000
radius 3 0.00000
return
plotinit.mac:
x auto
y auto
x linear
y linear
loadfonts nfonts 2
simplex 1
simgrma 2
fill
return
font 1
x title "X"
y title "Y"
title ""
curvestyle 0
linestyle 1
lineaxes 1
widthline 1
widthaxes 1
symbol 1
symsize 0.100
color
background black
axes white
curve white
text white
return
layout
width 22.0000 height 17.0000
xlength 18.0000 ylength 11.0000
axes 0 frame 2
grid 0 subgrid -1
rotate no
return
text
axessize 1.0000
numbersize 1.0000
titlesize 1.0000
textsize 1.0000
return
Thus we have set several things in the program so that we don't have to think about doing this everytime we start a new fitting session. The program is waiting for input:
ROD>
We will now read our models into the program:
r sur 1top2hollow (return)
r bul rh111a (return)
By typing
c r 1 0
we go to the ROD.CALC> calculation menu (c) and calculate rod 1 0 L (r 1 0) and we will stand at the main prompt ROD> again.
By typing
p sum p
we go to the ROD.PLOT> menu (p), choose to plot the sum of the surface and bulk contributions (sum), end up in the PLOT> menu and replot the data (p).
It should be noted that the 1 0 rod in the surface unit cell as defined in the .sur and the .bul files corresponds to the (0.5 0 L) rod in “normal” bulk unit cell dimensions. One can repeat this exercise for all rods.