Welcome to udkm1Dsim#

Documentation Status CI pypi codecov

The udkm1Dsim toolbox is a collection of Python classes and routines to simulate the thermal, structural, and magnetic dynamics after laser excitation as well as the according X-ray scattering response in one-dimensional sample structures after ultrafast excitation.

The toolbox provides the capabilities to define arbitrary layered structures on the atomic level including a rich database of element-specific physical properties. The excitation of ultrafast dynamics is represented by an N-temperature-model which is commonly applied for ultrafast optical excitations. Structural dynamics due to thermal stresses are calculated by a linear-chain model of masses and springs. The implementation of magnetic dynamics can be easily accomplished by the user for the individual problem.

The resulting X-ray diffraction response is computed by kinematical or dynamical X-ray theory which can also include magnetic scattering.

The udkm1Dsim toolbox is highly modular and allows to introduce user-defined results at any step in the simulation procedure.

The udkm1Dsim toolbox was initially developed for MATLAB® in the Ultrafast Dynamics in Condensed Matter group of Prof. Matias Bargheer at the University of Potsdam, Germany. The MATLAB® source code is still available at github.com/dschick/udkm1DsimML.

The current toolbox, written in Python, is maintained by Daniel Schick at the Max-Born-Institute, Berlin, Germany.


The documentation can be found at udkm1Dsim.readthedocs.io.


Please cite the current preprint if you use the toolbox in your own work:

D. Schick, udkm1Dsim - A Python toolbox for simulating 1D ultrafast dynamics in condensed matter, Comput. Phys. Commun. 266, 108031 (2021) (preprint).

You can also cite the original publication if appropriate:

D. Schick, A. Bojahr, M. Herzog, R. Shayduk, C. von Korff Schmising & M. Bargheer, udkm1Dsim - A Simulation Toolkit for 1D Ultrafast Dynamics in Condensed Matter, Comput. Phys. Commun. 185, 651 (2014) (preprint).


You can either install directly from pypi.org using the command

pip install udkm1Dsim

or if you want to work on the latest develop release you can clone udkm1Dsim from the main git repository:

git clone https://github.com/dschick/udkm1Dsim.git udkm1Dsim

To work in editable mode (source is only linked but not copied to the python site-packages), just do:

pip install -e ./udkm1Dsim

Or to do a normal install with

pip install ./udkm1Dsim

Optionally, you can also let pip install directly from the repository:

pip install git+https://github.com/dschick/udkm1Dsim.git

You can have the following optional installation to enable parallel computations, unit tests, as well as building the documentation:

pip install udkm1Dsim[parallel]
pip install udkm1Dsim[testing]
pip install udkm1Dsim[documentation]

Contribute & Support#

If you are having issues please let us know via the issue tracker.

You can also ask questions, share ideas, or engage with community members via the discussions.

You can contribute to the project via pull-requests following the GitHub flow concept.


The project is licensed under the MIT license.

Indices and tables#