Finite Element Computing
PyFEM
A modular and transparent finite element framework designed for education, research, and rapid model development. PyFEM’s clean, readable Python codebase makes it easy to understand the underlying mechanics, experiment with your own formulations, and build new models from scratch — ideal for both classroom use and advanced prototyping.
Despite its simplicity, PyFEM is a fully capable simulation environment: it includes a suite of linear and nonlinear solvers, a broad collection of finite element formulations (1D–3D, small and large deformation), extensible material models, and flexible I/O utilities with VTK and HDF5 output.
Whether you use it to teach the fundamentals, validate new ideas, or explore novel discretization strategies, PyFEM provides a powerful, lightweight, and highly accessible platform for finite element simulation in Python.
All the essentials
Solvers, elements
and material models
PyFEM provides everything you need for linear and nonlinear finite element analysis. From small-strain to large-strain kinematics, from beam and shell formulations to advanced elasto-plastic and fracture models — it’s all built in. Multiphysics simulations are supported as well.
Unlike commercial black-box codes, Dawn is fully transparent: all source code is accessible, readable, and modifiable. You get high-performance capability with complete control over what happens under the hood. </p>
Track convergence in real time: residuals, step sizes, and solver statistics.
Learn by Doing
Learn & Prototype Finite Elements — Fast
PyFEM is a clean, readable Python finite element code built for learning and rapid prototyping. Its transparent structure makes nonlinear solid mechanics tangible, ideal for students, educators, and researchers who want to understand how finite elements work—not just run black-box simulations.
</p>
A reproducible pipeline: geometry → mesh → solve → analyze → publish.
Serious Mechanics
Powerful Nonlinear Analysis in Pure Python
From large deformations and plasticity to fracture and contact, PyFEM delivers serious nonlinear mechanics in pure Python. Featuring Newton–Raphson solvers, arc-length methods, cohesive zone models, and dynamics, it connects textbook formulations directly to computational experiments.
</p>
A reproducible pipeline: geometry → mesh → solve → analyze → publish.
Built to Extend
Research-Ready and Modular by Design
PyFEM is designed to be extended. New elements, materials, solvers, or I/O modules can be added through its modular Python API. With HDF5 and VTK output, ParaView visualization, and RVE-based multiscale modeling, it fits naturally into modern research workflows.
</p>
A reproducible pipeline: geometry → mesh → solve → analyze → publish.
Artificial Intelligence
Optimised for AI simulation
PyFEM is engineered for seamless integration with the latest AI and machine learning tools, empowering you to automate, accelerate, and enhance your workflows. Effortlessly connect your simulations to Python-based AI frameworks, leverage real-time data exchange, and unlock new possibilities in predictive modeling, optimization, and intelligent design. With PyFEM’s flexible API, you’re not just running simulations—you’re building smart, adaptive solutions that keep you ahead of the curve.
Temperature, distortion, and stress all solved in a unified framework.
Theory Meets Code
From Classic Textbook to Executable Models
PyFEM accompanies the textbook Non-Linear Finite Element Analysis of Solids and Structures. Chapter-based examples translate theory into running simulations, allowing students and researchers to explore finite-element concepts by directly modifying and executing real code.
</p>
Non-Linear Finite Element Analysis of Solids and Structures
Ready to see PyFEM in action?
Clone the git repository and explore example cases, documentation, and benchmarks. Learn more about projects and courses.