Ferrite.jl icon indicating copy to clipboard operation
Ferrite.jl copied to clipboard

incompressible_elasticity.jl example needs improvement

Open bcsj opened this issue 2 years ago • 4 comments

I have been looking through the examples to get a better grasp at some of the basics of Ferrite, and while the incompressible elasticity example seem to demonstrate some strong features in mixed elements, the example lacks in clarity. The main issues seem to me to be:

  • It isn't clear which PDE is being solved. Other examples actually explain what PDE they solve, but here there is only a refrence to "Cook's Membrane", which (despite being a named problem?) doesn't appear to be easy to look up. For instance it doesn't seem to have a Wikipedia entry. Maybe I'm just not smart enough, but I haven't been able to figure out what is being solved.
  • Lines 133 and 134 appear to serve no function(?) https://github.com/Ferrite-FEM/Ferrite.jl/blob/75a4dab91a5f6ce4e239db68515732f1a1ac579e/docs/src/literate/incompressible_elasticity.jl#L133
  • Unclear why lines 129 deserves its own loop and isn't just part of the subsequent loop over the same indices. https://github.com/Ferrite-FEM/Ferrite.jl/blob/75a4dab91a5f6ce4e239db68515732f1a1ac579e/docs/src/literate/incompressible_elasticity.jl#L129

There might be other things too, like in line 142 where j is iterated from 1 to n_basefunc_u instead of 1 to ì like every other instance. It would seem to me that the symmetrization process overwrites the extra entries anyway. https://github.com/Ferrite-FEM/Ferrite.jl/blob/75a4dab91a5f6ce4e239db68515732f1a1ac579e/docs/src/literate/incompressible_elasticity.jl#L142

bcsj avatar Sep 03 '21 06:09 bcsj

Thanks for reaching out and for your pointers @bcsj .

@koehlerson and I have improvement of the docs on our todo. I think some other examples (at least incompressible elasticity, Hyperelasticity and von Mises plasticity) will really benefit from having a better explanation of what exactly is going on by explaining more of the theory. Regarding your second point, this seems to be a copy paste error which has sneaked ind, while for your third point this loop just precomputes the values for the assemlby of the first, avoiding a recomputation and keeping the upcoming loop simple (see here where both indices i and j are necessary for the deviatoric part).

Regarding your first question, I also tried to figure out which PDE is solved, but I could not figure it our yet. Maybe @KristofferC or @fredrikekre could give a spoiler here?

termi-official avatar Sep 03 '21 12:09 termi-official

I believe this is similar to an assignment from one of our masters courses. In that case I could look into it in a couple of weeks when it will be time for that course.

kimauth avatar Sep 03 '21 12:09 kimauth

Regarding your first question, I also tried to figure out which PDE is solved, but I could not figure it our yet. Maybe @KristofferC or @fredrikekre could give a spoiler here?

Here is a hint :P

Screenshot 2021-09-03 at 15 20 28 Screenshot 2021-09-03 at 15 20 44

KristofferC avatar Sep 03 '21 13:09 KristofferC

I also added a short blurb about the formulation of an incompressible elasticity problem (albeit large deformations), which should translate to the linear case as well. I must confess that the approach with legendre transformations in #370 isn't super popular in the engineering community.

Here are some references from where I learned the material back when I was starting as a graduate student:

  1. http://pamies.cee.illinois.edu/Publications_files/CM_2016.pdf
  2. On some mixed finite element methods for incompressible and nearly incompressible finite elasticity: https://link.springer.com/content/pdf/10.1007/BF02824849.pdf

bhaveshshrimali avatar Sep 04 '21 03:09 bhaveshshrimali