Documentation for the Moveout based WEMVA code.

The idea of this paper is basically implementing the travel-time tomography framework but using a wave-equation engine.

The code has three parts:
1. The one-way propagator and WEMVA tomography operator is provided by Yaxun Tang as executables(you should be able to run the .x under LINUX_64 arch, I did not dig into his code in detail. But everything is under the yaxun_DSO folder. NOTICE!! You need to modify line 28,29 of the file in codelib/src/modelingOneway.cpp, to reflect the correct path for one-way migration program (wem3d.x) and one-way WEMVA tomo operator program (wemva3d_baspix.x).

2. The common C++ source files that collects common routines for seismic data processing(for example data IO). in codelib/src folder.

3. The C++ code for doing Moveout based WEMVA. in the src/ folder. The main part of the algorithm is contained in file WEVMA_FD_beamfocus.cpp

To build the code, go to the proj directory.
All the building rules is in the SConstruct file.
Make sure that the pathes specified in the SConstruct file is correct according to your local settings. By specifying scons options you can choose Intel or GCC as the compiler. Default is using ICC.
then 
> scons bin/beamWETreflOneway.x
code should be built. You can find the actual source code files that are related by looking at the command-line output.

The examples for 2D Marmousi model inversion:
first at the proj directory
> cd marm
The Makefile in this subdirectory defines the processing rules.
> make Smarm1w.zg.bf2g.sgE0.semb1.H obj=bf2g sgEvent=0 semb=1
will start the inversion from the v(z) initial velocity model.
The parameters obj,sgEvent,semb tells the makefile to use bf2g objective function, sgEvent=0 means not single event. If only one reflector then sgEvent can be 1. semb=1 means calculate the semblance for the moveout.
Similarly, if 
> make Smarm1w.zg.dso.sgE0.semb1.H obj=dso sgEvent=0 semb=1 
will use the dso objective function.

the result is actually in slowness. So type
> make Smarm1w.zg.dso.sgE0.semb1.wd.recip.H
to get a windowed version of velocity values.

The program dumps a lot of files for the debugging purpose, you can ignore these files if not interested.



