Skip to main content

A comprehensive desktop application with 8 professional modules: Tafel, Galvanic, EIS, Pitting, Inhibitor, Prediction, Comparison, and Data Import.

Project description

โšก CorroSim - Professional Corrosion Analysis Platform

Python PyQt6 License Tests

A comprehensive desktop application with 8 professional modules: Tafel, Galvanic, EIS, Pitting, Inhibitor, Prediction, Comparison, and Data Import.

โœจ Features

๐Ÿ”ฌ Tafel Polarization Analysis

  • Automatic detection of current units (A, mA, ฮผA)
  • Proper Tafel region identification (80-200 mV from Ecorr)
  • Verified Butler-Volmer kinetics fitting
  • Real-time visualization with Matplotlib
  • Export plots as PNG or PDF

๐Ÿ”ฎ Lifetime Prediction

  • Linear, Power Law, and Exponential degradation models
  • Confidence band visualization
  • Service life estimation with threshold detection
  • Interactive parameter adjustment

๐Ÿ“Š Sample Comparison

  • Multi-sample database with SQLite storage
  • Search and filter functionality
  • Color-coded corrosion rate indicators
  • Export to Excel for further analysis

๐Ÿ“ Data Import

  • Support for Excel (.xlsx, .xls) and CSV files
  • Automatic column detection
  • Data preview with statistics
  • Unit specification options

๐ŸŽจ Professional UI

  • Modern, responsive interface with PyQt6
  • Custom splash screen with progress indicator
  • Consistent styling with professional color theme
  • Sidebar navigation with active state indicators

๐Ÿ”ฌ EIS Impedance Spectroscopy (NEW in v1.4.0)

  • Weighted CNLS fitting with 4 circuit models
  • Auto-Select Best Model (R/RQ/RW/RWQ)
  • Nyquist, Bode, Residuals plots
  • Kramers-Kronig validation

๐Ÿ•ณ๏ธ Pitting Corrosion Analyzer (NEW in v1.4.0)

  • Cyclic polarization Epit/Erp detection
  • Gumbel extreme value statistics
  • ASTM G61 compliant analysis

๐Ÿงช Inhibitor Efficiency Calculator (NEW in v1.5.0)

  • IE% from corrosion rates
  • Langmuir & Freundlich isotherm fitting
  • ฮ”Gยฐ adsorption thermodynamics
  • Synergy parameter analysis

๐Ÿ“ธ Screenshots

Main Window

๐Ÿ–ฅ๏ธ Main Application

Main Window

โšก Tafel Analysis

Tafel Analysis

๐Ÿ”ฎ Lifetime Prediction

Prediction

๐Ÿ“Š Sample Comparison

Comparison

๐Ÿ”ฌ EIS Impedance Spectroscopy

Tafel Analysis

๐Ÿ•ณ๏ธ Pitting Corrosion Analyzer

Tafel Analysis

๐Ÿงช Inhibitor Efficiency Calculator

Tafel Analysis

๐Ÿš€ Installation

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Option 1: Install from PyPI (Recommended)

pip install corrosim
corrosim

To upgrade to the latest version:

pip install --upgrade corrosim

PyPI version Downloads

Option 2: Install from GitHub

git clone https://github.com/khadev/CorroSim.git
cd CorroSim
pip install -r requirements.txt
python run.py

Option 3: Install as Development Package

git clone https://github.com/khadev/CorroSim.git
cd CorroSim
pip install -e .
corrosim

Option 4: Direct pip from GitHub

pip install git+https://github.com/khadev/CorroSim.git
corrosim

๐Ÿ“ฆ Dependencies

txt PyQt6>=6.5.0 matplotlib>=3.7.0 numpy>=1.24.0 pandas>=2.0.0 scipy>=1.10.0 openpyxl>=3.1.0

๐Ÿงช Running Tests

python tests/test_tafel.py

Expected output:

โœ“ Test data generation passed โœ“ All accuracy checks passed!

๐Ÿ“– Usage Guide

1. Import Data

  1. Click ๐Ÿ“ Import in the sidebar
  2. Browse and select your Excel/CSV file
  3. Click Load Preview to verify data
  4. Enter sample name and select test type
  5. Specify current units (or use Auto-detect)
  6. Click Import to Database

2. Tafel Analysis

  1. Navigate to โšก Tafel tab
  2. Click Load Data to retrieve imported data
  3. Verify current units and electrode area
  4. Click โšก Run Tafel Analysis
  5. View results: Ecorr, Icorr, Corrosion Rate, Tafel slopes
  6. Export plot as PNG or PDF

3. Lifetime Prediction

  1. Go to ๐Ÿ”ฎ Prediction tab
  2. Select degradation model (Linear/Power Law/Exponential)
  3. Set initial corrosion rate and failure threshold
  4. Set analysis period
  5. Click ๐Ÿ”ฎ Calculate Prediction
  6. View predicted lifetime and degradation curve

