{"id":40715961,"url":"https://github.com/azzarip/extrudion_py","last_synced_at":"2026-01-21T13:12:01.421Z","repository":{"id":193469943,"uuid":"688852137","full_name":"azzarip/extrudion_py","owner":"azzarip","description":"Python Package for Tensile Testing batch analysis ","archived":false,"fork":false,"pushed_at":"2025-07-30T11:08:58.000Z","size":1082,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-27T22:09:48.056Z","etag":null,"topics":["tensile","testing","tra"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azzarip.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-09-08T08:36:31.000Z","updated_at":"2025-07-30T11:09:02.000Z","dependencies_parsed_at":"2024-02-13T14:46:11.283Z","dependency_job_id":"e39ae601-bb7b-479a-82f3-d9eb47137695","html_url":"https://github.com/azzarip/extrudion_py","commit_stats":null,"previous_names":["azzarip/extrudion"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/azzarip/extrudion_py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzarip%2Fextrudion_py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzarip%2Fextrudion_py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzarip%2Fextrudion_py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzarip%2Fextrudion_py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azzarip","download_url":"https://codeload.github.com/azzarip/extrudion_py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azzarip%2Fextrudion_py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28633749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["tensile","testing","tra"],"created_at":"2026-01-21T13:12:00.517Z","updated_at":"2026-01-21T13:12:01.416Z","avatar_url":"https://github.com/azzarip.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Extudion: Python Package for Tensile Testing\nTensile 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. \n\nThese properties, including tensile strength, Young's modulus, and Yield strength, offer insights into material behavior. \n\nThe process of tensile testing involves placing the test specimen in the testing machine and slowly extending it until it fractures. \n\nThe elongation of the gauge section is recorded against the applied force, and this data is used to calculate the strain and stress.\n\nHowever, 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. \n\nTraditional 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. \n\n## Set up Instructions\nRun the following command in the conda/miniconda terminal to install the package:\n`pip install extrudion` \n\nImport the package in your Jupyter project or Python script:\n`import extrudion as ex`\n\n\n## Available Functions:\nThe Extrudion package comes with one public main class method:\n```\n   import extrudion as ex\n   ex.start(folder_path)\n```\nThis 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.\nAdditional methods for analyzing a specific file or a specific folder can be called by importing the file:\nThe `TRAFolder` class for analyzing a full folder, without using the command line input: \n```\n    import extrudion.file as ex\n    ex.TRAFolder(folder_path).analyze( _\n    {'sample_area': sample_area, 'initial_length': initial_length})\n```\nThe `TRAFolder` class for analyzing a single file:\n```\n    import extrudion.file as ex\n    ex.TRAFile(file_path).analyze( _\n    {'sample_area': sample_area, 'initial_length': initial_length})\n```\n\n## Additional Information\n\nMore information on the usage of the package, the reported results and the physics behind the computation can be found in the [Doc File](https://azzarip.github.io/extrudion_py/Docs.pdf) inside the repository.\n\n\n## Physics Fundamentals\n\n`Stress` = Force['N'] / `sample_thickness` / 10 * 10^3 \n\nreturns gives the `stress` in `kPa`\n\n`Strain` = ln( length['mm'] / initial length ['mm'] )\n\n`Young Modulus` = slope of the best line fit for the curve\n\n`Intercept` = the incercet of the previous fit\n\n`Yield Stress and Strain` are the point of intersection for the Young modulus line shifted by 0.02 in the Strain and the data.\n\n## Results\n\nThe numerical analysis output is stored in a `csv` file. \n\nAn example is shown in the following table. \n\nFor each file we have max stress and strain coordinates, Young's modulus, and the intercept of the fitting line in the linear regime. \n\nThe intersection coordinates between the shifted line and the stress-strain curve are displayed as yield stress and yield strain. \n\n| File      | Max Stress (kPa) | Max Strain | Young Modulus (kPa) | Intercept (kPa) | Yield Stress (kPa) | Yield Strain |\n|-----------|------------------|------------|----------------------|------------------|--------------------|--------------|\n| File.TRA  | 61.73            | 0.14       | 692                  | 0.80             | 50.29              | 0.092        |\n\n### Plot Example\nThe output of the analysis is as shown in the figure Below. \n\nThe 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. \n\nThe point of intersection between the stress-strain curve and the green dotted line shows the stress and strain yield.\n\n![image](https://github.com/azzarip/extrudion/assets/116155557/f4cefd4a-50b2-45b2-a603-f0fc15f6e8cc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazzarip%2Fextrudion_py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazzarip%2Fextrudion_py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazzarip%2Fextrudion_py/lists"}