adjtomo / seisflows

An automated workflow tool for full waveform inversion and adjoint tomography
http://seisflows.readthedocs.org
BSD 2-Clause "Simplified" License
172 stars 122 forks source link

Inversion workflow SPECFEM3D_GLOBE model=GLL bug #175

Closed bch0w closed 3 months ago

bch0w commented 11 months ago

TL;DR Users running inversions with SPECFEM3D_GLOBE in the master or devel branches will not see model updates, and model parameters/misfit during the line search will remain static.


While working on the ambient noise workflow branch using SPECFEM3D_GLOBE as my solver, I encountered an issue where the GLL global model was not updating during the line search, and misfit was held constant, even though the gradient was non-zero and looked appropriate.

After some digging, I realized this was due to the fact that the GLOBE code approaches GLL models differently than the Cartesian code. In Cartesian, to update a model, you run an xgenerate_databases step to import the updated GLL model created by SeisFlows. In GLOBE, there is no xgenerate_databases step, and instead, the User must re-mesh (xmeshfem3D) and run the solver (xspecfem3D) with Par_file parameter model set as GLL. The updated GLL model must be in sub-directory DATA/GLL (or equivalent set in constants).

The current GLOBE approach in SeisFlows does not do this, and therefore models will not update during the line search (i.e., the same starting model will be used over and over again). This is fixed in the latest version of the feature-noise_workflow branch but needs to be fixed in the devel branch.

bch0w commented 3 months ago

This is fixed in the devel branch in #181 and will make it into the next major version release