Extract continuous and discrete relaxation spectra from G(t)

Overview

pyReSpect-time

Extract continuous and discrete relaxation spectra from stress relaxation modulus G(t). The papers which describe the method and test cases are:

  • Shanbhag, S., "pyReSpect: A Computer Program to Extract Discrete and Continuous Spectra from Stress Relaxation Experiments", Macromolecular Theory and Simulations, 2019, 1900005 [doi: 10.1002/mats.201900005].
  • Takeh, A. and Shanbhag, S. "A computer program to extract the continuous and discrete relaxation spectra from dynamic viscoelastic measurements", Appl. Rheol. 2013, 23, 24628.

Files

Code Files

This repository contains two python modules contSpec.py discSpec.py. They extract the continuous and discrete relaxation spectra from a stress relaxation data. (t versus G(t) experiment or simulation).

It containts a third module common.py which contains utilities required by both contSpec.py and discSpec.py.

In addition to the python modules, a jupyter notebook interactContSpec.ipynb is also provisionally included. This allows the user to experiment with parameter settings interactively.

Input Files

The user is expected to supply two files:

  • inp.dat is used to control parameters and settings
  • Gt.dat which contains two columns of data t and G(t)

Output Files

Text files containting output from the code are stored in a directory output/. These include a fit of the data, the spectra, and other files relevant to the continuous or discrete spectra calculation.

Graphical and onscreen output can be suppressed by appropriate flags in inp.dat.

Test Files

A bunch of test files are supplied in the folder tests/. These data are described in the paper: Shanbhag, S., "pyReSpect: A Computer Program to Extract Discrete and Continuous Spectra from Stress Relaxation Experiments" which will appear in Macromolecular Theory and Simulations in 2019.

Usage

Once inp.dat and Gt.dat are furnished, running the code is simple.

To get the continuous spectrum:

python3 contSpec.py

The continuous spectrum must be extracted before the discrete spectrum is computed. The discrete spectrum can then be calculated by

python3 discSpec.py

Interactive Mode

The interactive mode offers a "GUI" for exploring parameter settings. To launch use jupyter notebook interactContSpec.ipynb.

Pre-requisites

The numbers in parenthesis show the version this has been tested on.

python3 (3.5.2) numpy (1.14.2) scipy (1.0.1)

For interactive mode:

jupyter (4.3) ipywidgets (6.0.0)

History

The code is based on the Matlab program ReSpect, which extract the continuous and discrete relaxation spectra from frequency data, G*(w). Work was supported by National Science Foundation DMR grants number 0953002 and 1727870.

Major Upgrade: March-April 2019

  • added ability to infer plateau modulus G0; modified all python routines and reorganized inp.dat
  • use a Bayesian formulation to infer uncertainty in the continuous spectrum
  • currently keeping old method to determine critical lambda, but using a far more efficient method (3-4x savings in compute time)
  • made discSpec.py compliant with G0

Major Upgrade: December 2018

  • moved all common imports and definitions to common; made completely visible
  • in discSpec(): added a NLLS routine to optimize tau; use previous optima as initial guesses for final tau; this greatly improved the quality of fits.

Major Upgrade: August 2018

Continuous Spectrum

  • orignal program with n = 100 and lambda = 20 pts with clean 1 mode data took ~33s.
  • prestore kernMat: evaluation of kernel (meshgrid S, T, and hs) by prestoring kernMat ~12.5s (~3x speed gain)
  • improved least_squares setting by incorporating jacobianLM; ~6s (2x gain)
  • lcurve coarser (auto) mesh, robust criterion, and interpolation ~3.5s (~1.75x gain)
  • Total gain in speed as a consequence of these improvements is 33s -> 3.5s a nearly 10x gain!
  • making jupyter interact compliant

Discrete Spectrum

  • AutoMagic Mode: need only par verbose and plotting flags; auto Nopt
  • switching to nnls as default fitting engine
  • changed older MaxwellModes and LLS -> nnls
  • some printing modifications
  • hardcoding prune = True everywhere; doesn't seem to be use case otherwise
  • making jupyter interact compliant
A weekly dive into commonly used modules in the Rust ecosystem, with story flavor!

The goal of this project is to bring the same concept as PyMOTW to the Rust world. PyMOTW was an invaluable resource for me when I was learning Python years ago, and I hope that I can help someone in

Scott Lyons 20 Aug 26, 2022
Convex Optimisation MVA course - Assignment

