Skip to content

Presubmission Inquiry for FElupe #211

@adtzlr

Description

@adtzlr

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

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.

grafik

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:

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

No one assigned

    Type

    No type

    Projects

    Status

    pre-submission

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions