SPECFEM / specfem3d

SPECFEM3D_Cartesian simulates acoustic (fluid), elastic (solid), coupled acoustic/elastic, poroelastic or seismic wave propagation in any type of conforming mesh of hexahedra (structured or not).
GNU General Public License v3.0
409 stars 228 forks source link

Modify the calculation of the steepest descent direction in src/tomography/get_sd_direction.f90 #1494

Closed ZQiwen closed 2 years ago

ZQiwen commented 2 years ago

As a discrete version of the formulas (e.g. eq. (16)) in Tromp et al. (2005), should the steepest descent direction be model_dbeta(i,j,k,ispec) = - kernel_beta(i,j,k,ispec) * volumel instead of model_dbeta(i,j,k,ispec) = - kernel_beta(i,j,k,ispec) ? where as the volumel is the volume associated with GLL point of index (i,j,k,ispec)

image

buildbot-princeton commented 2 years ago

The files changed require a buildbot test. Buildbot has started.

buildbot-princeton commented 2 years ago

The files changed require a buildbot test. Buildbot has started.

buildbot-princeton commented 2 years ago

Your changes failed the buildbot test. See build 923. Please fix the problems and push your changes back to your branch ZQiwen/specfem3d:devel. This pull-request will be reopened automatically. You don't need to create a new pull request

danielpeter commented 2 years ago

that is not correct. the equation you point out is to evaluate the misfit.

the model update is governed by the ln(vp), ln(vs), ln(rho) expression only. there is no need for a volumetric consideration of each GLL point. you can see it this way: the model provides material properties at different positions x, i.e., defines m(x). this is independent of how close these points would be located. updating the model properties is thus only an operation on these points, not a volumetric update.

the misfit evaluation you pointed out, i.e., chi(m), would require a volumetric computation of the product between model update and corresponding kernel expressions. this is for example done in the benchmarks EXAMPLES/BENCHMARK_CLAERBOUT_ADJOINT to validate the kernels and compare the misfit evaluation above with the measured data misfit.

buildbot-princeton commented 2 years ago

Your changes passed the buildbot test. See build 924.