EasyFEA documentation#

🧭 Overview#
EasyFEA is a user-friendly Python library that simplifies finite element analysis. It is flexible and supports different types of simulations without requiring users to handle complex PDE formulations. 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.Euler-Bernoulli beam simulations:
static.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.numba- Compiling Python code using LLVM.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.