4. Compare Samples

  1. Open ๐Ÿ“Š Compare tab
  2. Search and filter samples by name
  3. View all analysis results in sortable table
  4. Color-coded CR values: Green (low), Yellow (medium), Red (high)
  5. Export data to Excel

5.๐Ÿ”— Galvanic Corrosion Simulator (NEW in v1.1.0)

  • 14 metals database from ASTM G82 galvanic series
  • Mixed potential theory calculations
  • Cathode/Anode area ratio effect
  • Real-time galvanic series bar chart
  • Severity classification per NACE SP0775
  • Engineering recommendations

6. ๐Ÿ”ฌ EIS Analysis

  1. Go to ๐Ÿ”ฌ EIS tab
  2. Select circuit model or use Auto-Select
  3. Click Generate Test Data or Import CSV
  4. Click Run Weighted CNLS Fit
  5. View Nyquist, Bode, Residuals plots

7. ๐Ÿ•ณ๏ธ Pitting Analysis

  1. Go to ๐Ÿ•ณ๏ธ Pitting tab
  2. Click Generate Test Data or Import CSV
  3. Click Analyze Pitting
  4. View Epit, Erp, hysteresis

8.๐Ÿงช Inhibitor Efficiency

  1. Go to ๐Ÿงช Inhibitor tab
  2. Enter CR values or use data table
  3. Click Auto-Fit Best Isotherm
  4. View IE%, ฮ”Gยฐ, synergy analysis

๐Ÿ—๏ธ Project Structure

corrosim/
โ”œโ”€โ”€ corrosim/                    # Main package
โ”‚   โ”œโ”€โ”€ __init__.py              # Package initialization (v1.5.0)
โ”‚   โ”œโ”€โ”€ main.py                  # Application entry point + splash screen
โ”‚   โ”œโ”€โ”€ app.py                   # Main window controller (8 tabs)
โ”‚   โ”œโ”€โ”€ theme.py                 # UI styling (light + dark themes)
โ”‚   โ”œโ”€โ”€ database.py              # SQLite database operations (CRUD)
โ”‚   โ”œโ”€โ”€ tafel_engine.py          # Tafel polarization analysis engine
โ”‚   โ”œโ”€โ”€ splash_screen.py         # Professional splash screen widget
โ”‚   โ”œโ”€โ”€ engines/                 # Analysis engines
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ galvanic_engine.py   # Galvanic corrosion prediction (ASTM G82)
โ”‚   โ”‚   โ”œโ”€โ”€ eis_engine.py        # EIS impedance fitting (Weighted CNLS)
โ”‚   โ”‚   โ”œโ”€โ”€ pitting_engine.py    # Pitting corrosion analysis (ASTM G61)
โ”‚   โ”‚   โ””โ”€โ”€ inhibitor_engine.py  # Inhibitor efficiency + adsorption isotherms
โ”‚   โ”œโ”€โ”€ tabs/                    # UI Tab modules (MVC pattern)
โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”‚   โ”œโ”€โ”€ import_tab.py        # Data import (Excel/CSV)
โ”‚   โ”‚   โ”œโ”€โ”€ tafel_tab.py         # Tafel analysis interface
โ”‚   โ”‚   โ”œโ”€โ”€ prediction_tab.py    # Lifetime prediction (3 models)
โ”‚   โ”‚   โ”œโ”€โ”€ comparison_tab.py    # Multi-sample comparison + export
โ”‚   โ”‚   โ”œโ”€โ”€ galvanic_tab.py      # Galvanic simulator (14 metals)
โ”‚   โ”‚   โ”œโ”€โ”€ eis_tab.py           # EIS spectroscopy (4 circuits)
โ”‚   โ”‚   โ”œโ”€โ”€ pitting_tab.py       # Pitting analyzer (cyclic polarization)
โ”‚   โ”‚   โ””โ”€โ”€ inhibitor_tab.py     # Inhibitor efficiency + synergy
โ”‚   โ””โ”€โ”€ utils/                   # Utility modules
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ””โ”€โ”€ constants.py         # Physical/electrochemical constants
โ”œโ”€โ”€ tests/                       # Test suite
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ test_tafel.py            # Tafel engine validation (R^2 > 0.999)
โ”œโ”€โ”€ screenshots/                 # Application screenshots
โ”œโ”€โ”€ dist/                        # Built packages for PyPI
โ”œโ”€โ”€ requirements.txt             # Python dependencies
โ”œโ”€โ”€ setup.py                     # Package setup script (pip install)
โ”œโ”€โ”€ run.py                       # Quick launcher (python run.py)
โ”œโ”€โ”€ README.md                    # Full documentation
โ”œโ”€โ”€ LICENSE                      # MIT License
โ””โ”€โ”€ .gitignore                   # Git ignore rules

๐Ÿ”ฌ Algorithm Verification

The Tafel engine has been validated using synthetic Butler-Volmer data:

