Releases: AB-Ares/Displacement_strain_planet
Version 0.5.0
Major changes
- Added a new function
Displacement_strains_shtools
. This function is similar toDisplacement_strains
except that it uses Shtools to compute the spherical harmonic derivative. This new function is drastically faster and should be used for most usage. This function currently does not support GLQ grids.
Minor changes
-
readme
: Text update. -
Thin_shell_matrix
: Minor typo correction to the Gc_lm equation. -
SH_deriv_store
: Can now take input latitude/colatitude bounds to limit the computation region. Further optimized the whole sphere computation routine. -
Displacement_strain
andDisplacement_strain_shtools
: Added "depth" parameter to estimate the strain at a given depth. -
Mars_SouthPolarCap_displacement
: Added some text to clarify the iteration approach. Added a second method to directly estimate flexure with the "add_equation" option. -
Run_demo
: Updated the jupyter notebook with more example, including how to compute crustal thickness considering Pratt or Airy isostasy. -
Removed all
ducc
built in calls, which were causing some issues with the installer.
Version 0.4.0
Version 0.4.0
––––––––––––––
Minor enhancements
- 'SH_deriv_store': The function now accepts latitude bounds as input.
- 'B1986_nmax': Minor text corrections and small improvements to the overall organization and speed.
- 'Thin_shell_matrix_nmax': Minor performance edits to avoid redundant calculations.
- Default some SHTOOLs routines to ducc, which is faster for most applications.
- Added a function 'Strainstress_from_principal' to estimates the theta, phi, thetaphi components of the strain or stress field from the principal values.
Full Changelog: 0.3.2...0.4.0
0.3.2
Improvements:
-Slightly optimized Plt_tecto_Mars
-Vectorized and optimized parts of SH_deriv_store, resulting in a significant speedup of at least x6.
Modifications:
-Displacement_strains now outputs the total strains together with the extensional and flexural strains.
Corrections
-Slightly corrected how the extensional strains are estimated at the surface in Displacement_strains following Beuthe (2008). Previously multiplied by Te / 2, now multiplied by Te / 2 / (1 + Te/2/R) ~ Te / 2 (for large R). This is going to matter mostly for small bodies.
0.3.1
Improvements:
SH_deriv_store:
-Improved the SH derivates storage using 2-d indexes to store 3-d spherical harmonics (see SHCilmToCindex in SHTOOLs). As a result:
The array size goes from (2, lmax+1,lmax+1) to (2, (lmax + 1) * (lmax + 2) / 2), which largely decreases the size of the stored derivates (factor 2).
-The speed of the strain calculations increases by a factor 2 in Displacement_strains.
Thin_shell_matrix:
-Added a parameter to correct for lateral density variations within reliefs for the net load q_lm.
-Added an optional argument "iterate". If false, it will force the model to not apply any corrections (corrections can happen when drhom_lm != 0 even if nmax = 1).
-Added further check to compute degree-1 geoid and displacement depending on the input equation.
-Added further check to compute internal density variations depending on the input top_drho & base_drho (crust, mantle).
-Updated description & examples in the jupyter notebook
Modifications:
corr_nmax_drho:
-removed all filtering from the function. All filtering is now performed in Thin_shell_matrix.
Corrections:
B1986_nmax:
-Corrected some inconsistency in defining flexural parameters when Te = 0.
-Correction to filtering, which should only apply to the isostatic bottom loads (dc_lm & drhom_lm). It was previously applied to the moho relief (= w_lm - dc_lm) in the G_lm equation.
0.3.0
Improvements:
B1986_nmax:
-The user can now input several add_arrays, and multiplications in add_equation are now partially supported.
-An optional argument COM has been added to force the degree-1 geoid terms to be zero (as required in a center-of-mass framework)
-Cleanup some synthax and updated error messages
Displacement_strain:
-SH_deriv_Store: Added option to input dtype. Using float32 instead of 64 can significantly reduce the array size for large lmax.
-SH_deriv_Store: Added the "grid" and lmaxgrid optional arguments (also to Displacement_strains). The grid can either be 'DH' or 'GLQ' following the convention of SHTOOLs. Grid shapes are updated accordingly GLQ: (lmaxgrid+1,2lmaxgrid+1), DH (2lmaxgrid+1, 2*(2*lmaxgrid+1)). The default grid is now GLQ, which should allow for faster computation of Y_lms derivatives and strains and reduces the file size of Y_lms.
Modified some of the examples in the jupyter notebook to demonstrate how one can use the add_equation options with multiplications and multiple add_arrays.
Corrections:
B1986_nmax:
-Correct a bug when using filtering with nmax != 1
-Fixed the degree-1 equation for flexure (based on Beuthe 2008)
Displacement_strain:
-Corrected Plt_tecto_Mars to include the last point in the Knapmeyer dataset.
0.2.5
Improvements:
Displacement_strains
-Specify einsum path to optimize the einsum computation, which increases the computation by 30%.
-Added the option to input lmaxgrid, which will control the output gridsizes.
SH_deriv_Store
-Added the option to input lmaxgrid, which will control the output gridsizes.
Corrections:
B1986_nmax
-Minor correction where the tangential displacement was wrongly incrementally increased in the case where the density contrast is located in the surface topo or crust.
-Fixed default values of base_drho and top_drho to be consistent in all functions.
SH_deriv and SH_deriv_store
-Corrected a typo that caused a blow up of the derivatives at the pole.
0.2.4
Improvements:
SH_deriv_store
-Now saves the spherical harmonic functions 'y_lm', which can be used in Displacement_strains. This moderately increases the strain computation speed, but increase the size of the file saved in SH_deriv_store.
-Add "compressed" optional argument to allow saving with np.savez_compressed which reduces the file size by about a factor 2. Since we do compression, this takes slightly longer to load and save the Ylms.
Displacement_strains
-It is not possible anymore to compute SH derivatives on the fly (with precomp==0) as this was very slow and likely not worth it. The "precomp" argument is now gone.
-The function has been rewritten in vector form and making use of the numpy.einsum function. This speeds up the function by a factor of about 3.
Error correction:
Plt_tecto_Mars
-Correct a typo in the function plotting the Knapmeyer dataset. We were only iterating over half of the data.