-
Notifications
You must be signed in to change notification settings - Fork 238
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce grain size due to plastic strain #5915
base: main
Are you sure you want to change the base?
Conversation
Short answer: Sorry, I don't know.
I've also been thinking about this the last couple of days. The change in strain rate fraction between different viscous elements (solid lines in the figure below) assuming an isostress condition (i.e., what we do in diffusion_dislocation.cc) is beautifully modelled by a simple power-law function (dashed line, I'll keep on thinking about this, but maybe the ``cheap'' way done by most other codes (harmonic viscosity averaging) is good enough? |
@bobmyhill Thank you, that's super helpful! For the work fraction for boundary area change when yielding, I just thought it would save me a lot of work if you had a good suggestion, but I'll have a look into the literature. For testing, I would use a constant value anyway and it does not really matter what that is. I don't think we need to match anything, the default should just be something that's somewhat reasonable. For now we could even just set it to 0.1, which is the same as the default for the work fraction for boundary area change for dislocation creep. |
2296edd
to
45ef948
Compare
45ef948
to
de158ff
Compare
Yes, that's probably true. I had hoped that recent citations of Kanamori 2001 (https://www.google.co.uk/books/edition/Earthquake_Thermodynamics_and_Phase_Tran/z0x5Z4EjP6QC?hl=en&gbpv=1&dq=energy+seismic+efficiency&pg=PA293&printsec=frontcover) might help, but I didn't find much - understandably, most of the discussion revolves around the seismic efficiency, not the ratio of heat to other dissipative mechanisms (e.g. https://gfzpublic.gfz-potsdam.de/rest/items/item_108170/component/file_364681/content). We might need to ask someone closer to the field. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some initial comments (I know this is WIP). Code structure looks good.
stress = std::min(stress, yield_stress); | ||
is_yielding = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wouldnt you need to check for if (stress > yield_stress)
before these two lines? At the moment it looks like it is always yielding.
@@ -1113,6 +1189,11 @@ namespace aspect | |||
"The fraction $\\chi$ of work done by dislocation creep to change the grain boundary area. " | |||
"List must have one more entry than the Phase transition depths. " | |||
"Units: \\si{\\joule\\per\\meter\\squared}."); | |||
prm.declare_entry ("Work fraction for boundary area change when yielding", "0.2", | |||
Patterns::List (Patterns::Double (0.)), | |||
"The fraction $\\chi$ of work done by plastic tielding to change the grain boundary area. " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"The fraction $\\chi$ of work done by plastic tielding to change the grain boundary area. " | |
"The fraction $\\chi$ of work done by plastic yielding to change the grain boundary area. " |
@@ -19,6 +19,7 @@ subsection Material model | |||
set Reference temperature = 293 | |||
set Grain growth rate constant = 0 | |||
set Work fraction for boundary area change = 0 | |||
set Work fraction for boundary area change when yielding = 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So when setting the new parameter to 0 nothing changes, which is good. But we also need a test that uses the new feature.
In #5708, we added plasticity to the grain size model, but it does not yet affect grain size reduction.
This PR is a first attempt of making this happen. It assumes that as soon as material is yielding, all strain is plastic strain (which is what is assumed in other parts of ASPECT as well (and I think this is based on the idea that soon as material is yielding, we break the rock).
@bobmyhill Do you think this is reasonable? I started to think about how to partition the strain rate between diffusion, dislocation and plastic, had some ideas (which would all be very cmplicated and slow), discussed it with @gassmoeller and @MFraters, and this is what Menno suggested would be a good approximation.
@bobmyhill I also had no idea what would be a reasonable parameter for the Work fraction for boundary area change when yielding, do you happen to have an idea what could be reasonable? (Or is the answer just: we don't know?)
I also have not made any tests yet (and I'll do that as soon as we agree this is a reasonable way of implementing it).
For now, I just want to make sure that everything else still works the same way as before.
A part of this PR is also just refactoring things in the grain size material mode to avoid code duplication, and I am happy to make this a separate PR; let me know. I just through it would be good to also see the other changes so that it's clear why the refactoring is needed.
For new features/models or changes of existing features: