Skip to content

Repository files navigation

PyPI - Version PyPI - Downloads Conda Version Conda Downloads GitHub commit activity GitHub Repo stars PyPI - License ReadTheDoc codecov PyPI - Python Version DOI Binder

Elasticipy

A python toolkit to manipulate stress and strain tensors, and other linear elasticity-related tensors (e.g. stiffness). This package also provides a collection of easy-to-use and very fast tools to work on stress and strain tensors.

🚀 Main features

Among other features, this package implements:

  • Computation of elasticity tensors,
  • Analysis of elastic anisotropy and wave propagation,
  • Working with multidimensional arrays of tensors,
  • Thermal expansion tensors,
  • Rotation of tensors,
  • Integration with crystal symmetry groups,
  • Visualization and tutorials for ease of use,
  • A graphical user interface to plot the spatial dependence of engineering constants,
  • Compatibility with the Materials Project API, pymatgen, orix and Damask,
  • Crystallographic texture -based calculations,
  • Implementation of common yield criteria, such as von Mises, Tresca, Drucker-Prager and Mohr-Coulomb.

🐍 Installation

Elasticipy can be installed with PIP:

pip install elasticipy

On anaconda, one can also use:

conda install conda-forge::elasticipy

📚 Documentation

Tutorials and full documentation are available on ReadTheDoc.

⏱️ Elasticipy in a nutshell

Take a 5-minute tour through Elasticipy's main features by running the online Jupyter Notebook, hosted on Binder.

🔍 Sources

The source code is available on GitHub under the MIT licence.

☔ Tests and Code Coverage

The project uses unit tests with pytest and coverage reports generated using coverage. These reports are hosted on codecov.

Coverage Exclusions

Certain parts of the code, particularly those related to graphical user interfaces (GUIs) or visual plotting, are excluded from code coverage analysis. This includes the following files:

  • src/Elasticipy/gui.py
  • src/Elasticipy/_plotting_tools.py

🎓 Cite this package

If you use Elasticipy, please cite DOI

You can use the following BibTeX entry:

@article{Elasticipy, 
    doi = {10.21105/joss.07940}, 
    url = {https://doi.org/10.21105/joss.07940}, 
    year = {2025}, 
    publisher = {The Open Journal}, 
    volume = {10}, 
    number = {115}, 
    pages = {7940}, 
    author = {Depriester, Dorian and Kubler, Régis}, 
    title = {Elasticipy: A Python package for linear elasticity and tensor analysis}, 
    journal = {Journal of Open Source Software}
}

Alternatively, you can by me a coffee on ko-fi

About

A Python toolkit to perform common tensor operations in Continuum Mechanics

Topics

Resources

Code of conduct

Contributing

Stars

27 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages