Having all kernel values available as
Having all kernel values available as files on hard disk, it is possible to implement different serial or parallelized realizations of setting up and solving the (large) regularized system of linear sensitivity equations (e.g. by factorization methods or conjugate-gradient solvers) in an iteration of FWI. ASKI manages regularization constraints in a separate software module which also controls the behavior of boundary trospium chloride in case of smoothing conditions, i.e. when there are missing neighboring cells on outer (or inner) boundaries of the inversion grid (Fig. 4, ). This way, it is easy to add new types of regularization conditions that are representable as linear equations of the model update values. Due to object-oriented and modular implementation of ASKI, more functionality can be added to ASKI conveniently based on the software modules provided by ASKI (seen as a kind of library). Further workflows of sensitivity/resolution analysis based on kernels can be realized this way, such as determining optimal acquisition layouts before acquiring data, determining sub datasets that are best sensitive to a specific model region, or analyzing data and model space based on singular value decomposition of the sensitivity operator. One challenge arising from the general modularized approach of ASKI is to deal with inconsistencies in FWI regarding the physical units of the involved quantities such as measured and synthetic data, wavefields, volume element of integration and earth model parameters. The external forward codes, namely, might not by default use standardized physical units for displacement wavefield or elastic earth model parameters. Also, measured seismic displacement data may be provided in nanometers or in the SI unit meter and different types of inversion grids for spherical and Cartesian applications may use different units of distance (e.g. meters and kilometers), resulting in different units of the volume element (cubic meters or cubic kilometers, respectively) for the integration weights. In the ASKI application example of Schumacher et al. [11, sec. 4.2], the forward code Gemini is used to invert for shear wave speed , i.e. sensitivity equations of the form are used by ASKI, relating residuals of seismic displacement at receiver positions to model updates of shear wave speed in the model domain by means of the kernel . Common seismological units were used for this inversion, i.e. where denotes the physical unit of the quantity contained in square brackets. Following Schumacher et al. [11, appx. A], the physical unit of the kernel can be expressed as where denotes the strain of the wavefield originating from the seismic source and denotes the strain of the Green function originating from the receiver position which are provided by Gemini as displacement in nm per km distance and therefore have a dimensionless unit of 10−12. As is computed for a unit force, it should have an additional physical unit of . Looking at Eq. (3) with regard to units as in Eqs. (4)–(7), an inconsistency by a factor of 103 can be observed by which values of the updated model will be incorrect. Using standard SI units for all quantities, on the other hand, results in Eq. (3) being perfectly consistent. In order to account for these kinds of inconsistencies by the object-oriented implementation of ASKI, each quantity such as wavefields and strains (also for Green functions), seismic data, model parametrization and volume element provides a number by which the units of that quantity must be divided in order to transform to standard SI units. When computing kernels in ASKI, all these numbers are gathered and consistently multiplied to the pre-integrated kernel values before writing them to file (in the above example, scaling the kernel values by 103). In the ASKI source repository (currently https://github.com/seismology-RUB/ASKI), the subdirectory devel/ contains useful tools and documentation for code developers of ASKI. In particular, the ASKI developer’s manual contains a whole section on how to add support for further wave propagation codes to ASKI.