Skip to content

Releases: adtzlr/felupe

v6.2.5

01 Jan 23:16
44aeb25
Compare
Choose a tag to compare

[6.2.5] - 2023-01-02

Fixed

  • Once again fix init if tensortrax is not installed.

What's Changed

  • Fix import of UserMaterialHyperelastic by @adtzlr in #367

Full Changelog: v6.2.4...v6.2.5

v6.2.4

01 Jan 22:41
49fd5f6
Compare
Choose a tag to compare

[6.2.4] - 2023-01-01

Changed

  • Update actions used in CI/CD workflows.

v6.2.3

01 Jan 19:45
e279d32
Compare
Choose a tag to compare

[6.2.3] - 2023-01-01

Changed

  • Remove setup.cfg, change pyproject.toml and store the version tag only once within the source code (__about__.py).

What's Changed

Full Changelog: v6.2.2...v6.2.3

v6.2.2

20 Dec 13:39
85b564a
Compare
Choose a tag to compare

[6.2.2] - 2022-12-20

Fixed

  • Fix init if tensortrax is not installed.

What's Changed

  • Fix init if tensortrax is not installed. by @adtzlr in #360

Full Changelog: v6.2.1...v6.2.2

v6.2.1

19 Dec 09:43
e208a2b
Compare
Choose a tag to compare

[6.2.1] - 2022-12-19

Fixed

  • Fix version string.

What's Changed

Full Changelog: v6.2.0...v6.2.1

v6.2.0

16 Dec 13:05
Compare
Choose a tag to compare

[6.2.0] - 2022-12-16

Added

  • Add Total-Lagrange UserMaterialHyperelastic(fun, parallel=False, **kwargs) based on optional tensortrax. Only available if tensortrax is installed.
  • Add constitutive isotropic hyperelastic model formulations to be used with UserMaterialHyperelastic() (constitution.ogden(C, mu, alpha), etc.).

Auto-Generated Release-Notes

What's Changed

  • Add UserMaterialHyperelastic() by @adtzlr in #355
  • Make tensortrax optional by @adtzlr in #357
  • Add models for isotropic hyperelasticity UserMaterialHyperelastic() by @adtzlr in #358

Full Changelog: v6.1.0...v6.2.0

v6.1.0

10 Dec 12:09
Compare
Choose a tag to compare

[6.1.0] - 2022-12-10

Changed

  • Enhance plotting with custom x- and y-data in CharacteristicCurve.plot(x, y) and allow a list of items for force evaluation in CharacteristicCurve(items=[...]) to be passed.
  • Enhance math.linsteps(points=[0, 5, 0], num=[5, 10]) by supporting a list of substeps.
  • Enhance compression of shear loadcase: Apply the compression on the bottom and the top dof.shear(compression=(0, 0)).

Auto-Generated Release-Notes

