FEM2D Documentation
FEM2D – An open‑source Python library for 2‑D finite element analysis of structural frames.
It supports linear static analysis, non‑linear analysis, and dynamic analysis of 2‑D structures.
Features
Element Library:
Beam Element: Elastic 2D Euler-Bernoulli beam elements including axial, shear, and bending stiffness. Supports uniform and varying member loads, moment releases (hinges), and rotational/translational mass.
Truss Element: Pin-jointed bar elements with axial stiffness only.
Spring Element: 2D elastic spring elements with customizable axial stiffness.
Analysis Types:
Linear Static Analysis: Standard matrix analysis under nodal loads, distributed loads, and concentrated member loads.
Geometrically Non-Linear Analysis: Iterative solver using the Newton-Raphson scheme combined with corotational formulations for large displacement/rotation problems.
Mass Matrix Assembly: Assembles global mass matrices (including rotational inertia and extra non-structural mass) to support modal and eigenvalue analysis.
Post-Processing & Visualization:
Pandas Integration: Convert displacements, reactions, and element forces directly into pandas DataFrames for easy analysis and post-processing.
Graphical Plots: Plot the undeformed/deformed configurations, support conditions, and applied loads using Matplotlib.
Global and Local Axes
- Global Axes:
X (+ve: right), Y (+ve: up), rotation (+ve: counter-clockwise)
- Local Axes:
x (+ve: from node i → node j), y (+ve: upwards when viewing element with left hand at node i and right hand at node j), rotation (+ve: counter-clockwise)
Note: Joint loads use global axes; member loads use local axes.