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
Steady-state conduction with Gaussian internal heat generation
Fully coupled plane-stress thermoelastic response
Sparse FEM implementation (Q4, 2×2 Gauss)
Automated stress recovery & visualization
Temperature:
Localized Electronic Hotspot — Steady-State Thermal Field (FEM)
Displacement:
Thermal Expansion–Driven Warpage Under Constrained Boundary Conditions
Stress:
Thermally Induced Stress Concentration from Confined Expansion