Close This Window

Please download official ILL logos here

For using on the web or on a screen

For printing in high resolution

White version, for dark backgrounds

Download PNG

Download TIF

Download white PNG

Download JPG

Download EPS

Download white EPS logo

Course on Software Development for Crystallography

15 - 19 June 2009
Institut Laue - Langevin Grenoble, France

Back to ILL Homepage
English French Deutsch 

Past events

Course on Software Development for Crystallography

15 - 19 June 2009
Institut Laue - Langevin Grenoble, France



Juan Rodriguez-Carvajal        ILL (Grenoble)       +33(0)4 76 20 72 05     jrc(at) 

Lecturers (tentative):

Juan Rodriguez-Carvajal (ILL - Grenoble)

Jorge Navaza (IBS - Grenoble)

Javier González-Platas (La Laguna)

Fermín Otálora (LEC- Granada)

Nach oben


The development of crystallographic software has been one of the pillars of the success of Crystallography in the sense of a structural analysis technique. The availability of high quality software is needed for tackling new problems and to get the maximum information contained in experimental data.  This is a necessary condition to get a deeper insight into the real structure of materials.
In the present context the crystallographic community is using a set of computing programs written by authors close to get retired in the forthcoming few years. On the other hand there exists an important offer of proprietary and commercial software. This is an advantage for industrial world but it may bring problems in the academic world due to the fact that development are dictated by the market instead to be driven by the research needs. The development of publicly available software written by the scientists using crystallographic techniques is of great importance is this must be satisfied by the appropriate training of research scientists.

Nach oben


The pre-requisites necessary for pursuing the proposed course with some guaranty of efficacy are the following:

  • A solid knowledge of crystallography and diffraction techniques.
  • A good training on linear algebra, analytic geometry and differential calculus.
  • A good practice in the use of computers with operating systems: Windows, Linux or MacOS
  • Fortran 95/2003 language will be the basic high level programming language of the course. If the applicant has no experience with Fortran 95, a basic knowledge of at least one programming language (e.g. Fortran 77, C/C++, Basic, Java, Matlab, Python…) is a pre-requisite.

Nach oben


The aims of the course are:

  • Learn the fundamentals of the modern programming techniques: modular programming, object-oriented programming, etc. Development of small console programs and fundamentals of developing a graphic user interface (GUI).
  • Learn the use of existing crystallographic libraries: CCSL (Fortran 77), CrysFML (Fortran 95), cctbx (C++), etc. The examples and the emphasis in the course will be based on CrysFML. Learn the use of “scripting” languages for connecting CPU intensive applications.
  • Learn to program simple crystallographic calculations: reading files and format transformations, generation of reflections, structure factor calculations, etc.
  • Detailed study of a program for solving crystal structures using a combination of global and local optimization using the procedures existing in CrysFML

Nach oben


  • Introduction to Crystallographic Computing. The essential mathematics for crystallography.

  • Programming languages for developing numerical software.

                  High level versus low level languages. Modern Fortran versus C/C++.
                  Scripting languages: shell (Linux) / bat (Windows) files, Python ...

  • Introduction to modular programming with F: a short and clean subset of Fortran 95. Tuning G95 for accepting only F-syntax. The essentials of object orientation (OO): data structures, overload of procedures, functions and operators, encapsulation, data hiding, inheritance and polymorphism. How to express OO in Fortran 95?  Fortran 2003 for complete OO support.
  • Using the Web for getting numerical procedures useful for crystallography: Netlib, TOMS, etc.

  • Overview of the available public crystallographic libraries: CCSL (Fortran 77), CrysFML (Fortran 95), cctbx (C++)
  • Elementary crystallographic calculations.

                  Creation of data structures for crystallography: cell, atom and space group types.
                  Geometrical calculations: distances, bond angles, dihedral angles, etc.
                  Symmetry calculations
                  Generation of reflection lists for a given metrics and space group symmetry
                  Fourier transforms and Fourier maps

  • Introduction to CrysFML.

                  Basic mathematical modules
                  Chemical and scattering tables
                  String utilities
                  Symmetry modules
                  Cell and atom types
                  Reflections utilities: reflection types, systematic absences, generation of reflections
                  Reading CIF files and diffraction patterns
                  Profile functions
                  Structure factor calculations
                  Optimization techniques

  • Elementary console programs using CrysFML

                  Space group information
                  Checking possible space groups from the analysis of a list of experimental reflections
                  Structure factors calculations reading a CIF file with the crystal structure
                  Calculation of a powder diffraction pattern reading a CIF file with the crystal structure

  • Introduction to Graphic User Interface

                  Programming methods
                  Separating the compute intensive code from the interaction with the user
                  The use of commercial libraries for making GUIs: Winteracter, GINO, MathFOR, etc
                  Free software for creating GUIs: Tcl/Tk, Java

Nach oben

Application and Fees

If you are interested to take part to this course, please send an email entilted "yourname_applicationCSDC" to csdc(at) to explain your involvement in the field, plus a short CV, not omitting to specify your name, affiliation and status (deadline 15th May 2009).

In order to favor fruitful exchanges, the number of participants will be limited to 15. You will be informed if your application is selected  (or not) not latter than 20th of May 2009.

The fees (400€) will cover exclusively your participation in the course and the lunches. You should organize yourself for accommodation. Information related to bank transfer will be sent with the response to your application.

Nach oben

Bibliography, resources and complementary documentation

On line: search in the internet for crystallographic computing resources and for tutorials in computing languages (Fortran 90/95/2003)

International Union of Crystallography: Commission on Crystallographic Computing

Collaborative Computing Project #4: Protein Crystallography.

Books and articles

Computing methods in Crystallography
Pergamon Press Ltd., Headington Hill Hall, Oxford
J.S. Rollet (1965)

Crystallographic Computing (Series)
Oxford International Union of Crystallography Book Series
Oxford University Press, Inc.   New York, NY, USA

Methods and Applications in Crystallographic Computing
Sydney Hall & T. Ashida (Editors)
Oxford University Press, USA (December 13, 1984)

International Tables for Crystallography, Vol B (Reciprocal Space)
U. Shmueli (Editor)
Kluwer Academic Publishers (London, 1993)

Fundamentals of Crystallography.
Giacovazzo C., Monaco H.L., Artioli G., Viterbo D., Ferraris G., Gilli G. and others (2002).Oxford University Press.

Nach oben


The lectures will take place in the main building of ILL (ILL4). They will start on Monday 15th of June at 9:00 am and end on Friday 19th of June around 5:00pm. Details for comming to ILL can be found on


This initiative is supported by the

- Master of Crystallography and Crystallization (Menéndez Pelayo International University, UIMP, Spain)

- Diffraction Group of the Institut Laue-Langevin (ILL, Grenoble France).