Skip to content

v7.14.0

Compare
Choose a tag to compare
@adtzlr adtzlr released this 11 Feb 15:20
· 1405 commits to main since this release

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

Full Changelog: v7.13.0...v7.14.0