Outputting a fraction of the velocity gradient tensor

Hello all,

My apologies for my naivety, however, is there an option in ASPECT where we can output only a fraction of the velocity gradient (or strain rate) tensor that is accommodated by dislocation creep if, for instance, we prescribe a composite diffusion-dislocation creep in the material model.

Thank you so much in advance!


Hi John,

Welcome and thanks for posting to the forum! Apologies that it take a few days to get to your post.

Short answer, there is currently not a method to output the strain rate accommodated by a specific deformation mechanism in the visco plastic material model, but one could modify it to output the viscosity calculated for different creep mechanisms and back out the strain rates. Note that in the visco plastic material model, we currently just take the harmonic average of the different creep mechanisms.

Notably, the diffusion dislocation and grain size material models do use an iterative approach to calculate unique strain rates for diffusion and dislocation creep, but we (primarily Bob Myhill) are still in the process of porting a more generalized version of this functionality over to the visco plastic material model. I think the hope is to continue working on this at the next Hackathon.

So, the short answer is no, but there are various options one could implement to get this information with various levels of sophistication. If working on this is of interest, please let us know.


Hi John,

Yes, I second John Naliboff’s suggestion: Have a look at how this is done in the grain_size.cc material model. It fills an additional material model output (called DislocationViscosityOutputs) that provides both the diffusion and dislocation viscosities, which is then displayed in the graphical output if you select “named additional outputs” as one of the entries in the List of output variables in the Visualization postprocessor. You could adapt the visco plastic model to fill that output as well, and then you can compute the strain rate accommodated by a given mechanism based on that. The grain size model does not have plastic yielding though, so including that would make it more complicated.


Dear everyone,

Thank you so much for the insights and helpful suggestions.

The reason for doing so is I am attempting to couple ASPECT with multiscale modeling of mantle fabrics to compute strain-induced seismic anisotropy. At the moment, the method works well, however, I am a bit worried to over-estimate seismic anisotropy in regions with dominant diffusion creep as a mechanism.

It is interesting to know that the grain_size.cc routine outputs the separate viscosities related to creeping. I will then attempt to modify the viscoplastic model to include this option.

Thank you again! :slight_smile:


Sounds like a very interesting project, will be looking forward to seeing the results!

Please stay in touch if you have any questions about how to implement specific features and if possible merging them into the main Aspect branch. I think the feature you need would be of broad general use.

  • John

I am currently writing a paper about it with the use of updated mantle fabrics; and hopefully get it submitted before the year ends. I am happy to share with you a pre-print once finished!

It is also noteworthy that Fraters et al. [2021] (https://doi.org/10.1029/2021GC009846) recently ported a simple mantle fabric modeling software in ASPECT where they modified each particle with a discrete number of periodotite aggregates, and performed some benchmarking tests. To my knowledge, they considered dislocation creep as the sole deformation mechanism in upper mantle minerals which may overestimate anisotropy in some regions. Nevertheless, laying the groundwork of integrating fabric modeling in ASPECT is a huge step in the open research community.

Thanks again for the response! I will stay in touch!

With gratitude,