Published March 8, 2024
| Version v7.19.0
Software
Open
FElupe: Finite Element Analysis
Authors/Creators
Description
[7.19.0] - 2024-03-08
Added
- Add
FieldDual(disconnect=True)for a dual (secondary) field with an optionally disconnected mesh. This also enablesFieldsMixed(disconnect=True)in mixed fields. - Add a quadrature scheme for integrating the surface of a unit hemisphere
BazantOh(n=21). - Add
NearlyIncompressibleas a simplified version ofThreeFieldVariation. A constitutive material formulation on the distortional part of a strain energy function in terms of the deformation gradient has to be provided, e.g. byumat = NearlyIncompressible(NeoHooke(mu=1), bulk=5000). - Add optional kwargs to a job-callback
Job(callback=lambda stepnumber, substepnumber, substep, **kwargs: None, **kwargs)andCharacteristicCurve(callback=lambda stepnumber, substepnumber, substep, **kwargs: None, **kwargs). - Add
DiscreteGeometrypropertiesx,yandzto access the columns of the points-array. - Add a new math-function
math.equivalent_von_mises(A)for three-dimensional second-order tensors. - Add the evaluation of the equivalent von Mises Cauchy stress as cell-data in
ViewSolid, available asSolid.plot("Equivalent of Cauchy Stress"). - Add
mesh.stack(meshes)as method toMeshContainer.stack(). Note that this only supports mesh containers with meshes of same cell-types. - Add
NeoHooke.gradient(out=None)andNeoHooke.hessian(out=None)for a location to store the results. Also forNeoHookeCompressible. - Add
out-keyword togradient()andhessianofNearlyIncompressibleandThreeFieldVariation. - Add optional initial state variables in
ViewMaterial(statevars=None)andViewMaterialIncompressible(statevars=None). - Add the L2-projection as
tools.project(values, region, average=True, mean=False, dV=None, solver=scipy.sparse.linalg.spsolve)to project given values at quadrature points to mesh-points. This replaces the oldtools.project(values, region, average=True, mean=False)in a backward-compatible way. The new method is computationally more expensive but is also much more flexible. - Add fifth-order quadrature schemes
quadrature.Triangle(order=5)andquadrature.Tetrahedron(order=5). - Add
Region.copy(mesh=None, element=None, quadrature=None)to copy a region and re-evaluate this copy if necessary.
Changed
- Rename
Mesh.save()toMesh.write()and addMesh.save()as an alias toMesh.write(). - Enhance the performance of
NeoHooke,NeoHookeCompressible,SolidBodyandSolidBodyNearlyIncompressible. - Enhance the performance of
math.inv(out=None)andmath.det(out=None). - Use only the offical API of
tensortrax. A workaround is used to ensure compatibility withtensortrax<= v0.17.1. - Pass optional keyword-arguments in the plot-methods
ViewMaterial.plot(**kwargs)andViewMaterialIncompressible.plot(**kwargs)to the matplotlib axes objectax.plot(**kwargs). - Only add
off_screenandnotebookkeyword-arguments topyvista.Plotter(**kwargs)if they areTrue. This is needed for not ignoring a global variable likepyvista.OFF_SCREEN = True. - Enforce
verbose=0if the environmental variable"FELUPE_VERBOSE"is"false". This is useful for running the examples when building the documentation. - Don't require a
bilinearforminFormItem(bilinearform=None). An emptyFormItemis now a valid item in aStep. For empty vectors/matrices, the shape is inferred fromsum(FieldContainer.fieldsizes)instead ofFieldContainer.fields[0].values.size. - Rename the old-project method to
tools.extrapolate(values, region, average=True, mean=False)which extrapolates values at quadrature points to mesh-points. - Change the sorting of quadrature points for triangles and tetrahedrons (due to internal code simplifications).
- The reload-method of a region does only re-evaluate it if at least one of the arguments are not None
Region.reload(mesh, element, quadrature).
Fixed
- Fix missing support for third-order- and second-order tensor combinations to
math.dot(A, B, mode=(2,3))andmath.ddot(A, B, mode=(2,3)). - Fix error if
FieldDualis in the fields of aFieldContainerforIntegralForm. - Fix
math.inv(A)for arrays with shapeA.shape = (1, 1, ...). Also raise an error ifshape[:2]not in[(3, 3), (2, 2), (1, 1)]. - Raise an error in
math.det(A)ifA.shape[:2]not in[(3, 3), (2, 2), (1, 1)]. - Fix mutable keyword-arguments in
SolidBody._vector(kwargs={})bySolidBody._vector(kwargs=None). Also for._matrix()and forSolidBodyNearlyIncompressible. - Fix wrong shape and the resulting error during assembly in
fem.assembly.expression.Formfor the integration of a linear form with different mesh- and field-dimensions.
What's Changed
- Rename
Mesh.save()toMesh.write()and addMesh.save()as an alias of it by @adtzlr in https://github.com/adtzlr/felupe/pull/626 - Refactor constitution by @adtzlr in https://github.com/adtzlr/felupe/pull/628
- Add
FieldDualfor the dual (secondary) fields in mixed fields by @adtzlr in https://github.com/adtzlr/felupe/pull/629 - Add quadrature scheme
BazantOh()by @adtzlr in https://github.com/adtzlr/felupe/pull/632 - Add
NearlyIncompressible(material, bulk)by @adtzlr in https://github.com/adtzlr/felupe/pull/633 - Add
math.dot(A, B, mode=(2,3))andmath.ddot(A, B, mode=(2,3))by @adtzlr in https://github.com/adtzlr/felupe/pull/641 - Add optional kwargs to
Job(callback=lambda i, j, res, **kwargs: None, **kwargs)by @adtzlr in https://github.com/adtzlr/felupe/pull/642 - Add support for
FieldDualinIntegralFormby @adtzlr in https://github.com/adtzlr/felupe/pull/643 - Fix
math.inv(A)forA.shape[:2] == (1, 1)by @adtzlr in https://github.com/adtzlr/felupe/pull/644 - Add
FieldDual(disconnect=None). by @adtzlr in https://github.com/adtzlr/felupe/pull/646 - Add
DiscreteGeometrypropertiesx,yandzby @adtzlr in https://github.com/adtzlr/felupe/pull/648 - Add
math.equivalent_von_mises(A)by @adtzlr in https://github.com/adtzlr/felupe/pull/650 - Add
MeshContainer.stack()by @adtzlr in https://github.com/adtzlr/felupe/pull/652 - Enhance the performance by @adtzlr in https://github.com/adtzlr/felupe/pull/654
- Enhance the performance of ``math.inv(out=None)` by @adtzlr in https://github.com/adtzlr/felupe/pull/655
- Improve the performance of
math.det(A, out=None)by @adtzlr in https://github.com/adtzlr/felupe/pull/659 - Use only the official API of
tensortrax.mathby @adtzlr in https://github.com/adtzlr/felupe/pull/667 - Only add
off_screenandnotebookkeyword-arguments topyvista.Plotter(**kwargs)if they areTrueby @adtzlr in https://github.com/adtzlr/felupe/pull/670 - Docs: Examples are generated by Sphinx-Gallery by @adtzlr in https://github.com/adtzlr/felupe/pull/671
- Fix error during assembly in
Formfor different mesh- and field-dimensions by @adtzlr in https://github.com/adtzlr/felupe/pull/675 - Add the L2-projection and replace it with the old
tools.project()by @adtzlr in https://github.com/adtzlr/felupe/pull/683
Full Changelog: https://github.com/adtzlr/felupe/compare/v7.18.0...v7.19.0
Notes
Files
adtzlr/felupe-v7.19.0.zip
Files
(14.2 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:0a08e7c528e827493031372a3351d157
|
14.2 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/adtzlr/felupe/tree/v7.19.0 (URL)