Releases: adtzlr/felupe
Releases · adtzlr/felupe
v6.2.5
v6.2.4
v6.2.3
v6.2.2
v6.2.1
v6.2.0
[6.2.0] - 2022-12-16
Added
- Add Total-Lagrange
UserMaterialHyperelastic(fun, parallel=False, **kwargs)
based on optionaltensortrax
. Only available iftensortrax
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
[6.1.0] - 2022-12-10
Changed
- Enhance plotting with custom
x
- andy
-data inCharacteristicCurve.plot(x, y)
and allow a list of items for force evaluation inCharacteristicCurve(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
[6.0.0] - 2022-11-20
Added
- Add
project(mean=True)
to project cell mean-values to mesh-points. Nowproject()
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 withSolidBodyNearlyIncompressible()
. - Add
umat = UserMaterial(stress, elasticity, nstatevars=0, **kwargs)
with user-defined functions for the (first Piola-Kirchhoff) stress tensorP, statevars_new = umat.gradient([F, statevars], **kwargs)
and the according fourth-order elasticity tensorA = 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 onUserMaterialStrain()
andconstitution.linear_elastic_plastic_isotropic_hardening()
. - Add new math helpers
math.ravel()
andmath.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 tensorA = 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 methodFieldContainer(fields).values()
which returns the current field values.
Removed
- Remove unused
SolidBodyTensor()
andSolidBodyTensorNearlyIncompressible()
. - Remove unused
region
argument ofLinearElastic().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 methodvalues()
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
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
Full Changelog: v5.3.0...v5.3.1
v5.3.0
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 forMesh
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
forRegionBoundary().mesh.cells_faces
. - Set default pressure to zero in
SolidBodyPressure()
. - Take the mesh from the global
x0
-field ifx0
is passed tojob.evaluate(x0=...)
. - Fix missing update of global field
x0
injob.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
ofRegionBoundary
by @adtzlr in #307 - Add
MeshContainer
and string-representation forMesh
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 fieldx0
if present by @adtzlr in #320- Add
SolidBodyNearlyIncompressible(umat, field, bulk)
by @adtzlr in #323 - Fix missing update of
x0
injob.evaluate(x0)
after each completed substep by @adtzlr in #324
Full Changelog: v5.2.0...v5.3.0