Convex Optimisation MVA course - Assignment This repository contains the coding files of the third assignment in the MVA Convex Optimisation course. U

1 Nov 27, 2021
eyes is a Public Opinion Mining System focusing on taiwanese forums such as PTT, Dcard.

eyes is a Public Opinion Mining System focusing on taiwanese forums such as PTT, Dcard. Features 🔥 Article monitor: helps you capture the trend at a

Sean 116 Dec 29, 2022
51AC8 is a stack based golfing / esolang that I am trying to make.

51AC8 is a stack based golfing / esolang that I am trying to make.

7 May 22, 2022
A general illumination correction method for optical microscopy.

CIDRE About CIDRE is a retrospective illumination correction method for optical microscopy. It is designed to correct collections of images by buildin

Kevin Smith 31 Sep 07, 2022
A Python module for decorators, wrappers and monkey patching.

wrapt The aim of the wrapt module is to provide a transparent object proxy for Python, which can be used as the basis for the construction of function

Graham Dumpleton 1.8k Jan 06, 2023
InverterApi - This project has been designed to take monitoring data from Voltronic, Axpert, Mppsolar PIP, Voltacon, Effekta

InverterApi - This project has been designed to take monitoring data from Voltronic, Axpert, Mppsolar PIP, Voltacon, Effekta

Josep Escobar 2 Sep 03, 2022
Create an application to visualize single/multiple Xandar Kardian people counting sensors detection result for a indoor area.

Program Design Purpose: We want to create an application to visualize single/multiple Xandar Kardian people counting sensors detection result for a indoor area.

2 Dec 28, 2022
This is a small Panel applet for the Budgie Desktop to display the battery charge of a connected Bluetooth device.

BudgieBluetoothBattery This is a small Panel applet for the Budgie Desktop to display the battery charge of a connected Bluetooth device. It uses the

Konstantin Köhring 7 Dec 05, 2022
Block fingerprinting for the beacon chain, for client identification & client diversity metrics

blockprint This is a repository for discussion and development of tools for Ethereum block fingerprinting. The primary aim is to measure beacon chain

Sigma Prime 49 Dec 08, 2022
A Unified Framework for Hydrology

Unified Framework for Hydrology The Python package unifhy (Unified Framework for Hydrology) is a hydrological modelling framework which combines inter

Unified Framefork for Hydrology - Community Organisation 6 Jan 01, 2023
Automates the fixing of problems reported by yamllint by parsing its output

yamlfixer yamlfixer automates the fixing of problems reported by yamllint by parsing its output. Usage This software automatically fixes some errors a

OPT Nouvelle Caledonie 26 Dec 26, 2022
Audio-analytics for music-producers! Automate tedious tasks such as musical scale detection, BPM rate classification and audio file conversion.

Click here to be re-directed to the Beat Inspect Streamlit Web-App You are a music producer? Let's get in touch via LinkedIn Fundamental Analytics for

Stefan Rummer 11 Dec 27, 2022
Little tool in python to watch anime from the terminal (the better way to watch anime)

anipy-cli Little tool in python to watch anime from the terminal (the better way to watch anime) Has a resume playback function when picking from Hist

sdao 97 Dec 29, 2022
Writeup and scripts for the 2021 malwarebytes crackme

Malwarebytes Crackme 2021 Tools and environment setup We will be doing this analysis in a Windows 10 VM with the flare-vm tools installed. Most of the

Jerome Leow 9 Dec 02, 2022
Set of scripts that schedules employees for shifts throughout the week based on availability, shift times, and shift necessities

Automatic-Scheduler Set of scripts that schedules employees for shifts throughout the week based on availability, shift times, and shift necessities *

Matthew 1 May 01, 2022
Python flexible slugify function

Python flexible slugify function

Dmitry Voronin 471 Dec 20, 2022
One Ansible Module for using LINE notify API to send notification. It can be required in the collection list.

Ansible Collection - hazel_shen.line_notify Documentation for the collection. ansible-galaxy collection install hazel_shen.line_notify --ignore-certs

Hazel Shen 4 Jul 19, 2021
Odoo modules related to website/webshop

Website Apps related to Odoo it's website/webshop features: webshop_public_prices: allow configuring to hide or show product prices and add to cart bu

Yenthe Van Ginneken 9 Nov 04, 2022
A module to develop and apply old-style links

Old-Linkage-Dev (OLD) Old Linkage Development is a module to develop and apply old-style links. Old-style links stand for some traditional or conventi

Tarcadia 2 Dec 04, 2021