Skip to main content

Anaconda-Server Badge Anaconda-Server Badge Binder License: GPL v3 License: CC BY-NC-SA 4.0 Anaconda-Server Badge

pyLabDD

Python Laboratory for Dislocation Dynamics

Dislocation Dynamics (DD) is a numerical method for studying the evolution of a population of discrete dislocations in an elastic medium under mechanical loads. The pyLabDD package introduces a simple version of Dislocation Dynamics in 2-dimensional space to study fundamental aspects of plastic deformation associated with the motion and mutual interaction of dislocations. Dislocations are considered as pure edge dislocations where the line direction is normal to the considered plane.

Installation

The preferred method to use pyLabDD is within Anaconda or Miniconda, into which it can be easily installed from conda-forge by

$ conda install conda-forge::pylabdd

or

$ conda install pylabdd -c conda-forge

Generally, it can be installed within any Python environment supporting the package installer for python pip from its latest PyPi image via pip

$ pip install pylabdd

Alternatively, the complete repository can be cloned and installed locally. It is recommended to create a conda environment before installation. This can be done by the following the command line instructions

$ git clone https://github.com/AHartmaier/pyLabDD.git ./pyLabDD
$ cd pyLabDD
$ conda env create -f environment.yml  
$ conda activate pylabdd
$ python -m pip install .

For this installation method, the correct implementation of the package can be tested with

$ pytest tests

After this, the package can be used within Python, e.g. be importing the entire package with

import pylabdd as dd

Speedup with Fortran subroutines

The subroutines to calculate the Peach-Koehler (PK) force on dislocations are rather time consuming. The Fortran implementation of these subroutines brings a considerable seepdup of the simulations compared with the pure Python version. After installation from conda-forge, these faster Fortran subroutines are automatically availble. Installations with pip or from source require a Fortran compiler, typically gfortran, within your active environment, i.e. you might need to install gfortran from conda or pip first.
The embedding of Fortran subroutines into Python is accomplished with the leightweight Fortran wrapper fmodpy. If the compliation of the Fortran subroutines should fail, you will receive a warning and the slower Python subroutines will be used as fallback option. In that case, please check if the gfortran compiler is available in your active environment. If problems still persist, please report them directly to the author of this packges or create an issue in the GitHub repo.

Jupyter notebooks

pyLabDD is conveniently used with Jupyter notebooks. Available notebooks with tutorials on the dislocation dynamics method and the Taylor hardening model are contained in the subfolder notebooks.

The Jupyter notebooks of the pyLabDD tutorials are also available on Binder Binder

Contributions

Contributions to the pyLabDD package are highly welcome, either in form of new notebooks with application examples or tutorials, or in form of new functionalities to the Python code. Furthermore, bug reports or any comments on possible improvements of the code or its documentation are greatly appreciated.

Dependencies

pyLabDD requires the following packages as imports:

  • NumPy for array handling
  • MatPlotLib for graphical output
  • fmodpy for embedding of faster Fortran subroutines for PK force calculation (optional)

Version history

  • v 1.0: Initial version (with F90 subroutine)
  • v 1.1: Pure Python version (with optional F90 subroutines)
  • v 1.2: Automatic compilation of F90 subroutines with fallback to Python version

License

The pyLabDD package comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under the conditions of the GNU General Public License (GPLv3)

The contents of examples, notebooks and documentation are published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0)

© 2025 Alexander Hartmaier, ICAMS/Ruhr University Bochum, Germany

Metadata

Release files for pylabdd 1.2.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pylabdd 1.2.13
File Size Uploaded
pylabdd-1.2.13.tar.gz 45.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pylabdd 1.2.13
File Interpreter ABI Platform
pylabdd-1.2.13-py3-none-any.whl Python 3 none any Details

Total release size: 132.3 kB

Release files / pylabdd-1.2.13.tar.gz

Download URL pylabdd-1.2.13.tar.gz
Size 45.9 kB
Tags Source
SHA-256 checksum
How to use checksums
47132f97f4fad4d309a8a12c436731b76b223d6f613f906b333562e2b99a7bb2
BLAKE2b-256 checksum
How to use checksums
801f9383bd59d656b4a003a828c7cd74b650ec1ebbb07248b77956daffecbc94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release files / pylabdd-1.2.13-py3-none-any.whl

Download URL pylabdd-1.2.13-py3-none-any.whl
Size 86.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd7001791d4de246c098fedcafaa32d812dd773405de7da2d3ce936761a65b32
BLAKE2b-256 checksum
How to use checksums
c5181db68896c4673ce672e5163f4efcaabe601e1993cacd79fdae7f39851359
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.20

Release history Release notifications | RSS feed

This release

1.2.13 This release

2 release files

1.2.12

2 release files

1.2.11

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page