Commit 1073b9d9 authored by Florian Wittkamp's avatar Florian Wittkamp

Added parameter and updated documentation

Updated documentation to include all new variables which are available in the JSON input file.
parent 67ab5dcf
......@@ -231,6 +231,16 @@ With this option pure acoustic modelling and/or inversion can be performed (ACOU
For acoustic modelling the option HESSIAN is not available (GRAD\_METHOD needs to be 1), as well as the option VELOCITY. Only FDORDER = 2 and INVMAT1 = 1 are possible.
\section{PSV and SH modelling}
{\color{blue}{\begin{verbatim}
"WAVETYPE" : "1",
\end{verbatim}}}
{\color{red}{\begin{verbatim}
Default value is:
WAVETYPE=1
\end{verbatim}}}
In 2D the wave equations of PSV and SH waves are decoupled. Therefore the inversion problem is decoupled as well. With the variable WAVETYPE it is possible to switch between a PSV (WAVETYPE==1) and a SH (WAVETYPE==2) simulation. However the SH FWI is still in development and it is strongly recommended to use the PSV simulation. If ACOUSTIC is set to 1, WAVETYPE==1 will be enforced automatically.
\section{Model input}
\label{gen_of_mod}
......@@ -386,6 +396,7 @@ directory mfiles.
"IDX" : "1",
"IDY" : "1",
"SNAP_FORMAT" : "3",
"SNAPSHOT_START , SNAPSHOT_END , SNAPSHOT_INCR" : "2, 3 , 2",
"SNAP_FILE" : "./snap/waveform_forward",
\end{verbatim}}}
......@@ -396,7 +407,7 @@ IDX=1
IDY=1
\end{verbatim}}}
If SNAP$>0$, wavefield information (particle velocities (SNAP=1), pressure (SNAP=2), or curl and divergence of particle velocities (SNAP=3), or everything (SNAP=4)) for the entire model is saved on the hard disk (assure that enough free space is on disk!). Each PE is writing his sub-volume to disk. The filenames have the basic filename SNAP\_FILE plus an extension that indicates the PE number in the logical processor array (SNAP\_FILE.<PEnumber>). The first snapshot is written at TSNAP1 seconds of seismic wave traveltime to the output files, the second at TSNAP1 + TSNAPINC seconds etc. The last snapshots contains wavefield at TSNAP2 seconds. Note that the file sizes increase during the simulation. The snapshot files might become quite LARGE. It may therefore be necessary to reduce the amount of snapshot data by increasing IDX, IDY and/or TSNAPINC. In order to merge the separate snapshots of each PE after the completion of the wave modeling, you can use the program snapmerge (see Chapter \ref{installation}, section \textbf{src}). The bash command line to merge the snapshot files can look like this:
If SNAP$>0$, wavefield information (particle velocities (SNAP=1), pressure (SNAP=2), or curl and divergence of particle velocities (SNAP=3), or everything (SNAP=4)) for the entire model is saved on the hard disk (assure that enough free space is on disk!). Each PE is writing his sub-volume to disk. The filenames have the basic filename SNAP\_FILE plus an extension that indicates the PE number in the logical processor array (SNAP\_FILE.<PEnumber>). The first snapshot is written at TSNAP1 seconds of seismic wave traveltime to the output files, the second at TSNAP1 + TSNAPINC seconds etc. The last snapshots contains wavefield at TSNAP2 seconds. With SNAPSHOT\_START (SNAPSHOT\_END) you can specify the first (last) shot, for which a snapshot should by generated. The increment for the shotwise output of the snapshots can be defined in the variable SNAPSHOT\_INCR. Note that the file sizes increase during the simulation. The snapshot files might become quite LARGE. It may therefore be necessary to reduce the amount of snapshot data by increasing IDX, IDY and/or TSNAPINC. In order to merge the separate snapshots of each PE after the completion of the wave modeling, you can use the program snapmerge (see Chapter \ref{installation}, section \textbf{src}). The bash command line to merge the snapshot files can look like this:
\newline
\textit{../bin/snapmerge DENISE.json}.
......@@ -491,11 +502,11 @@ Default values are:
"USE_WORKFLOW" : "0"
\end{verbatim}}}
With the use of a workflow file, you can define different FWI stages. For instance, one FWI stage could refer to one corner frequency of a low-pass filter or to a specific time window. Every line in the workflow file corresponds to one FWI stage. To use a workflow file the switch USE\_WORKFLOW have to be set to 1. The algorithm will automatically change to the next line of the workflow file if the abort criterium of the current line is reached or if no step length could be found which reduces the misfit. The structure of the variables inside the workflow file is as follow: \\ \\
\begin{tabular}{llllllll}
\# & INV\_VS & INV\_VP & INV\_RHO & PRO & TIME\_FILT & FC & DUMMY\\
\begin{tabular}{llllllllllll}
\# & INV\_VS & INV\_VP & INV\_RHO & PRO & TIME\_FILT & FC & WAVETYPE & 0 & 0 & EPRECOND & EPSILON\_WE\\
\end{tabular}
\\ \\
The first column is the number of the line. With INV\_* etc. you can activate the inversion for VS, VP or RHO, respectively. The abort criterium in percent for this FWI stage will be the declared in the variable PRO. With TIME\_FILT you can activate the frequency filtering with the corner frequency FC. DUMMY is a placeholder and currently not used. Please note, that all features which are used eg. TIME\_FILT within the workflow have to be activated in the .JSON file.\\
The first column is the number of the line. With INV\_* etc. you can activate the inversion for VS, VP or RHO, respectively. The abort criterium in percent for this FWI stage will be the declared in the variable PRO. With TIME\_FILT you can activate the frequency filtering with the corner frequency FC. WAVETYPE can be used to switch between PSV and SH modeling, however it is recommended to use PSV modeling (WAVETYPE==1) due to the current development on SH modeling. The following to zeros are placeholders for an upcoming update. With EPRECOND and EPSILON\_WE you can control the approx. Hessian. Please note, that all features which are used eg. TIME\_FILT within the workflow have to be activated in the .JSON file.\\
For an example of a workflow file, have a look in the par/ folder.
......@@ -503,13 +514,15 @@ For an example of a workflow file, have a look in the par/ folder.
{\color{blue}{\begin{verbatim}
"EPRECOND" : "3",
"EPSILON_WE" : "0.005",
"EPRECOND_PER_SHOT" : "1",
\end{verbatim}}}
{\color{red}{\begin{verbatim}
Default values are:
"EPRECOND" : "0",
\end{verbatim}}}
With the variable EPRECOND it is possible to activate an approximated Hessian for preconditioning. There are two different approximations available. EPRECOND==1 will be an approximation after \cite{shin2001efficient}, and EPRECOND==3 after \cite{plessix2004frequency}. EPSILON\_WE defines a water level to stabilize the approximated Hessian. The use of an approximated Hessian can significantly influence the speed of convergence.
With the variable EPRECOND it is possible to activate an approximated Hessian for preconditioning. There are two different approximations available. EPRECOND==1 will be an approximation after \cite{shin2001efficient}, and EPRECOND==3 after \cite{plessix2004frequency}. EPSILON\_WE defines a water level to stabilize the approximated Hessian. The use of an approximated Hessian can significantly influence the speed of convergence. The Hessian is calculated for each shot individually and will be applied to the gradient from each shot directly if the switch EPRECOND\_PER\_SHOT is set to 1. Otherwise (EPRECOND\_PER\_SHOT==0) the Hessian will be summed up for each shot and will be applied to the total gradient.
Up to now there is no rule of tumb wether EPRECOND==1 or ==3 should be chosen, so it is recommended to try both. After each iteration the Hessian will be outputted in the folder JACOBIAN with the syntax \*approx\_hessian\* in the file name.\\
The corresponding functions are copied out of DENISE Black Edition, which is maintained by Daniel Koehn.
......
......@@ -35,6 +35,26 @@
@string{SEG02 = {73rd Ann. Internat. Mtg., Soc. Expl. Geophys., Expanded Abstracts}}
@string{SEG03 = {74th Ann. Internat. Mtg., Soc. Expl. Geophys., Expanded Abstracts}}
@article{shin2001efficient,
title={Efficient calculation of a partial-derivative wavefield using reciprocity for seismic imaging and inversion},
author={Shin, Changsoo and Yoon, Kwangjin and Marfurt, Kurt J and Park, Keunpil and Yang, Dongwoo and Lim, Harry Y and Chung, Seunghwan and Shin, Sungryul},
journal={Geophysics},
volume={66},
number={6},
pages={1856--1863},
year={2001},
publisher={Society of Exploration Geophysicists}
}
@article{plessix2004frequency,
title={Frequency-domain finite-difference amplitude-preserving migration},
author={Plessix, R-E and Mulder, WA},
journal={Geophysical Journal International},
volume={157},
number={3},
pages={975--987},
year={2004},
publisher={Oxford University Press}
}
@book{aki:80,
AUTHOR = {Aki, K. and Richards, P.G. },
......
......@@ -87,6 +87,7 @@
"IDX" : "1",
"IDY" : "1",
"SNAP_FORMAT" : "3",
"SNAPSHOT_START , SNAPSHOT_END , SNAPSHOT_INCR" : "2, 3 , 2",
"SNAP_FILE" : "./snap/waveform_forward",
"Monitoring the simulation" : "comment",
......
......@@ -100,8 +100,29 @@
"INVMAT" : "0",
"QUELLTYPB" : "1",
"MISFIT_LOG_FILE" : "L2_LOG.dat",
"VELOCITY" : "0",
"VELOCITY" : "0",
"Gradient-Method" : "comment",
"GRAD_METHOD" : "1",
"LBFGS_STEP_LENGTH" : "1",
"N_LBFGS" : "5",
"Wolfe Condition" : "comment",
"WOLFE_CONDITION" : "1",
"WOLFE_NUM_TEST" : "5",
"WOLFE_TRY_OLD_STEPLENGTH" : "0",
"Approx. Hessian" : "comment",
"EPRECOND" : "3",
"EPSILON_WE" : "0.005",
"EPRECOND_ITER" : "0",
"Workflow" : "comment",
"USE_WORKFLOW" : "0",
"FILE_WORKFLOW" : "workflow.txt",
"Inversion for density" : "comment",
"INV_RHO_ITER" : "0",
......@@ -135,7 +156,7 @@
"FC_HESSIAN" : "100",
"ORDER_HESSIAN" : "4",
"TSHIFT_back" : "0.0",
"GRAD_METHOD" : "1",
"Gradient calculation" : "comment",
"LNORM" : "2",
......
......@@ -40,6 +40,17 @@
"SOURCE_FILE" : "./source/src_toy_example.dat",
"RUN_MULTIPLE_SHOTS" : "1",
"Snapshots" : "comment",
"SNAP" : "0",
"TSNAP1" : "5e-5",
"TSNAP2" : "0.6",
"TSNAPINC" : "0.006",
"IDX" : "1",
"IDY" : "1",
"SNAP_FORMAT" : "3",
"SNAPSHOT_START , SNAPSHOT_END , SNAPSHOT_INCR" : "2, 3 , 2",
"SNAP_FILE" : "./snap/waveform_forward",
"Acoustic Computation" : "comment",
"ACOUSTIC" : "0",
......
......@@ -102,9 +102,25 @@
"nfstart_jac" : "1",
"nf_jac" : "1",
"Hessian and Gradient-Method" : "comment",
"Gradient-Method" : "comment",
"GRAD_METHOD" : "1",
"LBFGS_STEP_LENGTH" : "1",
"N_LBFGS" : "5",
"Wolfe Condition" : "comment",
"WOLFE_CONDITION" : "1",
"WOLFE_NUM_TEST" : "5",
"WOLFE_TRY_OLD_STEPLENGTH" : "0",
"Approx. Hessian" : "comment",
"EPRECOND" : "0",
"EPSILON_WE" : "0.005",
"EPRECOND_ITER" : "0",
"Workflow" : "comment",
"USE_WORKFLOW" : "0",
"FILE_WORKFLOW" : "workflow.txt",
"Gradient calculation" : "comment",
"LNORM" : "7",
......
......@@ -94,15 +94,26 @@
"QUELLTYPB" : "1",
"QUELLTYPB values: 1=x y; 2=x; 3=y; 4=z; 5=x y z" : "comment",
"MISFIT_LOG_FILE" : "LOG_toy_example.dat",
"JOINT_INVERSION_PSV_SH_TYPE" : "1",
"JOINT_INVERSION_PSV_SH_ALPHA_VS" : "0.5",
"JOINT_INVERSION_PSV_SH_ALPHA_RHO" : "0.5",
"Gradient-Method" : "comment",
"GRAD_METHOD" : "1",
"LBFGS_STEP_LENGTH" : "1",
"N_LBFGS" : "5",
"Wolfe Condition" : "comment",
"WOLFE_CONDITION" : "1",
"WOLFE_NUM_TEST" : "5",
"WOLFE_TRY_OLD_STEPLENGTH" : "0",
"Approx. Hessian" : "comment",
"EPRECOND" : "3",
"EPSILON_WE" : "0.005",
"EPRECOND_ITER" : "0",
"Workflow" : "comment",
"USE_WORKFLOW" : "1",
"USE_WORKFLOW" : "0",
"FILE_WORKFLOW" : "workflow.txt",
"RESTART_WORKFLOW" : "0",
"Inversion for density" : "comment",
"INV_RHO_ITER" : "400",
......@@ -118,9 +129,6 @@
"nfstart_jac" : "1",
"nf_jac" : "1",
"Hessian and Gradient-Method" : "comment",
"GRAD_METHOD" : "1",
"Gradient calculation" : "comment",
"LNORM" : "2",
"LNORM values: L1 norm=1, L2 norm=2, Cauchy=3, SECH=4, Global correlation=5, L2 norm with time windowing=6" : "comment",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment