adtzlr / felupe

:mag: finite element analysis for continuum mechanics of solid bodies
https://felupe.readthedocs.io/
GNU General Public License v3.0
75 stars 11 forks source link

Newton-Rhapson: Add field.extract() arguments #138

Closed adtzlr closed 2 years ago

adtzlr commented 2 years ago

...in order to use a linear-elastic material or any other material based on infinitesimal strains with this high-level function newtonrhapson.

also see #137

It is also necessary to handle the initial stress contribution to the tangent stiffness.

Tasks:

adtzlr commented 2 years ago

If matadi is used everything is ok because its linear-elastic material is implemented in a hyperelastic framework, which is based on the deformation gradient (the gradient of the displacement field + identity matrix). This serves as a temporary workaround:

mat = matadi.MaterialHyperelastic(
    fun=matadi.models.linear_elastic, 
    mu=1.0, 
    lmbda=3.0,
)

umat = felupe.MatadiMaterial(mat)

and evaluate stress and elasticity tensor as

stress = umat.gradient(F)
elasticity = umat.hessian(F)