Parameter Expected Recovered Error
Ecorr -0.500 V -0.502 V 0.4%
Icorr 10.0 ฮผA/cmยฒ 9.5 ฮผA/cmยฒ 5.0%
ฮฒa 120 mV/dec 118.1 mV/dec 1.6%
ฮฒc 120 mV/dec 118.4 mV/dec 1.3%
Rยฒ โ€” 0.9997 โ€”

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add feature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ‘ค Author

Khaled Oukil

๐Ÿ“š References

Electrochemical Methods

  1. Stern, M., & Geary, A. L. (1957). Electrochemical Polarization: A Theoretical Analysis of the Shape of Polarization Curves. Journal of the Electrochemical Society, 104(1), 56-63.
  2. Tafel, J. (1905). รœber die Polarisation bei kathodischer Wasserstoffentwicklung. Zeitschrift fรผr Physikalische Chemie, 50(1), 641-712.
  3. Mansfeld, F. (1973). Tafel Slopes and Corrosion Rates from Polarization Resistance Measurements. Corrosion, 29(10), 397-402.

EIS Spectroscopy

  1. Barsoukov, E., & Macdonald, J. R. (2018). Impedance Spectroscopy: Theory, Experiment, and Applications (3rd ed.). Wiley.
  2. Boukamp, B. A. (1995). A Linear Kronig-Kramers Transform Test for Immittance Data Validation. Journal of the Electrochemical Society, 142(6), 1885-1894.
  3. Orazem, M. E., & Tribollet, B. (2017). Electrochemical Impedance Spectroscopy (2nd ed.). Wiley.

Galvanic Corrosion

  1. ASTM G82-98(2021) - Standard Guide for Development and Use of a Galvanic Series for Predicting Galvanic Corrosion Performance.
  2. Hack, H. P. (1988). Galvanic Corrosion. ASTM International.

Pitting Corrosion

  1. ASTM G61-86(2018) - Standard Test Method for Conducting Cyclic Potentiodynamic Polarization Measurements for Localized Corrosion Susceptibility.
  2. ASTM G46-21 - Standard Guide for Examination and Evaluation of Pitting Corrosion.
  3. Gumbel, E. J. (1958). Statistics of Extremes. Columbia University Press.

Corrosion Inhibitors

  1. Langmuir, I. (1918). The Adsorption of Gases on Plane Surfaces of Glass, Mica and Platinum. Journal of the American Chemical Society, 40(9), 1361-1403.
  2. Freundlich, H. (1906). รœber die Adsorption in Lรถsungen. Zeitschrift fรผr Physikalische Chemie, 57(1), 385-470.
  3. Aramaki, K., & Hackerman, N. (1969). Inhibition Mechanism of Medium-Sized Polymethyleneimine. Journal of the Electrochemical Society, 116(5), 568-574.

Corrosion Rate Calculation

  1. ASTM G102-89(2015)e1 - Standard Practice for Calculation of Corrosion Rates and Related Information from Electrochemical Measurements.
  2. NACE SP0775-2013 - Preparation, Installation, Analysis, and Interpretation of Corrosion Coupons in Oilfield Operations.

Atmospheric Corrosion

  1. ISO 9223:2012 - Corrosion of Metals and Alloys โ€” Corrosivity of Atmospheres โ€” Classification, Determination and Estimation.

Software & Tools

  1. PyQt6 Documentation. Riverbank Computing. https://www.riverbankcomputing.com/static/Docs/PyQt6/
  2. Matplotlib: Hunter, J. D. (2007). Matplotlib: A 2D Graphics Environment. Computing in Science & Engineering, 9(3), 90-95.
  3. SciPy: Virtanen, P., et al. (2020). SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17, 261-272.

Built with โค๏ธ for the corrosion science community

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

corrosim-1.5.1.tar.gz (51.0 kB view details)

Uploaded Source

Built Distribution

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

corrosim-1.5.1-py3-none-any.whl (56.1 kB view details)

Uploaded Python 3

File details

Details for the file corrosim-1.5.1.tar.gz.

File metadata

  • Download URL: corrosim-1.5.1.tar.gz
  • Upload date:
  • Size: 51.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for corrosim-1.5.1.tar.gz
Algorithm Hash digest
SHA256 a44c743f5114495ac28d1d7631adb42a5aad9acca27c389c35300da4ef232c37
MD5 548b20437cc42e3560b8a5a8c10d3b34
BLAKE2b-256 957c6e3d402d0056f9130c9b64206c8986dadc6315bc64c0788ad0e2a1ff5a3f

See more details on using hashes here.

File details

Details for the file corrosim-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: corrosim-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 56.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for corrosim-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 93c703c4696ce38d7cbd1a59470eee21af3cb089c2e2a12ff4095deae889a782
MD5 49973b206dc10453c27363b3505cd8b3
BLAKE2b-256 1597c8e7d9450aa2b9208f69f7ff7354e7406b623d738ff712fc3f4a28360a21

See more details on using hashes here.

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