extrudion

Python Package for Tensile Testing batch analysis

https://github.com/azzarip/extrudion_py

Science Score: 44.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
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary

Keywords

tensile testing tra
Last synced: 6 months ago · JSON representation ·

Repository

Python Package for Tensile Testing batch analysis

Basic Info
  • Host: GitHub
  • Owner: azzarip
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 1.03 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Topics
tensile testing tra
Created over 2 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

Extudion: Python Package for Tensile Testing

Tensile testing, a key method in material science and engineering, assesses a sample's response to controlled tension until failure, aiming to determine its tensile properties.

These properties, including tensile strength, Young's modulus, and Yield strength, offer insights into material behavior.

The process of tensile testing involves placing the test specimen in the testing machine and slowly extending it until it fractures.

The elongation of the gauge section is recorded against the applied force, and this data is used to calculate the strain and stress.

However, the sheer volume of data generated by tensile tests, especially when multiple datasets are produced for each sample, poses a significant challenge in terms of analysis efficiency and accuracy.

Traditional manual analysis methods often entail tedious and time-consuming tasks, including data filtering, analysis, and parameter estimation, impeding the pace of research and development in materials science.

Set up Instructions

Run the following command in the conda/miniconda terminal to install the package: pip install extrudion

Import the package in your Jupyter project or Python script: import extrudion as ex

Available Functions:

The Extrudion package comes with one public main class method: import extrudion as ex ex.start(folder_path) This start an automated process where the folder given as a function argument gets analyzed file by file. The initial length and sample area are given as user input. Additional methods for analyzing a specific file or a specific folder can be called by importing the file: The TRAFolder class for analyzing a full folder, without using the command line input: import extrudion.file as ex ex.TRAFolder(folder_path).analyze( _ {'sample_area': sample_area, 'initial_length': initial_length}) The TRAFolder class for analyzing a single file: import extrudion.file as ex ex.TRAFile(file_path).analyze( _ {'sample_area': sample_area, 'initial_length': initial_length})

Additional Information

More information on the usage of the package, the reported results and the physics behind the computation can be found in the Doc File inside the repository.

Physics Fundamentals

Stress = Force['N'] / sample_thickness / 10 * 10^3

returns gives the stress in kPa

Strain = ln( length['mm'] / initial length ['mm'] )

Young Modulus = slope of the best line fit for the curve

Intercept = the incercet of the previous fit

Yield Stress and Strain are the point of intersection for the Young modulus line shifted by 0.02 in the Strain and the data.

Results

The numerical analysis output is stored in a csv file.

An example is shown in the following table.

For each file we have max stress and strain coordinates, Young's modulus, and the intercept of the fitting line in the linear regime.

The intersection coordinates between the shifted line and the stress-strain curve are displayed as yield stress and yield strain.

| File | Max Stress (kPa) | Max Strain | Young Modulus (kPa) | Intercept (kPa) | Yield Stress (kPa) | Yield Strain | |-----------|------------------|------------|----------------------|------------------|--------------------|--------------| | File.TRA | 61.73 | 0.14 | 692 | 0.80 | 50.29 | 0.092 |

Plot Example

The output of the analysis is as shown in the figure Below.

The stress-strain curve, depicted in blue, features a blue dot denoting the maximum stress. A fitted line representing Young's modulus is depicted in orange dashed, alongside a 2\% shifted line displayed in dotted green.

The point of intersection between the stress-strain curve and the green dotted line shows the stress and strain yield.

image

Owner

  • Name: Paride Azzari
  • Login: azzarip
  • Kind: user
  • Location: Zurich
  • Company: ETH Zurich

Theoretical Physicist and Computational Scientist at ETH Zurich

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Azzari
    given-names: Paride
    orcid: https://orcid.org/0000-0001-5400-1576
title: "Extrudion: Python Package for Tensile Analysis"
version: 2.0.4 
date-released: 2024-03-05
doi: 10.3929/ethz-b-000673804
url: "https://github.com/azzarip/extrudion_py"

GitHub Events

Total
  • Push event: 6
Last Year
  • Push event: 6

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 40 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 30
  • Total maintainers: 1
pypi.org: extrudion

Analyzes TRA files for stress and strain

  • Versions: 30
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 40 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 19.8%
Average: 32.4%
Dependent repos count: 67.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

poetry.lock pypi
  • contourpy 1.1.1
  • cycler 0.11.0
  • fonttools 4.42.1
  • fsspec 2023.9.1
  • joblib 1.3.2
  • kiwisolver 1.4.5
  • matplotlib 3.8.0
  • numpy 1.26.0
  • packaging 23.1
  • pandas 2.1.1
  • pillow 10.0.1
  • pyparsing 3.1.1
  • python-dateutil 2.8.2
  • pytz 2023.3.post1
  • scikit-learn 1.3.1
  • scipy 1.11.2
  • setuptools 68.2.2
  • setuptools-scm 8.0.2
  • six 1.16.0
  • threadpoolctl 3.2.0
  • tomli 2.0.1
  • typing-extensions 4.8.0
  • tzdata 2023.3
pyproject.toml pypi
  • fsspec ^2023.9.1
  • matplotlib ^3.8.0
  • numpy ^1.26.0
  • pandas ^2.1.1
  • python >=3.10,<3.13