Custom damage #20473
-
|
Hi everyone, as a new MOOSE user, I am trying to implement, using MASTODON, my own equation for a custom damage as a function of the von Mises stress and some constants and defined as a first order variable across my domain. I found many examples for a damage as a function of (x, y, t) and its influence on stresses but couldn't find (most likely missed) an example that would help me in my application. I tried to have damage as a new material variable and access the von Mises stress to compute it. However, I run into an error when I want to multiply the stress to a value because it is a tensor... While I think it should, in theory, simply be a scalar? Files needed to replicate this error are available here. I think I am probably already wrong in my strategy. Damage should probably be an auxiliary variable and not a material one. I took that decision as I would like to have the material viscosity to depend on the damage in the case of viscous deformation in the future. What do you think? Any help and/or advice would be much appreciated! Thank you a lot! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 3 replies
-
|
I believe that in MOOSE/tensor_mechanics we only have the damage base class as well as a couple of simple models that are really only useful for testing purposes. It sounds like those are the ones that you found. I would suggest looking at the Mazars damage model for concrete, which is implemented in the open-source BlackBear code: |
Beta Was this translation helpful? Give feedback.
-
|
I guess I didn't answer your question about why you got the compile error. You are coupling to a variable that provides a scalar, but to access the value of that at your quadrature point, you'd need to index into it like this: However, that isn't really the best way to get at the von Mises stress, because you're extracting that from the stress tensors at the quadrature points, and then converting that to a field variable, so you're losing information. It would be better to extract it directly as a scalar material property at your quadrature point, and then use that material property containing the von Mises stress in your damage model. The |
Beta Was this translation helpful? Give feedback.
-
|
Based on @bwspenc's inputs I worked on my own custom damage material starting from BlackBear's After some debugging to (try to) get everything right, I finally got my application to run. Unfortunately now I am running into a logic error: The custom damage object and my input file can be found here. Any help would be much appreciated, thank you a lot for your already precious help! |
Beta Was this translation helpful? Give feedback.
I guess I didn't answer your question about why you got the compile error. You are coupling to a variable that provides a scalar, but to access the value of that at your quadrature point, you'd need to index into it like this:
_von_mises[_qp].However, that isn't really the best way to get at the von Mises stress, because you're extracting that from the stress tensors at the quadrature points, and then converting that to a field variable, so you're losing information. It would be better to extract it directly as a scalar material property at your quadrature point, and then use that material property containing the von Mises stress in your damage model. The
RankTwoInvariantmaterial model …