idaholab / moose

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

StressUpdate Material (compute = false) approach to crystal plasticity #16064

Open sapitts opened 4 years ago

sapitts commented 4 years ago

Reason

Crystal plasticity models often have large numbers of stateful properties (e.g. 12-48 different dislocation slip planes, and 2-5 different dislocation mechanisms per slip plane that need to be tracked). Minimizing the overhead to storing all of these different material properties will improve the code performance and increase usability--particularly for new C++ users who may have difficulty understanding the vector passing in the user-object based system.

Design

Use the StressUpdate material approach (which sets compute = false) that has been widely adopted in the isotropic plasticity models for crystal plasticity. Start with the base class and simple Kalidindi et al (1992) hardening modeling for comparison and discussion with other developers.

Impact

Potential cleaner version of stateful properties while retaining the plug and play approach to including different dislocation mechanisms introduced in the user-object based system.

Migration of the base class capabilities from the user-object based approach, and the necessary user support to aid in the transition will be required follow-on issues if the update material (compute = false) approach is selected for moving forward.

hugary1995 commented 3 years ago

@sapitts @dewenyushu @jiangwen84 I am just curious about this: How much effort do you think we need to implement a J2 plasticity model in this framework? I guess we only need to modify how the flow direction is defined, right?

jiangwen84 commented 3 years ago

@hugary1995 if it is visco-plastic J2, it is straightforward to implement it into CP framework. If it is J2 with yield surface, I think more work will be evolved.