idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.78k stars 1.05k forks source link

Need support for RankSix and RankEight tensors #10686

Open mangerij opened 6 years ago

mangerij commented 6 years ago

Rationale

In Ferret, we take a "discontinuous" approach to the grain boundary or material interface that may arise in a structure. In other words, our grain structures or interfaces between two materials uses the block restriction system. Changing the orientation is simply a rotation of the materials constants (C_{ijkl}, etc). For elasticity, rank four is sufficient.

However, for the ferroelectric material, the Landau order parameter expansion of the free energy is out to sixth and eighth powers depending on the material. It would be nice to be able to have the capability to study polycrystalline effects.

Description

Need two new classes in /utils

Impact

New support for new capability in the Ferret application.

permcody commented 6 years ago

Can these high order tensors just be put in the phase_field module? The reason we have rank 2 and 4 in MOOSE is because those tensors are used by both mechanics modules and phase_field. They are pretty general. I can see why you might just want to lump all of these tensors together but it's my job to always try to keep the framework from taking on too much bloat. If these belong in a module, lets think about that instead.

mangerij commented 6 years ago

They can go in modules 👍 Gives me a reason to keep the dependency on phase field. I'll do this eventually

sapitts commented 6 years ago

@permcody and @mangerij can we keep the Rank-3 tensor in framework?

permcody commented 6 years ago

@sapitts - Are we using Rank-3 in two modules? Tensor mechanics and PF?

sapitts commented 6 years ago

....not in currently checked in code, but we have some devel work with the Rank-3 tensors in tensor mechanics crystal plasticity. At some point I will get said code checked in, too

mangerij commented 6 years ago

Yeah, I'm not sure where it is used in the moose repo but we use it in Ferret (and its covered by one of our tests). I don't care where it lives, but I think rank 2-4 stuff is generic enough to stay in framework.

But I agree with Cody's suggestion to dump rank 6 and 8 to PF.