Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

MaXrd: Mathematica X-ray diffraction package

A comprehensive Mathematica package for crystallographic computations, MaXrd, has been developed. It comprises space group representations based on International Tables for Crystallography, volume A together with scattering factors from XOP and cross sections from xraylib. Featured functionalities include calculation of structure factors, linear absorption coefficients and crystallographic transformations. The crystal data used by MaXrd is normally generated from external cif files.

The package comes with a dynamic documentation seamlessly integrated with the Mathematica system, including code, examples, details and options. From the onset, minimal Mathematica experience is required to make use of the package. It may be a helpful supplement in research and teaching where crystallography and X-ray diffraction are essential. Although Mathematica is a proprietary software, all the code of this package is open source. It may easily be extended to cover user-specific applications.

The article Using Mathematica as a platform for crystallographic computing was published in the Journal of Applied Crystallography in February 2019 (Ramsnes, S., Larsen, H. B. & Thorkildsen, G. (2019). J. Appl. Cryst. 52, 214–218).


An overview of the available functions can be found in the wiki. The main documentation is accessible in Mathematica once the package is installed. Some of the highlights and newest features are listed below:

Import crystal data

Core crystallographic information can be be read from cif files using ImportCrystalData. Data will persist in the local $UserBaseDirectory, readily accessible with $CrystalData. The simple but convenient function CrystalPlot can visualise the structure.

Symmetry generation

Symmetry-related functions can be used for basic operations on reflections and positions, and also to grow the asymmetric unit into an arbitrary large structure. Essentials of the International Tables, vol. A are stored in $SpaceGroups. There is also UnitCellTransformation for changing between equivalent cell descriptions.

Structure customisation

Written with inclusion compounds in mind, EmbedStructure is ideal for merging guest entities with a host structure at random, sequential or conditional positions. Rotations and/or translations can be executed prior to placement with the same freedom. The user can also specify a displacement field to shift everything by a relative amount with DistortStructure.

Synthesis and simulation

Structural pieces can be sewn together automatically with SynthesiseStructure, which is particularly useful when working with multiple domains. When the model is complete, SimulateDiffractionPattern can be applied to render images through DISCUS or DIFFUSE.

Getting started


Clone, fork or download the repository if you want to develop on the package.

If you want to use the package, download the latest (or desired) release (MaXrd_<version>.zip).

The latest version of MaXrd is 2.5.0, which is compatible with Mathematica version 11.3 and above. It was built using the Wolfram Workbench extension in Eclipse with Mathematica 12.1.1.


In the file menu in Mathematica, select File -> Install.... In the pop-up window select Application as the type of item to install and From File ... as the source. Select the downloaded zip file and click on OK. Wait for the extraction of files to be completed and restart Mathematica.

Using MaXrd

Load the package with:

<< MaXrd`

If you want MaXrd to launch automatically on startup, first open the Wolfram Language Documentation Center. This can be done from the file menu: Help -> Wolfram Documentation. Scroll to the bottom and click on Add-ons and Packages. Click on the disclosure triangle next to MaXrd to open the cell and then the same for Manage. Make sure the option Startup is selected.

To access the package documentation, open the Wolfram Documentation in Mathematica after installing it and search for «MaXrd» or any related content.


Any comments or feedback are welcome. E-mail or submit an issue in the repository.


Database and utilities related to crystallography and X-ray scattering





No packages published