<p align="center"> <a href="https://travis-ci.com/twmacro/pyyeti"><img alt="Build Status" src="https://travis-ci.com/twmacro/pyyeti.svg?branch=master"></a> <a href="https://pyyeti.readthedocs.io/en/latest/?badge=latest"><img alt="Documentation Status" src="https://readthedocs.org/projects/pyyeti/badge/?version=latest"></a> <a href="https://coveralls.io/github/twmacro/pyyeti?branch=master"><img alt="Coverage Status" src="https://coveralls.io/repos/github/twmacro/pyyeti/badge.svg?branch=master"></a> <a href="https://github.com/twmacro/pyyeti/blob/master/LICENSE.txt"><img alt="License: BSD 3-Clause" src="https://img.shields.io/badge/License-BSD%203--Clause-blue.svg"></a> <a href="https://pypi.org/project/pyyeti/"><img alt="PyPI" src="https://img.shields.io/pypi/v/pyyeti"></a> <a href="https://github.com/twmacro/pyyeti"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a> </p> # pyYeti pyYeti has tools mostly related to structural dynamics: * Solve matrix equations of motion in the time and frequency domains * Shock response spectrum (SRS) * Fatigue damage equivalent power spectral densities (PSD) * Hurty-Craig-Bampton model checks * Coupled loads analysis tools * Statistics tools for computing k-factors (for tolerance bounds and intervals) and for order statistics * A data-cursor for interacting with 2D/3D matplotlib plots * Eigensystem Realization Algorithm * Force limiting analysis tools * Read/write Nastran output4 (.op4) files * Limited capability to read Nastran output2 (.op2) files * Rainflow cycle counting * Resample data with the Lanczos method * A "vectorized" writing module * Eigensolution with the subspace iteration method * Tools for working with the "nas2cam" Nastran DMAP * Other miscellaneous tools ## Installation pyYeti runs on Python 3.10 or later. The dependencies are NumPy, SciPy, Matplotlib, pandas and setuptools. These are all conveniently provided by the Anaconda Python distribution: https://www.anaconda.com/distribution/. You can install pyYeti via `pip`: python -m pip install pyyeti or: python -m pip install --user --upgrade pyyeti You can also install from source, doing something like this: git clone https://github.com/twmacro/pyyeti.git cd pyyeti python -m build -n cd dist python -m pip install <filename>.whl Note that for the C version of the rainflow cycle counter, you also need a C compiler installed. However, the speed of the pure Python version is on par with the C version if you have Numba installed. In fact, the C version may be removed in the future after making Numba a required dependency. ## Documentation pyYeti documentation is here: http://pyyeti.readthedocs.org/ ## Tutorials The documentation contains several tutorials in the documentation. These are also available (in their original form) as Jupyter notebooks: https://github.com/twmacro/pyyeti/tree/master/docs/tutorials ## License BSD. See [LICENSE.txt](LICENSE.txt) ## Contributing to pyYeti Contributions are much appreciated. Bug reports, documentation updates, feature requests, and code enhancements are all great ways to contribute.