-
Notifications
You must be signed in to change notification settings - Fork 36
Description
Submitting Author: Andreas Dutzler (@adtzlr)
Package Name: FElupe
One-Line Description of Package: Finite element analysis for continuum mechanics of solid bodies.
Repository Link: https://github.com/adtzlr/felupe
EiC: TBD
Code of Conduct & Commitment to Maintain Package
- I agree to abide by pyOpenSci's Code of Conduct during the review process and in maintaining my package after should it be accepted.
- I have read and will commit to package maintenance after the review as per the pyOpenSci Policies Guidelines.
Description
- Include a brief paragraph describing what your package does:
FElupe is a Python finite element analysis package focusing on the formulation and numerical solution of nonlinear problems in continuum mechanics of solid bodies. Easy-to-learn classes are provided to simulate the nonlinear deformation of hyperelastic solid bodies, see Getting Started. The constitutive material formulation of a hyperelastic solid body may be defined by its strain energy density function only (gradient and hessian are carried out by optional automatic differentiation). Strain energy functions for selected hyperelastic models are included. FElupe has only few dependencies, is a pure Python package but is also efficient enough for rubber-like structures. Several extension packages exist, e.g. to use a different automatic differentation backend or an interactive plot window.
Community Partnerships
We partner with communities to support peer review with an additional layer of
checks that satisfy community requirements. If your package fits into an
existing community please check below:
- Astropy: My package adheres to Astropy community standards
- Pangeo: My package adheres to the Pangeo standards listed in the pyOpenSci peer review guidebook
Scope
-
Please indicate which category or categories this package falls under:
- Data retrieval
- Data extraction
- Data processing/munging
- Data deposition
- Data validation and testing
- Data visualization
- Workflow automation
- Citation management and bibliometrics
- Scientific software wrappers
- Database interoperability
Domain Specific
- Geospatial
- Education
- Explain how and why the package falls under these categories (briefly, 1-2 sentences). For community partnerships, check also their specific guidelines as documented in the links above. Please note any areas you are unsure of:
FElupe relies on meshio to read mesh files or uses an instance of a PyVista unstructured grid to load a mesh (Data retrieval). For completed simulations, it is possible to extract the strains or stresses (Data extraction). Meshes, fields and solid bodies provide methods for Data visualization using PyVista (see e.g. pyvista/pyvista#2133 (comment)). Input data, i.e. typically a mesh of a solid body, is used to simulate the deformation for different boundary conditions and external loads (Data processing).
- Who is the target audience and what are the scientific applications of this package?
FElupe is great for teaching, scientific research as well as for mid-sized industry-problems related to the deformation of solid bodies. It has already been used in scientific articles which are listed in the README.
- Are there other Python packages that accomplish similar things? If so, how does yours differ?
Yes, there is scikit-fem, FEniCS, GetFEM and probably some others. While scikit-fem is definitely lightweight and easy-to-install, I found out that it is typically too slow for running hyperelastic simulations, e.g. the deformation of a rubber-like solid (see also my initial questions / posts in kinnala/scikit-fem#616). FEniCS on the other hand has a great community but the install-entry-barrier is much higher compared to a pure PyPI Python package. The same also applies for GetFEM, because both projects provide Python packages for their compiled code. I was looking for a more lightweight Python package but also efficient enough for simulating typical rubber-like structures. Hence, I started working on FElupe in 2021.
Instead of assembling general weak forms like scikit-fem and FEniCS, FElupe follows a more Abaqus-like UMAT (user material) approach for constitutive material formulations of solid bodies, see e.g. ConstitutiveMaterial or Hyperelastic.
- Any other questions or issues we should be aware of:
The community extension packages of FElupe are considered as community packages and they are not part of this (pre) submission. Thanks!
P.S. Have feedback/comments about our review process? Leave a comment here
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status