EasyFEA documentation#

🧭 Overview#
EasyFEA is a user‑friendly Python library that simplifies finite element analysis by abstracting complex PDE formulations. It is flexible and supports a range of linear and nonlinear simulations with minimal setup. You will find below the finite element analysis that you can conduct using EasyFEA:
Linear elastic simulations:
static,dynamic,contact,homogenizationandmesh optimization.Hyperelastic simulations:
staticanddynamicin theLagrangianframework.Thermal simulations:
staticandtransient.Phase-field damage simulations for quasi-static brittle fracture: advanced
2Dand3Dsimulations forisotropic,transversely isotropic, andanisotropicmaterials.Weak forms simulations:
static,transientanddynamicforlinearornon-linearproblems.
📸 Explore the interactive gallery to visualize simulation results.
For each simulation, users create a Mesh and a _IModel. Once the simulation has been set up, defining the boundary conditions, solving the problem and visualizing the results is straightforward.
Numerous examples of mesh creation are available in the /examples/Meshes gallery.
The simplest and quickest introduction is available in the Beginner’s Guide.
⚖️ License#
Copyright (C) 2021-2024 Université Gustave Eiffel. Copyright (C) 2025-2026 Université Gustave Eiffel, INRIA.
EasyFEA is distributed under the terms of the GNU General Public License v3.0 only, see LICENSE.txt and CREDITS.md for more information.
💻 Installation#
EasyFEA can be easily installed from PyPI using pip, compatible with Python versions 3.9 through 3.13:
pip install EasyFEA
You can also install EasyFEA with the source code using the pip install . command in the downloaded or cloned EasyFEA folder.
📦 Dependencies#
EasyFEA uses several libraries, such as NumPy and Gmsh - as such, the following projects are required dependencies of EasyFEA:
🧪 Optional Dependencies#
EasyFEA includes optional dependencies to reduce resolution time, plot results, or perform DIC:
matplotlib- Plotting package.pyvista- Plotting package.pypardiso(Python > 3.8 & Intel oneAPI) - Library for solving large systems of sparse linear equations.imageioandimageio-ffmpeg- Library for reading and writing a wide range of image, video, scientific, and volumetric data formats.meshio- I/O for many mesh formats.opencv-python- Computer Vision package.pygltflib- Python library for reading, writing and managing 3D objects in the Khronos Group gltf and gltf2 formats.usd-core- Pixar’s Universal Scene Description.
🔤 Naming conventions#
EasyFEA uses Object-Oriented Programming (OOP) with the following naming conventions:
PascalCasingfor classescamelCasingfor propertiesSnake_CasingorSnake_casingfor functions/methods
In this library, objects can contain both public and private properties or functions.
Private parameters or functions are designated by a double underscore, such as __privateParam. In addition, parameters or functions beginning with an underscore, such as _My_Function are accessible to advanced users, but should be used with caution.
✍️ Citing EasyFEA#
If you are using EasyFEA as part of your scientific research, please contribute to the scientific visibility of the project by citing it as follows.
Noel M., EasyFEA: a user-friendly Python library that simplifies finite element analysis, https://hal.science/hal-04571962
Bibtex:
@softwareversion{noel:hal-04571962v1,
TITLE = {{EasyFEA: a user-friendly Python library that simplifies finite element analysis}},
AUTHOR = {Noel, Matthieu},
URL = {https://hal.science/hal-04571962},
NOTE = {},
INSTITUTION = {{Universit{\'e} Gustave Eiffel}},
YEAR = {2024},
MONTH = Apr,
SWHID = {swh:1:dir:ffb0e56fe2ce8a344ed27df7baf8f5f1b58700b5;origin=https://github.com/matnoel/EasyFEA;visit=swh:1:snp:88527adbdb363d97ebaee858943a02d98fc5c23c;anchor=swh:1:rev:ee2a09258bfd7fd60886ad9334b0893f4989cf35},
REPOSITORY = {https://github.com/matnoel/EasyFEA},
LICENSE = {GNU General Public License v3.0},
KEYWORDS = {Finite element analyses ; Computational Mechanics ; Numerical Simulation ; Phase field modeling of brittle fracture ; Linear elasticity ; Euler-Bernoulli beam ; DIC - Digital Image Correlation ; User friendly ; Object oriented programming ; Mesh Generation},
HAL_ID = {hal-04571962},
HAL_VERSION = {v1},
}
📘 Projects and Publications#
📝 Scientific Publications#
Noel M. et al., Parameter identification for phase-field modeling of brittle fracture in spruce wood - Engineering Fracture Mechanics, https://doi.org/10.1016/j.engfracmech.2025.111304
🧪 Research Projects#
🤝 Contributing#
EasyFEA is an emerging project with a strong commitment to growth and improvement. Your input and ideas are invaluable to me. I welcome your comments and advice with open arms, encouraging a culture of respect and kindness in our collaborative journey towards improvement.
To learn more about contributing to EasyFEA, please consult the Contributing Guide.
Contents#
- Gallery
- Beginner’s Guide
- How-to Guides
- Examples
- Euler-Bernoulli and Timoshenko beam simulations
- Digital Image Correlation (DIC) analyses
- Hyperelastic simulations
- Linearized elastic simulations
- “MachineLearning” tests
- Meshes
- PhaseField damage simulations for quasi-static brittle fracture
- Thermal simulations
- Weak forms simulations
- API Reference