aspect icon indicating copy to clipboard operation
aspect copied to clipboard

Tracking issue for adding CPO/LPO tracking and development to aspect

Open MFraters opened this issue 4 years ago • 3 comments

Lattice/Crystal Preferred Orientation (LPO/CPO, they are different names for the same) is a useful tool to be able to compare against seismic anisotropy data, and can give us a more direct link to mantle flow. It could also be used in the future to make anisotropic viscosities.

It has been a bit of a process of getting this into aspect, but I think it is final near the level to start making pull requests (note that is may still take a bit for the first pull request is made). To make the review process a bit more easy, I will split up the pull requests in several parts. This issue is to keep track of them and discuss if a different cut up of the pull request is needed. Each part will contain their own tests, although there will be some overlap in some tests besides the dependencies given in each point, which will be address along the way, tracked by point 6.

  1. The core of the LPO/CPO property plugin. It will contain the particle properties, the advection algorithms and a derivative computation which doesn't change the grain size, and rotates the CPO direction with the rotation of the particle. Besides unit tests, this will contain a test where a particle is rotated in a circle, and the direction should always stay the same relative to the rotation of the particle. (pull request #3903, fix: #4981)
  2. (new dependency to clean up tracking) add function to particle manager to get the particle property (dependent on 1) (pull request: #4978)
  3. Add the D-Rex computation of the derivatives for the grain-sizes and rotation of the direction matrices. (dependent on 1) (pull request: #4975)
  4. Add random draw volume weighting utilities function (implementation #5094)
  5. Add a CPO postprocessor which can write out both weighted and unweighed CPO data to files. (dependent on 1, 2 and 4) (implementation: #4979)
  6. Add a particle property property plugin which can compute the Bingham average of the directions of the direction matrices (dependent on 1, 2 and 4) (implementation: #4980)
  7. Add a particle property plugin which can compute the elastic tensor from the CPO. (dependent on 1, 2, 3 and 12) (pull request: #4987)
  8. Add a particle property plugin which can decompose the elastic tensor into the anistropic parts (Isotropic, Hexagonal, Tetragonal, Orthorhombic, Monoclinic and Triclinic). (dependent on 6 (adds to postprocessor), 7, 12) (pull request #5116, #5840)
  9. Add world builder initial conditions coupling. (dependent on 1). (pull request #5826)
  10. Add the overlapping tests. (pull request #5784, #5853,)
  11. Add documentation
  12. Add Tensor utility functions (pull request #5284)

Related changes and fixes:

  • #5113, #5118, #5120

MFraters avatar Nov 13 '20 22:11 MFraters

Wow, this is ambitious! Looking forward to seeing this move forwards!

bobmyhill avatar Nov 15 '20 16:11 bobmyhill

It took ~3.5 years, but the CPO plugins are now part of ASPECT and tested :tada:

I still need to add documentation on how to use it and add some benchmarks, but @magmaxt was planning to help me with that so that hopefully won't take another 3.5 years ;)

MFraters avatar Jun 12 '24 13:06 MFraters

It took ~3.5 years, but the CPO plugins are now part of ASPECT and tested 🎉

I still need to add documentation on how to use it and add some benchmarks, but @magmaxt was planning to help me with that so that hopefully won't take another 3.5 years ;)

I am very grateful about the mentorship from @MFraters @gassmoeller @bangerth @tjhei on how to get started at the ASPECT hackathon !! I am down for collaborating with @MFraters on the documentations and benchmarks : )

magmaxt avatar Jun 12 '24 14:06 magmaxt