ROD
An 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.