[aspect-devel] Questions about Integrating the GyPSuM Tomography Model into ASPECT

Hafter,David Phillip dhafter at ufl.edu
Wed Nov 8 09:26:11 PST 2017


Hi all,


A few of us have been working on integrating the GyPSuM tomography model into ASPECT, and I've run into a few technical challenges that are likely the result of being relatively new to programming. Using the backbone of the S40RTS module as a starting point, we read in our spherical harmonic coefficients by making modifications to the pre-existing SphericalHarmonicsLookup class (we're not using any equivalent to the SplineDepthsLookup class). We then changed the S40RTS code in the 3D initial temperature template so that we could connect our coefficients using chebychev polynomials and calculate temperature perturbations. I noticed, however, that the values of the chebychev polynomials would change depending on the number of processors that were being used during the run. Some of the coefficients were basically infinite, as we were seeing numbers in the range of 10^175 - 10^250. The overall accuracy of the coefficients appeared to increase when running on one processor versus twelve, although we still saw some extremely large values on one processor. Am I missing some functionality that controls parallelization in the templates? How is parallelization controlled in the templates?


In an effort to temporarily skirt this issue, we moved all of the code that calculates the temperature perturbations into the SphericalHarmonicsLookup class. This remedied the infinite number issue and corrected our chebychev polynomials. However, we need to know ASPECT's position in the mesh since this affects our temperature perturbation calculation. I noticed that this was being done in the templates by passing const Point<3> &position, so is there is an equivalent way to do this in a class?


Lastly, these calculations require the inner and outer radii from the parameter file. I tried using aspect::GeometryModel::SphericalShell::inner_radius() and the equivalent outer_radius() function, but I believe I got missing object errors during compilation. Is there some other functionality I can use to get this information?


Thanks for the help.


David Hafter

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/aspect-devel/attachments/20171108/c8e4cfd5/attachment.html>


More information about the Aspect-devel mailing list