Skip to main content

Maintenance made-with-python GIT Python 3.10

This repository contains the Dyna development files.

"Dynamic x-ray reflectivity off- or on-resonant regime for isotropic, magnetic and anisotropic (multi)layer simulations and refinements Program"

About The Project

Dyna is a simulation program for reflectivity and transmittance of x-rays and optics, aimed at determining structural, magnetic and electronic stackings in ultrathin multilayers.

Among so many programs in the field, Dyna has several specificities : it includes anomalous, magnetic and anisotropic components in the index of refraction; it simulates reflectivities either versus angle, or versus x-ray energy, with arbitrary incident and out-going polarizations; it simulates Kerr and Faraday spectra, and transmittance through thin layers.

All the simulations can be simultaneously fitted against one model.

The program integrates a toolbox to create charge and magnetic factors from tables.

Dyna was also designed for pedagogical aims, making easy to slide parameters for on-the-fly effects.

Dyna is an on-going free and open-source project, under Python + Qt, or Matlab environments. Dyna can also be freely downloaded, and support is offered to users upon reasonable request.

Copyright Institut Neel, CNRS, Grenoble, France

Project Collaborators:

Questions to:

Stéphane Grenier, stephane.grenier@neel.cnrs.fr

Installation

pip install DynaRef

DynaRef is the name of the package available from Pypi, the DynaRef package contains Dyna. Just launch with:

% dyna

Development install

git clone https://gitlab.com/dynadevgroup/Dyna
cd Dyna
pip install -e .
dyna

Python API

Dyna calculations can run without starting the Qt interface:

from dyna import Experiment, Formalism, load_builtin_sample, run_reflectivity

experiment = Experiment()
experiment.Formalism = Formalism.STEPANOV_ANGLE
experiment.Angle = [0.1, 5.0, 0.01, 0.0]
experiment.Energy[0] = 700.0

result = run_reflectivity(load_builtin_sample("w-si"), experiment)
print(result.x, result.intensity)

For reproducible batch calculations, use a JSON or YAML configuration such as examples/workflows/stepanov-angle.json or examples/workflows/stepanov-angle.yaml:

dyna-sim examples/workflows/stepanov-angle.json --output reflectivity.csv
dyna-sim examples/workflows/stepanov-angle.yaml --output reflectivity.csv
dyna-sim examples/workflows/stepanov-angle.json --output reflectivity.npz

The same file can be used directly from Python:

from dyna import load_config

result = load_config("examples/workflows/stepanov-angle.json").run()
result.save("reflectivity.csv")

Headless fitting is also available from JSON or YAML:

dyna-sim fit examples/workflows/fit-angle.json --summary fit-summary.json --output fitted.csv
dyna-sim fit examples/workflows/fit-angle.yaml --summary fit-summary.json --output fitted.csv

More ready-to-adapt examples are available in examples/README.md.

The graphical interface can also save and load Dyna projects as YAML files. This is the recommended project format for editable samples and experimental parameters; legacy project files can still be loaded. The GUI also provides sample-only YAML import/export actions for reusing the same layer stack across several projects.

Dyna also includes a small built-in YAML sample library:

from dyna import list_samples, load_builtin_sample

print(list_samples())
sample = load_builtin_sample("w-si")

List or export those samples from the command line with dyna-sim samples. The versioned YAML project and sample schema is documented in docs/yaml-format.rst.

Features

  • magnetic-sensitive susceptibility, arbitrary magnetic moment direction described by Euler angles, with the limitation of neglictible spin-orbit coupling in the valence states
  • anisotropic susceptibility, in the limitation of an uniaxial symmetry along the depth of the film, for the simulation of oriented molecules or orbitally ordered films (not in python code yet)
  • structural and magnetic sensitive transmittance.
  • Angular/Q scans
  • Energy spectra at fix angle or fix Q
  • Polarization Analysis, in and out
  • Refinement in user-defined interval, with limits on parameters, and constrains between parameters
  • Multifit : one system is refined by simultaneous simulations of various data (angle and energy scans, of any polarization, energy or angle configurations).
  • Calculates Scattering Factors from Tables
  • Calculates Kerr MO rotation and ellipticities, providing that the angles are small, validity to be checked case by case
  • Scriptable

Testing

Integration tests are to be found in the tests folder. Testing is done with pytest, it needs packages listed in tests/requirements_tests.txt. Mainly : pytest, pytest-qt and pytest-env. To launch all integration tests first activate the Dyna's python environement and then in the terminal do:

pytest tests/

These tests mimic common user actions on the interface in order to check a basic minimum viability. As not all functionality is available, some tests have been written but are set to be skipped.

Documentations:

https://pydyna.readthedocs.io

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dynaref-6.6.0.tar.gz (24.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dynaref-6.6.0-py3-none-any.whl (24.4 MB view details)

Uploaded Python 3

File details

Details for the file dynaref-6.6.0.tar.gz.

File metadata

  • Download URL: dynaref-6.6.0.tar.gz
  • Upload date:
  • Size: 24.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for dynaref-6.6.0.tar.gz
Algorithm Hash digest
SHA256 c3041ce57d7210b910d28d4607cbf7174bd7532e57f66094d33863894e2ecfde
MD5 630d2f917f5ef1a616d9ff216f0d2ae1
BLAKE2b-256 872863fbf70e20cbfb99e052e4ed3874545c2497900e04f57762fd8d5c9b1451

See more details on using hashes here.

File details

Details for the file dynaref-6.6.0-py3-none-any.whl.

File metadata

  • Download URL: dynaref-6.6.0-py3-none-any.whl
  • Upload date:
  • Size: 24.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for dynaref-6.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 03ae37da4babb27be5c4eecf9524b3f81f0453ea58a7958229dbc100d999867d
MD5 538d8974c5615857ea866f1912157db5
BLAKE2b-256 5402b85156dc0694c2b78bd26dcc38f307ed8731ee956552209811db7d2227cf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page