How to Calculate Corrosion Rate

Corrosion Rate Calculator

Calculate the material loss rate using the Weight Loss Method (ASTM G1 standards).

mils per year (mpy) millimeters per year (mm/y)

Results:

Understanding Corrosion Rate Calculation

Corrosion rate is the speed at which any metal in a specific environment deteriorates. It is a critical metric in chemical engineering, infrastructure maintenance, and material science to predict the lifespan of components like pipes, tanks, and structural beams.

The Weight Loss Formula

The most common method for determining the corrosion rate is the "Weight Loss Method." By weighing a sample before and after exposure to a corrosive environment, we can apply the following mathematical formula:

R = (K × W) / (A × T × D)
  • R: Corrosion Rate
  • W: Weight loss in grams
  • A: Total surface area of the sample in cm²
  • T: Time of exposure in hours
  • D: Density of the metal in g/cm³
  • K: A constant that defines the output unit (3.45 × 106 for mpy or 8.76 × 104 for mm/y)

Common Material Densities

Material Density (g/cm³)
Carbon Steel 7.85
Stainless Steel (304/316) 8.00
Aluminum Alloys 2.70
Copper 8.96

Example Calculation

Suppose you have a carbon steel coupon (Density 7.85 g/cm³) with a surface area of 30 cm². After being exposed to a salt spray for 1,000 hours, it loses 0.25 grams of weight. To find the rate in mm/y:

R = (8.76 × 104 × 0.25) / (30 × 1000 × 7.85)
R = 21900 / 235500
R = 0.093 mm/year

Interpreting Results (mpy Scale)

  • < 1 mpy: Outstanding corrosion resistance (suitable for long-term service).
  • 1 – 5 mpy: Excellent (acceptable for most applications).
  • 5 – 20 mpy: Good (requires monitoring).
  • 20 – 50 mpy: Fair (significant maintenance required).
  • > 50 mpy: Poor (not suitable for exposure).
function calculateCorrosionRate() { var weightLoss = parseFloat(document.getElementById("weightLoss").value); var area = parseFloat(document.getElementById("surfaceArea").value); var time = parseFloat(document.getElementById("exposureTime").value); var density = parseFloat(document.getElementById("density").value); var unit = document.getElementById("outputUnit").value; var resultsArea = document.getElementById("resultsArea"); var resultText = document.getElementById("resultText"); var severityText = document.getElementById("severityText"); if (isNaN(weightLoss) || isNaN(area) || isNaN(time) || isNaN(density) || area <= 0 || time <= 0 || density <= 0) { alert("Please enter valid positive numbers for all fields."); return; } var K; var unitLabel; if (unit === "mpy") { K = 3450000; unitLabel = "mpy"; } else { K = 87600; unitLabel = "mm/y"; } var corrosionRate = (K * weightLoss) / (area * time * density); var finalRate = corrosionRate.toFixed(4); resultText.innerHTML = finalRate + " " + unitLabel; resultsArea.style.display = "block"; // Severity logic based on mpy (convert if necessary) var mpyEquivalent = (unit === "mpy") ? corrosionRate : (corrosionRate * 39.37); var severity = ""; if (mpyEquivalent < 1) { severity = "Severity Level: Outstanding (Low Corrosion)"; } else if (mpyEquivalent < 5) { severity = "Severity Level: Excellent (Stable)"; } else if (mpyEquivalent < 20) { severity = "Severity Level: Good (Mild Corrosion)"; } else if (mpyEquivalent < 50) { severity = "Severity Level: Fair (Caution Required)"; } else { severity = "Severity Level: Poor (Critical Corrosion)"; } severityText.innerHTML = severity; resultsArea.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment