[mgis.fenics] Small strain visco-plasticity with a blackbox update
Hello,
I am new to the mgis.fenics module, I wanted to run some small strain visco-plasticity problems on fenics with the help of this module. I am looking at the demo codes but still a bit struggle to figure out how to get the codes together for my problem. The main part being that the constitutive law update would be a blackbox function, that at each given Gauss point, taking in stress, total strain, visco-plastic strain, time step size, and it outputs the updated stress, visco-plastic strain increment, and the algorithmic tangent. Could anybody provide some tips on how to put this code together? Thank you!
Hi @jingyetan, Did you have a look at the tutorials ? https://thelfer.github.io/mgis/web/mgis_fenics.html Note also that mgis.fenics is more or less deprecated. If you ever need FEniCS-X support, tell us.
Hi @jingyetan, Did you have a look at the tutorials ? https://thelfer.github.io/mgis/web/mgis_fenics.html Note also that mgis.fenics is more or less deprecated. If you ever need FEniCS-X support, tell us.
Yes, I am a bit confused by the MFrontNonlinearMaterial class, it looks like I can only choose from material laws predefined in the module? I am not sure how to go about incorporating my own blackbox update.
Also I am sticking with fenics 2019 so it should be ok with mgis?
Many thanks!
it looks like I can only choose from material laws predefined in the module?
No, you can use any behaviour written using the MFront code generator: https://thelfer.github.io/tfel/web/index.html
Also I am sticking with fenics 2019 so it should be ok with mgis?
For mgis.fencis, yes.
However, @bleyerj has a developed an new library interfacing fenics-x and mgis.
-
mgis.fenicsis indeed intended for MFront behavior only in legacy FEniCS - https://github.com/bleyerj/dolfinx_materials is my new project which supports MFront and generic Python behaviors in the new FEniCSx
If you want to understand how everything work I would suggest looking at
https://bleyerj.github.io/comet-fenicsx/tours/nonlinear_problems/linear_viscoelasticity_jax/linear_viscoelasticity_jax.html
with FEniCSx, or,
https://comet-fenics.readthedocs.io/en/latest/demo/plasticity_mfront/plasticity_mfront.py.html
and replace everything MFront-related, especially
mgis_bv.integrate(m, it, 0, 0, m.n)with your own implementation.