There is a newer version of the record available.

Published September 25, 2025 | Version v9.4.0
Software Open

FElupe: Finite Element Analysis

Authors/Creators

Description

[9.4.0] - 2025-09-25

Added

  • Add a method to checkpoint a current state of deformation, state = SolidBody.checkpoint() and a method to restore checkpoints, SolidBody.restore(state). This is implemented for SolidBody, SolidBodyNearlyIncompressible and FieldContainer.
  • Add math.revolve_points(), to revolve only points instead of a Mesh. Previously, mesh.revolve(points, cells=None, cell_type=None, **kwargs)[0] had to be used.
  • Add math.rotate_points(), to rotate only points instead of a Mesh. Previously, mesh.rotate(points, cells=None, cell_type=None, **kwargs)[0] had to be used.
  • Add FieldContainer.revolve(), SolidBody.revolve() and SolidBodyNearlyIncompressible.revolve() to convert a axisymmetric field / solid body to a 3d field / solid body. Only implemented for the conversion of axisymmetric quads to hexahedrons. For top-level fields, a vertex-mesh is also supported.
  • Add fields, x0 = FieldContainer.merge() to simplify the handling of multiple items (solid bodies). The top-level field container x0 must be used for boundary conditions and in Job.evaluate(x0=x0).
  • Add a warning if FieldMixed() is called with axisymmetric=True or planestrain=True, more than one field n>1 and a given dim. This dimension is passed to the dual fields only.
  • Add support for the conversion of quad9 to hexahedron27 element types in mesh.revolve() and mesh.expand().
  • Add newtonrhapson.callback(dx, x, iteration, xnorm, fnorm, success) to provide a callback after each completed Newton iteration. This is available as Job.evaluate(callback=newton_callback), whereas a callback after each completed substep has to be provided in Job(callback=substep_callback).
  • Add a flag to plot MPC and point load either on the deformed (default) or undeformed mesh-points, MultiPointConstraint.plot(..., deformed=True), MultiPointContact.plot(..., deformed=True), PointLoad.plot(..., deformed=True).
  • Add math.svd() for the singular value decomposition of arrays with trailing axes.
  • Add newtonrhapson(..., progress_bar=None) which re-uses an existing tqdm progress bar. If provided, this progress bar must be manually closed. If None and verbose is True, a new progress bar is created.

Changed

  • Allow field containers to be included in the list of fields in FieldContainer(fields). If a field container is included, its sub-fields are unpacked.
  • Set custom attributes by keyword-arguments in FieldContainer(fields, **kwargs).
  • Show also the progress of Newton's method for Job.evaluate(verbose=True).
  • Switch to tqdm.auto for better progress bars in Jupyter notebooks.

What's Changed

  • Remove SolidBody._area_change by @adtzlr in https://github.com/adtzlr/felupe/pull/970
  • Add checkpoint() and restore() methods for solid bodies and field containers by @adtzlr in https://github.com/adtzlr/felupe/pull/972
  • Clear force and stiffness results in SolidBody.restore() by @adtzlr in https://github.com/adtzlr/felupe/pull/973
  • Add math.revolve_points() by @adtzlr in https://github.com/adtzlr/felupe/pull/974
  • Make restoring state variables optional by @adtzlr in https://github.com/adtzlr/felupe/pull/975
  • Add math.rotate_points() by @adtzlr in https://github.com/adtzlr/felupe/pull/976
  • Add SolidBody.revolve() to convert axisymmetric models to 3d by @adtzlr in https://github.com/adtzlr/felupe/pull/978
  • Add fields, x0 = FieldContainer.merge() by @adtzlr in https://github.com/adtzlr/felupe/pull/980
  • Enhance FieldContainer.merge() for FieldsMixed() by @adtzlr in https://github.com/adtzlr/felupe/pull/981
  • Enhance FieldContainer.init(): Allow field-containers in addition to fields by @adtzlr in https://github.com/adtzlr/felupe/pull/982
  • Add FieldContainer.revolve() by @adtzlr in https://github.com/adtzlr/felupe/pull/984
  • Enhance mesh.revolve() and mesh.expand(): Add support for quad9 to hexahedron27 by @adtzlr in https://github.com/adtzlr/felupe/pull/985
  • Replace logo and simplify readme by @adtzlr in https://github.com/adtzlr/felupe/pull/987
  • Add newtonrhapson(..., callback=None) by @adtzlr in https://github.com/adtzlr/felupe/pull/989
  • Tests: Enforce matplotlib.use("Agg") to avoid tcl-related errors by @adtzlr in https://github.com/adtzlr/felupe/pull/992
  • Enhance MultiPointConstraint.plot(..., deformed=True) by @adtzlr in https://github.com/adtzlr/felupe/pull/993
  • Add math.svd() by @adtzlr in https://github.com/adtzlr/felupe/pull/994
  • Show a progress for Newton's method by @adtzlr in https://github.com/adtzlr/felupe/pull/996
  • Enhance the progress monitoring of Newton's method by @adtzlr in https://github.com/adtzlr/felupe/pull/998
  • Switch to tqdm.auto for better progress bars in Jupyter by @adtzlr in https://github.com/adtzlr/felupe/pull/999

Full Changelog: https://github.com/adtzlr/felupe/compare/v9.3.0...v9.4.0

Notes

If you use this software, please cite it using these metadata.

Files

adtzlr/felupe-v9.4.0.zip

Files (7.1 MB)

Name Size Download all
md5:c547c97b66e7f0f473499a79452729bc
7.1 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/adtzlr/felupe/tree/v9.4.0 (URL)

Software