A high-performance Python library for structural engineering, featuring custom matrix operations and an optimized Banded Cholesky Solver for large-scale Finite Element systems. Computational analysis of two 2D truss structures is performed.
This library is the mathematical core of a custom-built Finite Element Method (FEM) engine. Developed entirely from scratch without external numerical libraries (such as NumPy), it demonstrates a deep understanding of memory management, matrix bandwidth optimization, and structural mechanics mathematics.
Large-scale structural systems generate massive stiffness matrices. Storing these as standard
- Dense Matrix Operations: Pure Python implementation of matrix multiplication, transposition, and vector mapping.
-
Symmetric Banded Storage: Only the significant semi-bandwidth (
$m$ ) is stored, reducing memory footprint from$O(N^2)$ to$O(N \times m)$ .
- Implements the
$A = U^T U$ (or$LDL^T$ ) Factorization specifically for banded systems. - Skips zero-value calculations outside the bandwidth, dramatically increasing computational speed for large structural frames.
- Designed to integrate directly with 2D Frame/Truss analysis routines.
- Handles Global Stiffness Matrix (
$[K]$ ) assembly with automated symmetry enforcement.
Standard
- Factorization: The banded matrix is decomposed into an upper triangular matrix within the band.
-
Forward/Backward Substitution: Efficiently solves
${F} = [K]{D}$ strictly within the banded memory space.
Developing this library provided deep insights into:
- Numerical Stability: Managing floating-point precision in large systems.
-
Algorithm Efficiency: The transition from
$O(N^3)$ complexity to$O(N \times m^2)$ . - Software Architecture: Building decoupled, reusable modules for future structural analysis projects.
Muratcan Kılıçtepe Developed as the foundational library for CE 4011 - Structural Analysis.