Skip to main content

Prony series identification for linear viscoelastic material models.

Project description

pyvisco

CI Notebooks Hugging Face Space Documentation Status PyPI Python DOI

Pyvisco is a Python library that supports the identification of Prony series parameters for Generalized Maxwell models describing linear viscoelastic materials.

Overview

The mechanical response of linear viscoelastic materials is often described with Generalized Maxwell models. The necessary material model parameters are typically identified by fitting a Prony series to the experimental measurement data in either the frequency-domain (via Dynamic Mechanical Thermal Analysis) or time-domain (via relaxation measurements). Pyvisco performs the necessary data processing of the experimental measurements, mathematical operations, and curve-fitting routines to identify the Prony series parameters. The experimental data can be provided as raw measurement sets at different temperatures or as pre-processed master curves.

  • If raw measurement data are provided, the time-temperature superposition principle is applied to create a master curve and obtain the shift functions prior to the Prony series parameters identification.

  • If master curves are provided, the shift procedure can be skipped, and the Prony series parameters identified directly.

An optional minimization routine is provided to reduce the number of Prony elements. This routine is helpful for Finite Element simulations where reducing the computational complexity of the linear viscoelastic material models can shorten the simulation time.

Installation

pip install pyvisco

Requires Python 3.11 or newer.

Example data

Bundled example input files live under sample_data/ and are also published as a downloadable archive on every GitHub release: pyvisco-examples.zip. These files can be loaded directly into the web app, the tutorial notebook, or any of the standalone scripts described below.

Usage

There are three ways to use pyvisco:

  1. Interactive web app (no install required). The LinViscoFit.ipynb notebook provides a graphical interface (upload data → fit → download Prony series) and is hosted as a Voila application on Hugging Face Spaces:

    Hugging Face Space

    The Space tracks the main branch and rebuilds automatically. The first request after a period of inactivity may take ~30s while the container wakes up.

  2. Tutorial notebook & scripts. The tutorials/ folder contains a non-interactive walkthrough notebook (tutorial.ipynb) and three standalone Python scripts (freq_master.py, freq_raw.py, time_master.py) mirroring the verification scenarios — suitable for headless / CI / batch use.

  3. As a library. Import pyvisco and call the modules directly. See the API documentation for details.

Verification

The Python implementation is verified against the curve-fitting routine of the commercial package ANSYS APDL 2021 R1. The notebooks and reference material cards live in the verification/ folder and are executed end-to-end on every push.

Citation

If you use pyvisco in your published work, please cite it along with the version number and the specific DOI for that version on Zenodo: DOI.

APA

Springer, Martin (2022). PYVISCO: A Python library for identifying Prony series parameters of linear viscoelastic materials (Version {insert version}) [Computer software]. doi:{insert DOI}

BibTeX

@software{Springer_pyvisco_2022,
  author  = {Springer, Martin},
  doi     = {insert DOI},
  title   = {{PYVISCO: A Python library for identifying Prony series parameters of linear viscoelastic materials}},
  url     = {https://github.com/NatLabRockies/pyvisco},
  version = {insert version},
  year    = {2022}
}

License

Released under the CLA 1.0 license.

Project details


Download files

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

Source Distribution

pyvisco-2.1.0.tar.gz (3.2 MB view details)

Uploaded Source

Built Distribution

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

pyvisco-2.1.0-py3-none-any.whl (41.2 kB view details)

Uploaded Python 3

File details

Details for the file pyvisco-2.1.0.tar.gz.

File metadata

  • Download URL: pyvisco-2.1.0.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyvisco-2.1.0.tar.gz
Algorithm Hash digest
SHA256 a3bbdbe6f586bc9ad955a358ea65ee6a5a57819f995571a1e7523f6af2c6749b
MD5 5ecad004c2787b2b269a890c5d4666b9
BLAKE2b-256 9bc3be9200d38fe6ecd04135b841d74ad0681720dc86003ea009f6044ab994ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvisco-2.1.0.tar.gz:

Publisher: publish-to-pypi.yaml on NatLabRockies/pyvisco

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvisco-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyvisco-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 41.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyvisco-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a172eae84fe5d5b6873255d086ebfa81c9498cba3e76b54ddb369efe9b72ac76
MD5 f71a52a53f689841a525a0bb18c8df37
BLAKE2b-256 efdb48ff720c145cb0a5e75f2af6e17309cf26d1783e0ad31986670b6c94b299

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvisco-2.1.0-py3-none-any.whl:

Publisher: publish-to-pypi.yaml on NatLabRockies/pyvisco

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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