Instruction for C++ package of visco-elastic multiparameter FWI in the frequency domain

Jinji Li, Scott Keating, Daniel O. Trad, Kristopher A. Innanen

The frequency domain full-waveform inversion (FWI) is a nonlinear optimization problem where large matrices such as the Helmholtz matrix and many derivatives are saved and utilized. In many inversion tests involving multiple variables and larger-scale models, the computational cost and consumption of computer resources should be considered. Matlab is presumably the best platform for solving large linear systems, manipulating matrices, and intuitively analyzing the intermediate results. However, its massive memory occupation and limited computational effectiveness can hamper going to 3-D problems or some larger 2-D FWI. Motivated by this, we developed a C++ version of the current 2-D frequency domain multi-parameter visco-elastic FWI, which can be carried out on relatively larger models. The reduced cost also allows us to go to the 3-dimensional inverse problems or the probabilistic approaches. Essential tools and concepts for working within the C++ ecosystem are covered in this instructive report, with examples of how to use this package.