Getting Started#

The udkm1Dsim toolbox provides a comprehensive framework for defining arbitrary layered structures at the atomic level, supported by a rich database of element-specific physical properties. Ultrafast excitation is described using an N-temperature model, a widely used approach for simulating energy transfer following ultrafast optical excitation. Structural dynamics driven by thermally induced stresses are calculated using a linear-chain model of coupled masses and springs, while magnetization dynamics can be simulated with Landau–Lifshitz-type models. The resulting optical and X-ray scattering response is computed using kinematical or dynamical scattering theory, including resonant magnetic X-ray scattering, enabling direct comparison between time-resolved simulations and a wide range of ultrafast scattering experiments.

Installation#

The udkm1Dsim toolbox is distributed as a Python package and can be installed together with all required dependencies using your preferred package manager.

> pip install udkm1Dsim
> conda install -c conda-forge udkm1dsim
> mamba install udkm1dsim

Design Philosophy#

The sketch illustrates the internal architecture of udkm1Dsim toolbox. All physical material properties are stored in a Structure object composed of Layer objects, , which in turn consist of Atom objetcs.

All simulation modules operate on the same Structure instance, ensuring consistency and reproducibility across different calculations.

The simulation framework is highly modular. Each module returns standard numpy arrays that can be inspected, modified, or used directly as input for subsequent simulations, allowing users to build customized workflows with ease.

Definitions#

Attention

The sketched experimental geometry defines the coordinate system and angle conventions, which are used consistently throughout udkm1Dsim.

The incoming and outgoing wavevectors \(\vec{k}_\text{in}\) and \(\vec{k}_\text{out}\) define the scattering plane which must be co-planar to the sample surface, hence only accessing scattering vectors \(\vec{q_z}\) along the surface normal. The pointing of the magnetization vector \(\vec{m}\) is defined by the two angles \(\phi\) and \(\gamma\) and allows any direction in the \(xyz\) coordinate system.

The sample structure is defined from top to bottom. Accordingly the distances with in the sample structure start at its surface and proceed along \(-z\) direction.

Community#

Examples

Explore a growing collection of user-inspired Jupyter notebook examples.

Examples
Publications

Discover scientific publications that use the toolbox in real-world research.

Publications
Discuss

Ask questions, exchange ideas, and discuss new features with the community.

https://github.com/dschick/udkm1Dsim/discussions
Issues

Found a bug or have a feature request? We’d love to hear from you.

https://github.com/dschick/udkm1Dsim/issues