There is a newer version of the record available.

Published February 11, 2024 | Version v7.14.0

FElupe: Finite Element Analysis

Authors/Creators

Description

[7.14.0] - 2024-02-11

Added

  • Add optional output location for FieldContainer.extract(out=None).
  • Add Mesh.update(callback=None). This is especially useful if the points array of a mesh is changed and an already existing instance of a region has to be reloaded: Mesh.update(points=new_points, callback=region.reload).
  • Add ax = FieldContainer.imshow() which acts as a wrapper on top of the img = FieldContainer.screenshot(filename=None) method. The image data is passed to a matplotlib figure and the ax object is returned.
  • Add ax = Mesh.imshow() which acts as a wrapper on top of the img = Mesh.screenshot(filename=None) method. The image data is passed to a matplotlib figure and the ax object is returned.
  • Add view-methods for SolidBody and SolidBodyNearlyIncompressible (same as already implemented for mesh and fields).
  • Add lists with norms of values and norms of the objective function in tools.NewtonResult(xnorms=None, fnorms=None).
  • Add lists of norms of the objective function as attribute to Job.fnorms.
  • Add new method to Mesh for getting point ids next to a given point coordinate Mesh.get_point_ids(value).
  • Add new method to Mesh for getting cells attached to a given point coordinate Mesh.get_cell_ids(point_ids).
  • Add new method to Mesh for getting neighbour cells Mesh.get_cell_ids_neighbours(cell_ids).
  • Add new method to Mesh for getting shared points between neighbour cells Mesh.get_point_ids_shared(cell_ids_neighbours).
  • Add new method to Mesh for getting points on regular grids which are located at corners Mesh.get_point_ids_corners().
  • Add new method to Mesh for modifying the cell connectivity at corners Mesh.modify_corners(point_ids=None), supported for regular quad and hexahedron meshes.

Changed

  • Pass optional keyword-arguments in math.dot(**kwargs) to the underlying einsum-calls.
  • Enhance the performance of math.cdya() by reducing the number of (intermediate) arrays to be created from 4 to 2.
  • Use fixed output locations for the extracted field-gradients and the integrated stiffness matrices in SolidBody and SolidBodyNearlyIncompressible. This enhances the performance.
  • Change default filename in Mesh.screenshot() from filename="field.png" to filename="mesh.png".
  • Change the return value on job-evaluation from None = Job.evaluate() to job = Job.evaluate().
  • Change implementation of LinearElasticLargeStrain from NeoHooke to NeoHookeCompressible.
  • Do not invoke pyvista.start_xvfb() on a posix-os. If required, run it manually.
  • Rename tools._newton.Result to tools._newton.NewtonResult and add it to the public API as tools.NewtonResult because this class is returned as a result of Newton's method.
  • Rename the r-arguments of tools.force() and tools.moment() to forces.
  • Rename the point-argument of tools.moment() to centerpoint.
  • Rename the r-argument in tools.save() to forces. Remove the unused argument converged.
  • Change the default file-extension from .vtk to .vtu in tools.save(filename="result.vtu").
  • Change the default values of the gravity vector to zeros if gravity=None in SolidBodyGravity(field, gravity=None, density=1.0).

Fixed

  • Fix tools.moment(). Use math.cross(). The old implementation was completely wrong!

What's Changed

  • Enhance performance of cdya() and pass kwargs in dot() by @adtzlr in https://github.com/adtzlr/felupe/pull/593
  • Add output location for field.extract(out=None) by @adtzlr in https://github.com/adtzlr/felupe/pull/594
  • Add out-locations to the integral forms and use them in the solid bodies by @adtzlr in https://github.com/adtzlr/felupe/pull/595
  • Add Mesh.update(callback=None) by @adtzlr in https://github.com/adtzlr/felupe/pull/596
  • Do not invoke pyvista.start_xvfb() on a posix-os by @adtzlr in https://github.com/adtzlr/felupe/pull/597
  • Add Mesh.imshow() and FieldContainer.imshow() by @adtzlr in https://github.com/adtzlr/felupe/pull/598
  • Change return value in job = Job.evaluate() by @adtzlr in https://github.com/adtzlr/felupe/pull/599
  • Add view-methods for solid bodies by @adtzlr in https://github.com/adtzlr/felupe/pull/600
  • Change implementation of LinearElasticLargeStrain from NeoHooke to NeoHookeCompressible by @adtzlr in https://github.com/adtzlr/felupe/pull/601
  • Rename tools._newton.Result to tools.NewtonResult by @adtzlr in https://github.com/adtzlr/felupe/pull/603
  • Fix tools.moment(field, forces, boundary, centerpoint=np.zeros(3)) by @adtzlr in https://github.com/adtzlr/felupe/pull/605
  • Add tools.NewtonResult(xnorms=None, fnorms=None) by @adtzlr in https://github.com/adtzlr/felupe/pull/606
  • Rename tools.save()-argument r to forces by @adtzlr in https://github.com/adtzlr/felupe/pull/607
  • Add new methods to Mesh by @adtzlr in https://github.com/adtzlr/felupe/pull/608
  • Rename arguments of new Mesh-methods by @adtzlr in https://github.com/adtzlr/felupe/pull/609
  • Remove fig-argument in CharacteristicCurve.plot(ax=None) by @adtzlr in https://github.com/adtzlr/felupe/pull/610

Full Changelog: https://github.com/adtzlr/felupe/compare/v7.13.0...v7.14.0

Notes

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

Files

adtzlr/felupe-v7.14.0.zip

Files (14.9 MB)

Name Size Download all
md5:167affedd8e8ef8d12ef3d2e72ab97f4
14.9 MB Preview Download

Additional details

Related works

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