What's Changed

  • Enhance CharacteristicCurve(items=[...]).plot(x, y) by @adtzlr in #350
  • Enhance linsteps by supporting a list of substeps by @adtzlr in #352
  • Enhance dof.shear(compression=(0, 0) by @adtzlr in #354

Full Changelog: v6.0.0...v6.1.0

v6.0.0

20 Nov 20:20
Compare
Choose a tag to compare

[6.0.0] - 2022-11-20

Added

  • Add project(mean=True) to project cell mean-values to mesh-points. Now project() supports Triangles and Tetrahedrons.
  • Add RegionBoundary.mesh_faces() for a mesh with face-cells on the selected boundary of a region.
  • Add pseudo-elastic material OgdenRoxburgh() which may be used with SolidBodyNearlyIncompressible().
  • Add umat = UserMaterial(stress, elasticity, nstatevars=0, **kwargs) with user-defined functions for the (first Piola-Kirchhoff) stress tensor P, statevars_new = umat.gradient([F, statevars], **kwargs) and the according fourth-order elasticity tensor A = umat.hessian([F, statevars], **kwargs) based on the deformation gradient.
  • Add UserMaterialStrain() for small-strain based user-defined material formulations with an umat-interface suitable for elastic-plastic frameworks.
  • Add LinearElasticPlasticIsotropicHardening() which is based on UserMaterialStrain() and constitution.linear_elastic_plastic_isotropic_hardening().
  • Add new math helpers math.ravel() and math.reshape().
  • Add optional axis argument on which the norm is evaluated math.norm(axis=None).

Changed

  • Unify material definition with methods for the stress P, statevars_new = umat.gradient([F, statevars]) and the elasticity tensor A = umat.hessian([F, statevars]). This breaks support for materials defined by matadi<=0.1.10.
  • Do not broadcast the (constant) elasticity tensor for linear-elastic materials as einsumt>=0.9.3 supports broadcasting along the parallel-executed dimension.
  • Change not-updating attribute of FieldContainer(fields).values to a method FieldContainer(fields).values() which returns the current field values.

Removed

  • Remove unused SolidBodyTensor() and SolidBodyTensorNearlyIncompressible().
  • Remove unused region argument of LinearElastic().hessian().

Auto-Generated Release-Notes

What's Changed

  • Add project(mean=True) by @adtzlr in #329
  • Add RegionBoundary.mesh_faces() by @adtzlr in #334
  • Add pseudo-elastic material OgdenRoxburgh() by @adtzlr in #335
  • Unify umat for hyperelastic and tensor-based material formulations by @adtzlr in #339
  • Do not broadcast linear-elastic elasticity tensor by @adtzlr in #342
  • FieldContainer: Change attribute values to method values() by @adtzlr in #344
  • Add UserMaterialStrain() by @adtzlr in #346
  • Enhance and Fix the Documentation by @adtzlr in #347

Full Changelog: v5.3.1...v6.0.0

v5.3.1

03 Nov 20:16
a0bfe3b
Compare
Choose a tag to compare

Changelog since [5.3.0] - 2022-11-03

Fixed

  • Fix volume evaluation of (nearly) incompressible solids for axisymmetric fields.

Auto-Generated Release-Notes

What's Changed

  • Fix incompressible solid: Wrong volume evaluation for axisymmetric fields by @adtzlr in #327

Full Changelog: v5.3.0...v5.3.1

v5.3.0

03 Nov 14:58
Compare
Choose a tag to compare

Changelog since [5.2.0] - 2022-10-08

Added

  • Add optional pre-compression to shear-loadcase dof.shear(compression=0.0).
  • Add MeshContainer and string-representation for Mesh objects.
  • Add a mesh-reader using meshio mesh.read(filename, ...).
  • Add SolidBodyNearlyIncompressible(umat, field, bulk) for (nearly) incompressible solids and a given (distortional-part only) constitutive material formulation. This is a pure displacement-based alternative to the three-field-formulation technique.

Changed

  • Support an optional user-defined meshio-object in Job().evaluate(mesh=None, filename="result.xdmf").
  • Support a distortional-part only Neo-Hookean material formulation with no bulk modulus defined NeoHooke(mu=1.0).

Fixed

  • Fix missing ArbitraryOrderLagrangeElement.points attribute.
  • Fix ignored mask only_surface=True for RegionBoundary().mesh.cells_faces.
  • Set default pressure to zero in SolidBodyPressure().
  • Take the mesh from the global x0-field if x0 is passed to job.evaluate(x0=...).
  • Fix missing update of global field x0 in job.evaluate(x0) after each completed substep.

Auto-Generated Release-Notes

What's Changed

  • Add points attribute to lagrange element by @adtzlr in #301
  • Add pre-compression to shear loadcase by @adtzlr in #305
  • Fix ignored surface mask for cells_faces of RegionBoundary by @adtzlr in #307
  • Add MeshContainer and string-representation for Mesh objects by @adtzlr in #312
  • Enhance Mesh-Container by @adtzlr in #313
  • Add mesh.read(filename, ...) by @adtzlr in #316
  • job.evaluate(x0=...): Take mesh from global field x0 if present by @adtzlr in #320
  • Add SolidBodyNearlyIncompressible(umat, field, bulk) by @adtzlr in #323
  • Fix missing update of x0 in job.evaluate(x0) after each completed substep by @adtzlr in #324

Full Changelog: v5.2.0...v5.3.0