viscoelasticity-
Prony Series Fit for Viscoelastic Data
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 5 DOI reference(s) in README -
✓Academic publication links
Links to: sciencedirect.com -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.2%) to scientific vocabulary
Repository
Prony Series Fit for Viscoelastic Data
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
To cite:
Article
@article{KHADIJEH2025117462,
title = {Exploring the roles of numerical simulations and machine learning in multiscale paving materials analysis: Applications, challenges, best practices},
journal = {Computer Methods in Applied Mechanics and Engineering},
volume = {433},
pages = {117462},
year = {2025},
issn = {0045-7825},
doi = {https://doi.org/10.1016/j.cma.2024.117462},
url = {https://www.sciencedirect.com/science/article/pii/S0045782524007175},
author = {Mahmoud Khadijeh and Cor Kasbergen and Sandra Erkens and Aikaterini Varveri},
To cite:
python
@software{khadijeh_2024_13735908,
author = {Khadijeh, Mahmoud and
Varveri, Aikaterini and
Kasbergen, Cor and
Erkens, Sandra},
title = {{Prony Series Fit for Viscoelastic Data Using a
Genetic Algorithm}},
month = sep,
year = 2024,
publisher = {Zenodo},
version = {V1.0.0},
doi = {10.5281/zenodo.13735908},
url = {https://doi.org/10.5281/zenodo.13735908}
}
Prony Series Fit for Viscoelastic Data
This project provides a Python-based implementation to fit viscoelastic data using the Prony series. The code uses experimental data (storage modulus and loss modulus) and optimizes the Prony series parameters to model the material's behavior. This is useful in modeling viscoelastic materials, such as polymers, by fitting their frequency-dependent storage and loss moduli. The resulting Prony series parameters are particularly useful for creating material models in finite element software like ABAQUS.
Prony Series Overview
The Prony series is a mathematical model used to represent the viscoelastic behavior of materials. The material's modulus is decomposed into two parts: - Storage modulus (elastic behavior): E'(ω) - Loss modulus (viscous behavior): E''(ω)
The equations for the Prony series used in this project are as follows:
Storage Modulus E'(ω):
Loss Modulus E''(ω):
Where: - E₀ is the long-term modulus. - gᵢ are the Prony series coefficients (describing the material's relaxation behavior). - τᵢ are the relaxation times. - ω is the angular frequency (rad/s).
Algorithm
The core of the implementation is based on differential evolution (DE), a global optimization technique. The optimization process aims to minimize the error between the experimental and predicted moduli, based on the following Mean Absolute Percentage Error (MAPE) objective function:
The differential evolution algorithm works as follows: 1. Initialization: A population of candidate solutions is randomly generated. 2. Mutation and Crossover: New candidate solutions are generated based on mutations of the best solutions. 3. Selection: Candidate solutions that result in a lower objective function value are selected. 4. Stopping Criteria: The algorithm runs for a specified number of iterations or until convergence.
Adaptive Fitting
The script adapts the number of terms in the Prony series, ranging from 1 to a user-defined maximum number of terms (default is 10). The code incrementally increases the number of terms and chooses the model with the lowest MAPE for both the storage and loss moduli. This adaptive approach ensures that the optimal number of Prony terms is used for each dataset.
Visualization
The code generates plots comparing the experimental data with the fitted Prony series for both the storage and loss moduli. These plots are displayed using a logarithmic scale for both axes, providing a clear visualization of the fit across the entire frequency range.
How to Run the Code
Requirements:
- Python 3.x
- NumPy
- SciPy
- Pandas
- Matplotlib
Data: Provide an Excel file with columns for Frequency, Storage-Modulus, and Loss-Modulus.
Run the Script: Ensure that the file path in the
main()function is correct for your system. Then run the script using Python. The output will show the optimized Prony series parameters, the number of terms used, and a plot of the fit compared to the experimental data.Example Command:
bash python prony_fit.py
Output
The script provides detailed output, including: - MAPE values for each number of Prony terms tested - The optimal number of Prony terms - The long-term modulus (E0) - Individual Prony series parameters (gi and τi) - The sum of gi values - A plot comparing experimental and fitted data
Applications
The Prony series parameters obtained from this script are particularly useful for creating material models in finite element software like ABAQUS. These parameters can be directly input into ABAQUS to define viscoelastic material behavior, enabling accurate simulation of time-dependent material responses.
Customization
You can customize the maximum number of Prony terms by modifying the No_Prony variable at the beginning of the script. This allows you to adjust the complexity of the fit based on your specific material and data requirements.
Owner
- Login: mkhadijeh26
- Kind: user
- Repositories: 1
- Profile: https://github.com/mkhadijeh26
Citation (CITATION.cff)
abstract: <p>This project provides a Python-based implementation to fit viscoelastic data using the Prony series. The code uses experimental data (storage modulus and loss modulus) and optimizes the Prony series parameters to model the material's behavior. This is useful in modeling viscoelastic materials, such as polymers, by fitting their frequency-dependent storage and loss moduli. The resulting Prony series parameters are particularly useful for creating material models in finite element software like ABAQUS.</p> authors: - affiliation: Delft University of Technology family-names: Khadijeh given-names: Mahmoud - affiliation: Delft University of Technology family-names: Varveri given-names: Aikaterini - affiliation: Delft University of Technology family-names: Kasbergen given-names: Cor - affiliation: Delft University of Technology family-names: Erkens given-names: Sandra cff-version: 1.2.0 date-released: '2024-09-09' doi: 10.5281/zenodo.13735908 license: - cc-by-4.0 repository-code: https://github.com/mkhadijeh26/Viscoelasticity-/tree/V1.0.0 title: Prony Series Fit for Viscoelastic Data Using a Genetic Algorithm type: software version: V1.0.0
GitHub Events
Total
- Watch event: 1
- Push event: 3
Last Year
- Watch event: 1
- Push event: 3