finite element analysis for continuum mechanics of solid bodies
GPL-3.0 License
Published by adtzlr almost 3 years ago
mesh.as_discontinous()
to mesh.disconnect()
.constitution.Mixed
to constitution.ThreeFieldVariation
.unstack
to offsets
as return of dof-partition and all subsequent references.newtonrhapson
, project
, save
) and constitution (NeoHooke
, LinearElastic
and ThreeFieldVariation
) to FElupe's namespace.Published by adtzlr almost 3 years ago
Hexahedron()
element and a quadrature scheme GaussLegendre(order=1, dim=3)
as RegionHexahedron
, etc.clamped=False
) as default option for uniaxial loading dof.uniaxial
Published by adtzlr almost 3 years ago
quadrature.inv()
for Gauss-Legendre schemes.mesh.as_discontinous()
.tools.project()
to project (and average) values at quadrature points to mesh points.quadpy
dependency and use built-in polynomials of numpy
for Gauss-Legendre calculation.math.tovoigt()
function.tools.topoints()
due to different quadrature and cell ordering.Published by adtzlr about 3 years ago
sparse
is not installed.Published by adtzlr about 3 years ago
basis
to function
and from basisprime
to gradient
).umat.gradient(F, mu=1.0)
).ndim
to dim
.test_element.py
according to changes in element methods.grad
argument in region(grad=False)
has to be enforced by the user.Published by adtzlr about 3 years ago
A lot of unused, undocumented or deprecated features have been removed. Test coverage is now > 97%. Docs have been simplified, re-tested and enhanced. The code structure is now easier to understand as all sub-modules are located in subfolders. Constitution has been simplified, Automatic Differentation capability is now outsourced to a separate package matadi
.
Have fun 🏖️
Published by adtzlr about 3 years ago
Changelog
Bugfixes:
r*s*t*(1-r-s-t)
[1]. This prevents convergence problems.Enhancements:
point_data
and cell_data
to save optionMultiPointContact
(no friction), similar to MultiPointConstraint
(Grad(u), P, F)
template for Materials with automatic differentiation using CasADiIntegralForm
(lineaform): allow arbitrary dimension of fun
if grad_v=None
(non-parallel only)grad
argument to Region
(default is True
)FieldMixed
class for mixed-field problemsPublished by adtzlr about 3 years ago
Now all IntegralForms have the same arguments.
Published by adtzlr about 3 years ago
felupe.constitution
now contains ad.Material
, ad.Materialup
and ad.MaterialupJ
for single-, two- and three-field formulations. Only the strain energy density function has to be defined - stress and elasticity tensors are created by automatic differentiation.
import felupe as fe
import casadi as ca
def W(F, mu, bulk):
"Strain energy density function for Neo-Hookean material formulation."
J = ca.det(F)
C = F.T @ F
I_C = ca.trace(C)
return mu / 2 * (I_C * J ** (-2 / 3) - 3) + bulk / 2 * (J - 1) ** 2
umat = fe.constitution.ad.Material(W, mu=1.0, bulk=2.0)
P = umat.f(F)
A = umat.A(F)
Published by adtzlr over 3 years ago
Published by adtzlr over 3 years ago
This release adds initial support for axisymmetric problems with rudimental support for fe.utils.axito3d()
conversion. Also, Triangle & Tetrahedral elements are supported (experimental). Lots of small improvements since v0.0.6
Published by adtzlr over 3 years ago
Published by adtzlr over 3 years ago
This is a minimal release of felupe based on v0.0.5 containing two scripts which results are used for further postprocessing in a paper.
Published by adtzlr over 3 years ago
Published by adtzlr over 3 years ago
Published by adtzlr over 3 years ago
Published by adtzlr over 3 years ago