Neuber Correction 💥
A Python tool that does the heavy lifting for Neuber correction calculations. No more manual iterations or Excel spreadsheets - just plug in your material properties and get accurate stress corrections.
What's the Deal?
When your elastic FEA gives you stresses above the yield strength, those values are unrealistic because they don't account for plastic yielding. Neuber correction fixes that by finding the intersection between the Neuber hyperbola and your material's actual stress-strain curve.
Key Feature: The intersection is calculated regardless of yield strength for numerical stability, ensuring continuous solutions across elastic and plastic regions. Overcorrection around/below yield is flagged but acceptable for FEA analysis.
Quick Start
from neuber_correction import NeuberCorrection, MaterialForNeuberCorrection
# Set up your material (Aluminum 6061-T6 example)
material = MaterialForNeuberCorrection(
yield_strength=240, # MPa
sigma_u=290, # MPa
elastic_mod=68900, # MPa (69 GPa)
eps_u=0.10 # 10%
)
neuber = NeuberCorrection(material)
# Get your corrected stress
elastic_stress = 500 # MPa
corrected_stress = neuber.correct_stress_values([elastic_stress])[0]
print(f"Elastic: {elastic_stress} MPa → Corrected: {corrected_stress:.1f} MPa")
What You Get
✅ Accurate stress corrections - No more overestimating elastic stresses
✅ Material-specific calculations - Uses Ramberg-Osgood model
✅ Visual analysis - Plot the curves and see what's happening
✅ Batch processing - Handle multiple stress values at once
✅ Robust convergence - Newton-Raphson with fallback methods
✅ Performance optimized - Caching and memoization for repeated calculations
✅ Numerical stability - Continuous solutions across all stress ranges
Perfect For
- FEA result correction when stresses exceed yield
- Fatigue analysis with plastic yielding
- Material testing data analysis
- Design validation and optimization
Installation
pip install neuber-correction
Or if you're using uv (recommended):
uv add neuber-correction
Limitations
Note: Designed for monotonic loading only. Assumes proportional loading and requires accurate material properties. May overcorrect around/below yield for numerical stability.
Need More?
- 📖 Quick Start Guide - Get up and running fast
- 🔬 Theory - The math behind the magic
- ❓ FAQ - Common questions and answers