Giter VIP home page Giter VIP logo

zhong-yy / grasphinv Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 2.0 203.33 MB

GraSphInv is a program for gravity inversion using adaptive inversion mesh refinement in the spherical coordinate system. A-priori constraints can be used in the inversion. Wavelet compression can be used to further reduce memory consumption.

License: GNU Affero General Public License v3.0

CMake 0.24% Makefile 0.02% C++ 98.02% C 0.62% Perl 0.01% HTML 0.02% M4 0.01% Batchfile 0.01% Shell 0.02% Cuda 0.11% Fortran 0.92% XSLT 0.01% Python 0.02% JavaScript 0.01% CSS 0.01%
c-plus-plus geophysics gravity inversion

grasphinv's People

Contributors

zhong-yy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

grasphinv's Issues

Density modelling

Hi Zhong
Is it possible to use your software to create model of density based on gridded Bouguer anomalies?

Compilation with g++ 11.3 compiler on Ubuntu 22.04 may cause severe floating point error

Originally, GraSphInv was tested with compilers g++ 9.3 and Intel oneAPI 2021/2022 on Ubuntu 20.04. However, the program compiled by a newer version of g++ (11.3.0) on Ubuntu 22.04 is found to produce sporadic large errors. Thanks to Keying Zhu for pointing out this.

For example, in Examples/Tibet50kmH_0_25x0_25/data/Crust_Correction/crystalline_crust_g_r calculated by the program compiled by g++ 11.3 on ubuntu 22.04, there are 5082 extremely large values which are inconsistent with the original file. It looks like
image

Then I tested Intel oneAPI 2023 compiler on Ubuntu 22.04 to see if this problem is specific to g++ compilers. In the Crust_Correction example, 1077 out of 20905 data points in file moho_g_r are different from the original file with a maximum absolute difference of 1.76 mGal and the rest of the data points are the same as the original files. I think this difference is still within an acceptable range in view of different implementation of C++ compilers and the inherent numerical inaccuracy of Gaussian Legendre quadrature. For the rest of files, e.g crystalline_crust_g_r, sediments_g_r, rm_sedim_cryst_g_r, rm_sedim_g_r, mantle_g_r are exactly the same as the original file (with maximum difference less than 1e-12).

I suspect that the large error caused by g++ 11.3.0 is due to compiler optimization. I will get around to test a lower level of compiler optimization by adding a statement set(CMAKE_BUILD_TYPE Debug) to file cmake.config.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.