Implemented a 2D plane stress finite element solver from scratch in Python using bilinear Q4 elements with 2×2 Gauss integration.
Investigated stress concentration around a circular hole under uniaxial tension.
• Sparse global stiffness assembly
• Stress recovery at Gauss points
• von Mises contour visualization
• Mesh refinement study
• Achieved SCF ≈ 3.0 (consistent with theoretical solution)
Maximum von Mises stress converged toward theoretical SCF = 3 with mesh refinement.
2D Nonlinear Finite Element Solver – J2 Plasticity (Plane Strain)
Implemented small-strain elastoplasticity with isotropic hardening using return mapping, load stepping, and global Newton iteration.
Bilinear Q4 elements (2×2 Gauss integration)
Backward Euler radial return mapping for J2 plasticity
Isotropic hardening model
Global modified Newton iteration
Damped displacement updates for nonlinear stability
Sparse stiffness assembly
Load stepping procedure
Stress redistribution after yielding