Finite Elements

LINEAR FINITE ELEMENT ANALYSIS
Notes
Computational Stiffness Method
Static Condensation, Settlements, Springs, Dependencies
Finite Element Concepts
Elements
Truss Elements
Euler Bernoulli Beam Elements
Timoshenko Beam Elements
Frame Elements with P Delta
Frame Elements with Stability Functions
Frame Elements in Torsion
3D Linear Frame Elements
Q4 Elements in 2D Elasticity
M4 Elements for Plates
Examples
Stiffness vs Flexibility Matrix
Shear Wall Analysis
Beam with Rigid Part
Static Condensation
Python
getTrussStiffness2D()
getFrameStiffness2D()
getQuad4Stiffness2D()
assembleStiffnessMatrix()
Linear Static Structural Analysis (Screenshot) (Alternative input)
OpenSees
OpenSees Linear Elastic Cantilever
COMPUTATIONAL CROSS-SECTION ANALYSIS
Notes
Computational Cross-section Analysis
Elements
T3 Elements in Torsion
Python
Thin-walled Cross-section Analysis (Screenshots)
Solid Cross-section Analysis (Screenshots)
PLASTICITY
Notes
Plastic Capacity Analysis by Hand
Computational Plastic Capacity Analysis
Stress-based Failure Criteria
Examples
Plastic Capacity Examples
Computational Plastic Capacity Analysis for a Frame
Python
Generic Plastic Capacity Analysis (Screenshot)
NONLINEAR FINITE ELEMENT ANALYSIS
Notes
Governing Equations and Solution Algorithms
Load Incrementation Strategies
Geometric Nonlinearity
Material Nonlinearity
Nonlinear Dynamic Analysis
Elements
Concentrated Plasticity Elements
Distributed Plasticity Elements
Truss Elements with Geometric Nonlinearity
Materials
Uniaxial Plasticity Material Model
Bouc-Wen Material Model
Examples
Buckling Modes for Two-storey Frame
Inelastic Stick Model with P-delta
Shallow Truss Snap-through
Python
Nonlinear 2DOF Load Control (Screenshot)
Nonlinear 2DOF Displacement Control (Screenshot)
MDOF Buckling Analysis (Screenshot)
G2
G2 is a Python code for nonlinear static and dynamic structural analysis. It originated with a Matlab code created by Professor Fenves for a course on nonlinear analysis that I took at UC Berkeley around the time OpenSees changed name from G3. Several modifications and a also extensions related to the direct differentiation method are introduced in the Python code posted here. You can view the G2 code in the links below, and you can download the full package here: G2.zip (updated April 4, 2024).
Elements
Element 1 (Linear elastic truss element)
Element 2 (Truss element with path-dependent material)
Element 3 (Truss element with moderate displacements)
Element 5 (Linear elastic frame element)
Element 6 (Frame element with P-delta)
Element 7 (Concentrated plasticity frame element: Elastic-perfectly-plastic, i.e., end releases)
Element 8 (Concentrated plasticity frame element: Two-component parallel system)
Element 9 (Concentrated plasticity frame element: One-component series system with uniaxial materials)
Element 10 (Concentrated plasticity frame element: Rigid interior with path-dependent hinge materials)
Element 12 (Distributed plasticity frame element: Displacement-based)
Element 13 (Distributed plasticity frame element: Force-based)
Sections
Rectangular
Wide-flange
Uniaxial Materials
Bilinear
Plasticity
Bouc-Wen
Analysis Types
Linear Static
Linear Dynamic
Nonlinear Static
Nonlinear Dynamic
SDOF Nonlinear Dynamic
Auxiliary Files
Model
Quadrature
Examples
Example 1 (Response spectra)
Example 2 (Ductility demand)
Example 3 (Nonlinear static truss)
Example 4 (Material visualizer)
Example 5 (Material tester)
Example 6 (Nonlinear static cantilever)
Example 7 (Nonlinear static frame)
Example 8 (P-M interation)
Example 9 (Snap-through)
Example 10 (Nonlinear dynamic SDOF)
Example 11 (Nonlinear dynamic cantilever)
Example 12 (Nonlinear dynamic high-rise)
Example 13 (Static OpenSees comparison)
Example 14 (Dynamic OpenSees comparison)
Example 15 (Linear static with DDM)
Example 16 (Linear dynamic with DDM)
Example 17 (Finite element reliability analysis with FOSM and DDM)
Ground Motions
El Centro
Read PEER Record
Half Sine Wave
OpenSees
OpenSees is an open-source software framework for nonlinear structural analysis, originating at UC Berkeley. It is a powerful tool that is popular in earthquake engineering. OpenSees is object-oriented and consists of many “classes” from which “objects” are instantiated at run-time. There are several ways to run OpenSees; you can compile an executable file yourself, you can use the OpenSeesPy interface for Python, which is done here, or you can use the old Tcl interface. 
Examples
OpenSees Uniaxial Material Tester
OpenSees Nonlinear Static Cantilever
OpenSees Nonlinear Dynamic Frame
El Centro Ground Motion
OpenSeesPy (examples in external links)
Nonlinear Truss Analysis
Nonlinear Frame Analysis
Moment Curvature Analysis
Nonlinear Dynamic Analysis
Portwood Digital (examples in external links)
Patch Test
Load Patterns and Time Series
Constraint Types
Beam with Finite-length Plastic Region
Localization Problem
Timoshenko Beam
Shell Elements
Shell Mesh
Plotting Curvature along Element
Analysis of Cable
Eccentrically Loaded Bolt Group
Arc-length Load Incrementation Method
Geometric Nonlinearity
Hollow Steel Cross-sections
Circular Cross-section Fibre Mesh
Rectangular Cross-section Fibre Mesh
Axial-moment (P-M) Interaction
Section Aggregation
Torsion and Fibres
Hysteretic Pinching (I)
Hysteretic Pinching (II)
Concrete Material Models
Multi-directional Ground Motion
Modal Damping
Modal and Rayleigh Damping
Quick Modal Damping
Careful with Modal Damping
Incremental Dynamic Analysis (IDA)