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#
Explore a growing collection of user-inspired Jupyter notebook examples.
Discover scientific publications that use the toolbox in real-world research.
Ask questions, exchange ideas, and discuss new features with the community.
Found a bug or have a feature request? We’d love to hear from you.