Beruflich Dokumente
Kultur Dokumente
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/267375610
CITATION
READS
3,928
1 author:
Juan Rodriguez-Carvajal
Institut Laue-Langevin
482 PUBLICATIONS 14,531 CITATIONS
SEE PROFILE
yc ,i = S I ,h (Ti T ,h ) + bi
(1)
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
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
2 = wi { yi yc ,i ()}
(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:
P =1
p =1
j =1
i =1
(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
= 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)
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.
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.
closer to the users 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.
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).
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.
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
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
CPU Time:
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
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].
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
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]
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 Gonzlez-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. Rodrguez-Carvajal and J. Gonzlez-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. Rodrguez-Carvajal and T. Roisnel, FullProf.98 and WinPLOTR New Windows
Applications for Diffraction. Commission on Powder Diffraction, IUCr, Newsletter 20, MayAugust (1998). J. Rodrguez-Carvajal, Recent developments of the program FullProf.
Commission on Powder Diffraction, IUCr, Newsletter 26, December (2001).
J. Gonzlez-Platas and J. Rodrguez-Carvajal, EdPCR a GUI for FullProf (unpublished)
[7] R.J. Hill, J.Appl.Cryst 25, 589 (1992).
[8] J. Rodrguez-Carvajal, Physica B 192, 55 (1993).
[9] S. Kirkpatrick, C.D. Gellat, Jr., M.P. Vecchi. Science 220, Nr. 4598, 671 (1983)
[10] J. Rodrguez-Carvajal, Materials Science Forum 378-381, 268 (2001); see also
Proceedings of the XVIII Conference on Applied Crystallography, Ed. Henryk Morawiec and
Danuta Strz, 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. Gonzlez-Platas and J. Rodrguez-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 .