Commit 516317df authored by Florian Wittkamp's avatar Florian Wittkamp

Renaming a few global variables

Renaming:
QUELLART     ->  SOURCE_SHAPE
QUELLTYP     ->  SOURCE_TYPE
QUELLTYPB   ->  ADJOINT_TYPE
DAMPING       ->  VPPML
parent 941b00c8
......@@ -92,13 +92,13 @@ The program checks these criteria for the entire model, outputs a warning messag
\label{sec:sources}
{\color{blue}{\begin{verbatim}
"Source" : "comment",
"QUELLART" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;
Gaussian_deriv=5;Spike=6;from_SIGNAL_FILE_in_su_format=7" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;
rotated_force=4" : "comment",
"SRCREC" : "1",
......@@ -121,34 +121,34 @@ Default values are:
Five built-in wavelets of the seismic source are available. The corresponding source time functions are defined in \texttt{src/wavelet.c}. You may modify the time functions in this file and recompile to include your
own analytical wavelet or to modify the shape of the built-in wavelets.
Ricker wavelet (QUELLART=1):
Ricker wavelet (SOURCE\_SHAPE=1):
\begin{equation}
r(\tau)=\left(1-2\tau^2\right)\exp(-\tau^2) \quad \mbox{with} \quad \tau=\frac{\pi(t-1.5/f_c-t_d)}{1.0/f_c}
\label{eq_ricker}
\end{equation}
Fuchs-M\"uller wavelet (QUELLART=2):
Fuchs-M\"uller wavelet (SOURCE\_SHAPE=2):
\begin{equation}
f_m(t)=\sin(2\pi(t-t_d)f_c)-0.5\sin(4\pi(t-t_d)f_c) \quad \mbox{if} \quad t\in[t_d,t_d+1/fc] \quad \mbox{else} \quad fm(t)=0
\label{eq_fm}
\end{equation}
$sin^3$ wavelet (QUELLART=4):
$sin^3$ wavelet (SOURCE\_SHAPE=4):
\begin{equation}
s3(t)=0.75 \pi f_c \sin(\pi(t+t_d)f_c)^3\quad \mbox{if} \quad t \in[t_d,t_d+1/fc] \quad \mbox{else} \quad s3(t)=0
\label{eq_s3}
\end{equation}
First derivative of a Gaussian function (QUELLART=5):
First derivative of a Gaussian function (SOURCE\_SHAPE=5):
\begin{equation}
f(t)= -2.0 a (t-t_s) \exp(-a (t-t_s)^2)\quad \mbox{with} \quad a=\pi^2 f_c^2 \quad \mbox{and} \quad t_s=1.2/f_c
\label{eq_deriv_of_gaussian}
\end{equation}
Delta pulse (QUELLART=6):
Delta pulse (SOURCE\_SHAPE=6):
Lowpass filtered delta pulse. Note, that it is not clear if the lowpass filter used in the current version works correctly for a delta pulse.\\
Source time function from SIGNAL\_FILE in su format (QUELLART=7).\\
Source time function from SIGNAL\_FILE in su format (SOURCE\_SHAPE=7).\\
In these equations, t denotes time and $f_c=1/TS$ is the center frequency. $t_d$ is a time delay which can be defined for each source position in SOURCE\_FILE. Note that the symmetric (zero phase) Ricker signal is always delayed by $1.0/f_c$, which means that after one period the maximum amplitude is excited at the source location. Three of these 5 source wavelets and the corresponding amplitude spectra for a center frequency of $f_c=50$ Hz and a delay of $t_d=0$ are plotted in Figure \ref{fig_source_wavelets_json}. Note the delay of the Ricker signal described above. The Fuchs-M\"uller wavelet has a slightly higher center frequency and covers a broader frequency range.
......@@ -162,7 +162,7 @@ spectrum, c) phase spectrum. }
\label{fig_source_wavelets_json}
\end{figure}
You may also use your own time function as the source wavelet (for instance the signal of the first arrival recorded by a geophone at near offsets). Specify QUELLART=3 and save the samples of
You may also use your own time function as the source wavelet (for instance the signal of the first arrival recorded by a geophone at near offsets). Specify SOURCE\_SHAPE=3 and save the samples of
your source wavelet in ASCII-format in SIGNAL\_FILE. SIGNAL\_FILE should contain one sample per line. It should thus look like:
{\color{blue}{\begin{verbatim}
......@@ -175,12 +175,12 @@ your source wavelet in ASCII-format in SIGNAL\_FILE. SIGNAL\_FILE should contain
The time interval between the samples must equal the time step interval (DT) of the FD simulation (see above)! Therefore it might be necessary to resample/interpolate a given source time function with a smaller sample rate. You may use the matlab script mfiles/resamp.m to resample your external source signal to the required sampling interval.
\newline
It is also possible to read different external source wavelets for each shot. Specify QUELLART=7 and save the wavelets in su format in SIGNAL\_FILE.shot<no\_of\_shot>. The wavelets in each su file must equal the time step intervel (DT) and the number of time steps of the FD simulation!
It is also possible to read different external source wavelets for each shot. Specify SOURCE\_SHAPE=7 and save the wavelets in su format in SIGNAL\_FILE.shot<no\_of\_shot>. The wavelets in each su file must equal the time step intervel (DT) and the number of time steps of the FD simulation!
\newline
The following source types are availabe: explosive sources that excite compressional waves only (QUELLTYP=1), and point forces in the x- and y-direction (QUELLTYP=2,3).
The following source types are availabe: explosive sources that excite compressional waves only (SOURCE\_TYPE=1), and point forces in the x- and y-direction (SOURCE\_TYPE=2,3).
The force sources excite both P- and S-waves. The explosive source is located at the same position as the diagonal elements of the stress tensor, i.e. at (i,j) (Figure \ref{fig_cell}).
The forces are located at the same position as the corresponding components of particle velocity (Figure \ref{fig_cell}). If (x,y) denotes the position at which the source location is defined in source.dat, then the actual force in x-direction is located at (x+DX/2,y) and the actual force in y-direction is located at (x,y+DY/2). With QUELLTYP=4 a custom directive force can be defined by a force angle between y and x. The angle of the force must be specified in the SOURCE\_FILE after AMP. This force is not aligned along the main directions.
The forces are located at the same position as the corresponding components of particle velocity (Figure \ref{fig_cell}). If (x,y) denotes the position at which the source location is defined in source.dat, then the actual force in x-direction is located at (x+DX/2,y) and the actual force in y-direction is located at (x,y+DY/2). With SOURCE\_TYPE=4 a custom directive force can be defined by a force angle between y and x. The angle of the force must be specified in the SOURCE\_FILE after AMP. This force is not aligned along the main directions.
The locations of multiple sources must be defined in an external ASCII file (SOURCE\_FILE) that has the following format:
{\color{blue}{\begin{verbatim}
......@@ -202,7 +202,7 @@ a center frequency of 5 Hz (no time delay) is
If the option RUN\_MULTIPLE\_SHOTS=0 in the parameter file all shot points defined in the SOURCE\_FILE are excitated simultaneously in one simulation. Setting RUN\_MULTIPLE\_SHOTS=1 will start individual model runs from i=1 to i=NSRC with source locations and properties defined at line i of the SOURCE\_FILE. (To apply a full waveform inversion you have to use RUN\_MULTIPLE\_SHOTS=1.)
% Instead of a single source or multiple sources specified in the SOURCE\_FILE, you can also specify to excite a plane wave parallel (or tilted by an angle PHI) to the top of the model. This plane wave is approximated by a plane of single sources at every grid point at a depth of PLANE\_WAVE\_DEPTH below. The center source frequency $f_c$ is specified by the inverse of the duration of the source signal TS. QUELLART and QUELLTYP are taken from the parameters as described above. If you choose the plane wave option by specifying a PLANE\_WAVE\_DEPTH$>$0, the parameters SRCREC and SOURCE\_FILE will be ignored.
% Instead of a single source or multiple sources specified in the SOURCE\_FILE, you can also specify to excite a plane wave parallel (or tilted by an angle PHI) to the top of the model. This plane wave is approximated by a plane of single sources at every grid point at a depth of PLANE\_WAVE\_DEPTH below. The center source frequency $f_c$ is specified by the inverse of the duration of the source signal TS. SOURCE\_SHAPE and SOURCE\_TYPE are taken from the parameters as described above. If you choose the plane wave option by specifying a PLANE\_WAVE\_DEPTH$>$0, the parameters SRCREC and SOURCE\_FILE will be ignored.
%
% This option will not be supported in future releases of IFOS.
......@@ -221,7 +221,7 @@ Default value is:
ACOUSTIC=0
\end{verbatim}}}
With this option pure acoustic modelling and/or inversion can be performed (ACOUSTIC = 1). Only a P-wave and a density model need to be provided. Acoustic modelling and inversion can be a quick estimate especially for marine environments. Acoustic gradients are derived from pressure wavefields, therefore the option QUELLTYPB = 4 has to be used and only the inversion of hydrophone data is possible at the moment.
With this option pure acoustic modelling and/or inversion can be performed (ACOUSTIC = 1). Only a P-wave and a density model need to be provided. Acoustic modelling and inversion can be a quick estimate especially for marine environments. Acoustic gradients are derived from pressure wavefields, therefore the option ADJOINT\_TYPE = 4 has to be used and only the inversion of hydrophone data is possible at the moment.
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.
......@@ -270,7 +270,7 @@ A plane stress free surface is applied at the top of the global grid if FREE\_SU
{\color{blue}{\begin{verbatim}
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "600.0",
"VPPML" : "600.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......@@ -279,7 +279,7 @@ A plane stress free surface is applied at the top of the global grid if FREE\_SU
\end{verbatim}}}
The boundary conditions are applied on each side face and the bottom face of the model grid. If FREE\_SURF = 0 the boundary conditions are also applied at the top face of the model grid. Note that the absorbing frames are always located INSIDE the model space, i.e. parts of the model structure are covered by the absorbing frame, in which no physically meaningful wavefield propagates. You should therefore consider the frame width when you design the model structure and the acquisition geometry (shot and receivers should certainly be placed outside).
A convolutional perfectly matched layer (CPML) boundary condition is used. The PML implementation is based on the following papers \cite{komatitsch:07} and \cite{martin:09}. A width of the absorbing frame of FW=10-20 grid points should be sufficient. For the optimal realization of the PML boundary condition you have to specify the dominant signal frequency FPML occurring during the wave simulation. This is usually the center source frequency FC specified in the source file. DAMPING specifies the attenuation velocity in m/s within the PML. DAMPING should be approximately the propagation velocity of the dominant wave near the model boundaries.
A convolutional perfectly matched layer (CPML) boundary condition is used. The PML implementation is based on the following papers \cite{komatitsch:07} and \cite{martin:09}. A width of the absorbing frame of FW=10-20 grid points should be sufficient. For the optimal realization of the PML boundary condition you have to specify the dominant signal frequency FPML occurring during the wave simulation. This is usually the center source frequency FC specified in the source file. VPPML specifies the attenuation velocity in m/s within the PML. VPPML should be approximately the propagation velocity of the dominant wave near the model boundaries.
In some cases, it is usefull to apply periodic boundary conditions (see section \ref{bound_cond}). IF BOUNDARY=1 no absorbing boundaries are installed at the left/right sides of the grid. Instead, wavefield information is copied from left to right and vice versa. The effect is, for example, that a wave which leaves the model at the left side enters the model again at the right side.
......@@ -420,7 +420,7 @@ If TIME\_FILT is set to one the log file L2\_LOG.dat contains a 9th column with
"DATA_DIR" : "su/measured_data/IFOS_real",
"INVMAT1" : "1",
"INVMAT" : "0",
"QUELLTYPB" : "1",
"ADJOINT_TYPE" : "1",
"MISFIT_LOG_FILE" : "L2_LOG.dat",
"VELOCITY" : "0",
......@@ -439,7 +439,7 @@ INV_VP_ITER=0
INV_VS_ITER=0
\end{verbatim}}}
This section covers some general inversion parameters. The maximum number of iterations is defined by ITERMAX. The switch INVMAT controls if only the forward modeling code should be used (INVMAT=10), e.\,g. to calculate synthetic seismograms or a complete FWT run (INVMAT=0). The seismic sections of the real data need to be located in DATA\_DIR and should have the ending \_x.su.shot<shotnumber> for the x-component and so on. As noted in section \ref{model parametrizations} the gradients can be expressed for different model parameterizations. The switch INVMAT1 defines which parameterization should be used, seismic velocities and density (Vp,Vs,rho, INVMAT1=1), seismic impedances (Zp,Zs,rho, INVMAT1=2) or Lam$\rm{\acute{e}}$ parameters ($\rm{\lambda,\mu,\rho}$, INVMAT1=3). If models are read from binary files appropriate file extensions are required for the different models (see section \ref{gen_of_mod}). Depending on the data different components of the seismic sections can be backpropagated. For two component data (x- and y-component) set QUELLTYPB=1, only the y-component (QUELLTYPB=2) and only the x-component (QUELLTYPB=3). For acoustic modelling pressure seismograms and QUELLTYPB=4 have to be used.
This section covers some general inversion parameters. The maximum number of iterations is defined by ITERMAX. The switch INVMAT controls if only the forward modeling code should be used (INVMAT=10), e.\,g. to calculate synthetic seismograms or a complete FWT run (INVMAT=0). The seismic sections of the real data need to be located in DATA\_DIR and should have the ending \_x.su.shot<shotnumber> for the x-component and so on. As noted in section \ref{model parametrizations} the gradients can be expressed for different model parameterizations. The switch INVMAT1 defines which parameterization should be used, seismic velocities and density (Vp,Vs,rho, INVMAT1=1), seismic impedances (Zp,Zs,rho, INVMAT1=2) or Lam$\rm{\acute{e}}$ parameters ($\rm{\lambda,\mu,\rho}$, INVMAT1=3). If models are read from binary files appropriate file extensions are required for the different models (see section \ref{gen_of_mod}). Depending on the data different components of the seismic sections can be backpropagated. For two component data (x- and y-component) set ADJOINT\_TYPE=1, only the y-component (ADJOINT\_TYPE=2) and only the x-component (ADJOINT\_TYPE=3). For acoustic modelling pressure seismograms and ADJOINT\_TYPE=4 have to be used.
During the inversion the misfit values are saved in a log file specified in MISFIT\_LOG\_FILE. The log file consists of eight or nine columns and each line corresponds to one iteration step. The used step length is written in the first column. In the second to fourth column the three test step lengths used for the step length estimation are saved. The corresponding misfit values for these test step lengthes and the test shots are written to column five to seven. Column eight corresponds to the total misfit for all shots and if you use frequency filtering then the ninth column corresponds to the corner frequency of the lowpass filter used in the inversion step.
......@@ -618,7 +618,7 @@ smaller than PRO the inversion aborts or in case of using frequency filtering (T
\newpage
\section{Source wavelet inversion}
To remove the contribution of the unknown source time function (STF) from the waveform residuals, it is necessary to design a filter which minimizes the misfit to the field recordings and raw synthetics. Therefore, a second forward simulation is applied. The first one is done with the wavelet specified in QUELLART and the second one with the optimized source wavelet saved in SIGNAL\_FILE (see Section~\ref{sec:sources}). This optimized source wavelet is kept constant within N\_STF or within a frequency range (see below).\\
To remove the contribution of the unknown source time function (STF) from the waveform residuals, it is necessary to design a filter which minimizes the misfit to the field recordings and raw synthetics. Therefore, a second forward simulation is applied. The first one is done with the wavelet specified in SOURCE\_SHAPE and the second one with the optimized source wavelet saved in SIGNAL\_FILE (see Section~\ref{sec:sources}). This optimized source wavelet is kept constant within N\_STF or within a frequency range (see below).\\
{\color{blue}{\begin{verbatim}
"Definition of inversion for source time function" : "comment",
......
......@@ -25,10 +25,10 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"SOURCE_SHAPE" : "4",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "3",
"SOURCE_TYPE" : "3",
"SOURCE_FILE" : "./source/sources.dat",
"RUN_MULTIPLE_SHOTS" : "1",
......@@ -42,7 +42,7 @@
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "600.0",
"VPPML" : "600.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......
......@@ -24,13 +24,13 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"QUELLART values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"SOURCE_SHAPE values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_FILE" : "./source/sources.dat",
"RUN_MULTIPLE_SHOTS" : "1",
......@@ -44,7 +44,7 @@
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "600.0",
"VPPML" : "600.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......
......@@ -24,13 +24,13 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"QUELLART values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"SOURCE_SHAPE values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_FILE" : "./source/sources.dat",
"RUN_MULTIPLE_SHOTS" : "1",
......@@ -50,7 +50,7 @@
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "600.0",
"VPPML" : "600.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......
......@@ -24,13 +24,13 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"QUELLART values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"SOURCE_SHAPE values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_FILE" : "./source/sources.dat",
"RUN_MULTIPLE_SHOTS" : "1",
......@@ -44,7 +44,7 @@
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "600.0",
"VPPML" : "600.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......@@ -68,7 +68,7 @@
"DATA_DIR" : "su/measured_data/IFOS_real",
"INVMAT1" : "1",
"INVMAT" : "0",
"QUELLTYPB" : "1",
"ADJOINT_TYPE" : "1",
"Output of inverted models" : "comment",
"INV_MODELFILE" : "model/modelTest",
......
......@@ -24,13 +24,13 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"QUELLART values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5" : "comment",
"SOURCE_SHAPE values: Spike=6;from_SIGNAL_FILE_in_su_format=7;integral_of_SIN**3=8" : "comment",
"SIGNAL_FILE" : "./STF/stf.su",
"QUELLTYP" : "3",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_FILE" : "./source/sources.dat",
"RUN_MULTIPLE_SHOTS" : "1",
......@@ -50,7 +50,7 @@
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "600.0",
"VPPML" : "600.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......@@ -97,7 +97,7 @@
"DATA_DIR" : "su/measured_data/IFOS_real",
"INVMAT1" : "1",
"INVMAT" : "0",
"QUELLTYPB" : "1",
"ADJOINT_TYPE" : "1",
"MISFIT_LOG_FILE" : "L2_LOG.dat",
"VELOCITY" : "0",
......
......@@ -24,12 +24,12 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SRCREC" : "1",
"SRCREC values : read source positions from SOURCE_FILE=1, PLANE_WAVE=2" : "comment",
......@@ -52,7 +52,7 @@
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "1700.0",
"VPPML" : "1700.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......
......@@ -24,15 +24,15 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART_SH" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE_SH" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"SIGNAL_FILE_SH" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source) P-SV: explosive=1;force_in_x=2;force_in_y=3;force_in_z=5;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source) P-SV: explosive=1;force_in_x=2;force_in_y=3;force_in_z=5;rotated_force=4" : "comment",
"SRCREC" : "1",
"SRCREC values : read source positions from SOURCE_FILE=1, PLANE_WAVE=2" : "comment",
......@@ -55,7 +55,7 @@
"PML Boundary" : "comment",
"FW" : "10",
"DAMPING" : "1700.0",
"VPPML" : "1700.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......
......@@ -24,12 +24,12 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SRCREC" : "1",
"SRCREC values : read source positions from SOURCE_FILE=1, PLANE_WAVE=2" : "comment",
......@@ -49,7 +49,7 @@
"PML Boundary" : "comment",
"FW" : "20",
"DAMPING" : "1700.0",
"VPPML" : "1700.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......@@ -79,7 +79,7 @@
"DATA_DIR" : "su/measured_data/toy_example",
"INVMAT1" : "1",
"INVMAT" : "0",
"QUELLTYPB" : "1",
"ADJOINT_TYPE" : "1",
"MISFIT_LOG_FILE" : "LOG_toy_example.dat",
"Inversion for parameter starting from iteration" : "comment",
......
......@@ -24,15 +24,15 @@
"DT" : "5.0e-05",
"Source" : "comment",
"QUELLART" : "4",
"QUELLART_SH" : "4",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SOURCE_SHAPE" : "4",
"SOURCE_SHAPE_SH" : "4",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"SIGNAL_FILE_SH" : "./ormsby.dat",
"QUELLTYP" : "3",
"QUELLTYP values (point_source) P-SV: explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "3",
"SOURCE_TYPE values (point_source) P-SV: explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SRCREC" : "1",
"SRCREC values : read source positions from SOURCE_FILE=1, PLANE_WAVE=2" : "comment",
......@@ -55,7 +55,7 @@
"PML Boundary" : "comment",
"FW" : "10",
"DAMPING" : "300.0",
"VPPML" : "300.0",
"FPML" : "31.25",
"BOUNDARY" : "0",
"npower" : "4.0",
......@@ -85,8 +85,8 @@
"DATA_DIR" : "su/measured_data/toy_example",
"INVMAT1" : "1",
"INVMAT" : "0",
"QUELLTYPB" : "1",
"QUELLTYPB values: 1=x y; 2=x; 3=y; 4=z; 5=x y z" : "comment",
"ADJOINT_TYPE" : "1",
"ADJOINT_TYPE values: 1=x y; 2=x; 3=y; 4=z; 5=x y z" : "comment",
"MISFIT_LOG_FILE" : "LOG_toy_example.dat",
"Inversion for parameter starting from iteration" : "comment",
......
......@@ -24,12 +24,12 @@
"DT" : "1.0e-03",
"Source" : "comment",
"QUELLART" : "1",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SOURCE_SHAPE" : "1",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SIGNAL_FILE" : "./ormsby.dat",
"QUELLTYP" : "1",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "1",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SRCREC" : "1",
"SRCREC values : read source positions from SOURCE_FILE=1, PLANE_WAVE=2" : "comment",
......@@ -49,7 +49,7 @@
"PML Boundary" : "comment",
"FW" : "30",
"DAMPING" : "2100.0",
"VPPML" : "2100.0",
"FPML" : "8.0",
"BOUNDARY" : "0",
"npower" : "4.0",
......
......@@ -24,12 +24,12 @@
"DT" : "1.0e-03",
"Source" : "comment",
"QUELLART" : "1",
"QUELLART values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SOURCE_SHAPE" : "1",
"SOURCE_SHAPE values: ricker=1;fumue=2;from_SIGNAL_FILE=3;SIN**3=4;Gaussian_deriv=5;Spike=6" : "comment",
"SIGNAL_FILE" : "./STF/inverted_wavelet.seis",
"QUELLTYP" : "1",
"QUELLTYP values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SOURCE_TYPE" : "1",
"SOURCE_TYPE values (point_source): explosive=1;force_in_x=2;force_in_y=3;rotated_force=4" : "comment",
"SRCREC" : "1",
"SRCREC values : read source positions from SOURCE_FILE=1, PLANE_WAVE=2" : "comment",
......@@ -49,7 +49,7 @@
"PML Boundary" : "comment",
"FW" : "30",
"DAMPING" : "2100.0",
"VPPML" : "2100.0",
"FPML" : "8.0",
"BOUNDARY" : "0",
"npower" : "4.0",
......@@ -79,7 +79,7 @@
"DATA_DIR" : "su/measured_data/toy_example_ac",
"INVMAT1" : "1",
"INVMAT" : "0",
"QUELLTYPB" : "4",
"ADJOINT_TYPE" : "4",
"MISFIT_LOG_FILE" : "LOG_toy_example_ac.dat",
"Inversion for parameter starting from iteration" : "comment",
......
......@@ -88,7 +88,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
/* extern variables */
extern float DH, DAMPING, DT, FPML;
extern float DH, VPPML, DT, FPML;
extern int FREE_SURF, NX, NY, BOUNDARY, NXG, NYG;
extern int NPROCX, NPROCY, MYID, POS[3], FW;
extern FILE *FP;
......@@ -118,10 +118,10 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
Rcoef = 0.001;
/* compute d0 from INRIA report section 6.1 */
d0_x = - (npower + 1) * DAMPING * log(Rcoef) / (2.0 * thickness_PML_x);
d0_y = - (npower + 1) * DAMPING * log(Rcoef) / (2.0 * thickness_PML_y);
d0_x = - (npower + 1) * VPPML * log(Rcoef) / (2.0 * thickness_PML_x);
d0_y = - (npower + 1) * VPPML * log(Rcoef) / (2.0 * thickness_PML_y);
/* damping in the X direction */
/* VPPML in the X direction */
/* -------------------------- */
/* origin of the PML layer (position of right edge minus thickness, in meters) */
......@@ -136,7 +136,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
K_x_half[i] = 1.0;
xval = DH * (i-1);
/* define damping profile at the grid points */
/* define VPPML profile at the grid points */
abscissa_in_PML = xoriginleft - xval;
if(abscissa_in_PML >= 0.0){
......@@ -148,7 +148,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
alpha_prime_x[i] = alpha_max_PML * (1.0 - abscissa_normalized);
}
/* define damping profile at half the grid points */
/* define VPPML profile at half the grid points */
abscissa_in_PML = xoriginleft - (xval + DH/2.0);
if(abscissa_in_PML >= 0.0){
......@@ -183,7 +183,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
K_x_half[h] = 1.0;
xval = DH * (i-1);
/* define damping profile at the grid points */
/* define VPPML profile at the grid points */
abscissa_in_PML = xval - xoriginright;
if(abscissa_in_PML >= 0.0){
......@@ -195,7 +195,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
alpha_prime_x[h] = alpha_max_PML * (1.0 - abscissa_normalized);
}
/* define damping profile at half the grid points */
/* define VPPML profile at half the grid points */
abscissa_in_PML = xval + DH/2.0 - xoriginright;
if(abscissa_in_PML >= 0.0){
......@@ -223,7 +223,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
/* damping in the Y direction */
/* VPPML in the Y direction */
/* -------------------------- */
/* origin of the PML layer (position of right edge minus thickness, in meters) */
......@@ -238,7 +238,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
/* left boundary */
/* define damping profile at the grid points */
/* define VPPML profile at the grid points */
abscissa_in_PML = yoriginbottom - yval;
if(abscissa_in_PML >= 0.0){
......@@ -250,7 +250,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
alpha_prime_y[i] = alpha_max_PML * (1.0 - abscissa_normalized);
}
/* define damping profile at half the grid points */
/* define VPPML profile at half the grid points */
abscissa_in_PML = yoriginbottom - (yval + DH/2.0);
if(abscissa_in_PML >= 0.0){
......@@ -279,7 +279,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
K_y_half[h] = 1.0;
yval = DH * (i-1);
/* define damping profile at the grid points */
/* define VPPML profile at the grid points */
abscissa_in_PML = yval - yorigintop;
if(abscissa_in_PML >= 0.0){
......@@ -291,7 +291,7 @@ void PML_pro(float * d_x, float * K_x, float * alpha_prime_x, float * a_x, float
alpha_prime_y[h] = alpha_max_PML * (1.0 - abscissa_normalized);
}
/* define damping profile at half the grid points */
/* define VPPML profile at half the grid points */
abscissa_in_PML = yval + DH/2.0 - yorigintop;
if(abscissa_in_PML >= 0.0){
......
......@@ -29,8 +29,8 @@
void exchange_par(void){
/* declaration of extern variables */
extern int NX, NY, FDORDER, MAXRELERROR, QUELLART, QUELLTYP, SNAP, SNAP_FORMAT, L;
extern float DH, TIME, DT, TS, *FL, TAU, DAMPING, PLANE_WAVE_DEPTH, PHI, F_REF;
extern int NX, NY, FDORDER, MAXRELERROR, SOURCE_SHAPE, SOURCE_TYPE, SNAP, SNAP_FORMAT, L;
extern float DH, TIME, DT, TS, *FL, TAU, VPPML, PLANE_WAVE_DEPTH, PHI, F_REF;
extern float XREC1, XREC2, YREC1, YREC2, FPML;
extern float REC_ARRAY_DEPTH, REC_ARRAY_DIST, MUN, EPSILON, EPSILON_u, EPSILON_rho;
extern int SEISMO, NDT, NGEOPH, SEIS_FORMAT, FREE_SURF, READMOD, READREC, SRCREC;
......@@ -43,7 +43,7 @@ void exchange_par(void){
extern char JACOBIAN[STRING_SIZE], DATA_DIR[STRING_SIZE], INV_MODELFILE[STRING_SIZE], FREQ_FILE[STRING_SIZE];
extern int RUN_MULTIPLE_SHOTS, TAPERLENGTH, INVTYPE;
extern int NPROC, NPROCX, NPROCY, MYID, IDX, IDY;
extern int GRADT1, GRADT2, GRADT3, GRADT4, ITERMAX, INVMAT1, INVMAT, QUELLTYPB;
extern int GRADT1, GRADT2, GRADT3, GRADT4, ITERMAX, INVMAT1, INVMAT, ADJOINT_TYPE;
extern int GRAD_METHOD;
extern float TSHIFT_back;
extern int MODEL_FILTER, FILT_SIZE;
......@@ -88,7 +88,7 @@ void exchange_par(void){
// Parameter for inversion of SH waves and joint inversion
extern int WAVETYPE;
extern int QUELLART_SH;
extern int SOURCE_SHAPE_SH;
extern int JOINT_INVERSION_PSV_SH_TYPE;
/* Workflow */
extern char FILE_WORKFLOW[STRING_SIZE];
......@@ -147,7 +147,7 @@ void exchange_par(void){
fdum[19] = XREC2;
fdum[20] = YREC2;
fdum[22] = DAMPING;
fdum[22] = VPPML;
fdum[23] = REC_ARRAY_DEPTH;
fdum[24] = REC_ARRAY_DIST;
fdum[25] = PLANE_WAVE_DEPTH;
......@@ -219,8 +219,8 @@ void exchange_par(void){
idum[5] = NX;
idum[6] = NY;
idum[8] = QUELLART;
idum[9] = QUELLTYP;
idum[8] = SOURCE_SHAPE;
idum[9] = SOURCE_TYPE;
idum[10] = READMOD;
idum[11] = L;
idum[12] = FREE_SURF;
......@@ -255,7 +255,7 @@ void exchange_par(void){
idum[41] = INVMAT1;
idum[42] = FW;
idum[43] = INVMAT;
idum[44] = QUELLTYPB;
idum[44] = ADJOINT_TYPE;
idum[45] = TESTSHOT_START;
idum[46] = TESTSHOT_END;
......@@ -330,7 +330,7 @@ void exchange_par(void){
idum[93] = WAVETYPE;
idum[94] = QUELLART_SH;
idum[94] = SOURCE_SHAPE_SH;
idum[95] = JOINT_INVERSION_PSV_SH_TYPE;
......@@ -420,7 +420,7 @@ void exchange_par(void){
XREC2=fdum[19];
YREC2=fdum[20];
DAMPING=fdum[22];
VPPML=fdum[22];
REC_ARRAY_DEPTH=fdum[23];
REC_ARRAY_DIST=fdum[24];
PLANE_WAVE_DEPTH=fdum[25];
......@@ -494,8 +494,8 @@ void exchange_par(void){
NX = idum[5];
NY = idum[6];
QUELLART = idum[8];
QUELLTYP = idum[9];
SOURCE_SHAPE = idum[8];
SOURCE_TYPE = idum[9];
READMOD = idum[10];
L = idum[11];
FREE_SURF = idum[12];
......@@ -530,7 +530,7 @@ void exchange_par(void){
INVMAT1 = idum[41];
FW = idum[42];
INVMAT = idum[43];
QUELLTYPB = idum[44];
ADJOINT_TYPE = idum[44];
TESTSHOT_START = idum[45];
TESTSHOT_END = idum[46];
......@@ -606,7 +606,7 @@ void exchange_par(void){
WAVETYPE = idum[93];
QUELLART_SH = idum[94];
SOURCE_SHAPE_SH = idum[94];
JOINT_INVERSION_PSV_SH_TYPE = idum[95];
......
......@@ -9,13 +9,13 @@
/* Add new variables also in exchange_par.c and read_par_json.c */
float XS, YS, DH, TIME, DT, TS, DAMPING, PLANE_WAVE_DEPTH, PHI;
float XS, YS, DH, TIME, DT, TS, VPPML, PLANE_WAVE_DEPTH, PHI;
float TSNAP1, TSNAP2, TSNAPINC, *FL, TAU, F_REF;
float XREC1, XREC2, YREC1, YREC2;
float REC_ARRAY_DEPTH, REC_ARRAY_DIST;
float REFREC[4]={0.0, 0.0, 0.0, 0.0}, FPML;
int SEISMO, NDT, NGEOPH, NSRC=1, SEIS_FORMAT, FREE_SURF, READMOD, READREC, SRCREC, FW=0;
int NX, NY, NT, QUELLART,QUELLART_SH, QUELLTYP, SNAP, SNAP_FORMAT, REC_ARRAY, RUN_MULTIPLE_SHOTS, NTRG;
int NX, NY, NT, SOURCE_SHAPE,SOURCE_SHAPE_SH, SOURCE_TYPE, SNAP, SNAP_FORMAT, REC_ARRAY, RUN_MULTIPLE_SHOTS, NTRG;
int L, BOUNDARY, DC, DRX, NXG, NYG, IDX, IDY, FDORDER, MAXRELERROR;
char SNAP_FILE[STRING_SIZE], SOURCE_FILE[STRING_SIZE], SIGNAL_FILE[STRING_SIZE], SIGNAL_FILE_SH[STRING_SIZE];
char MFILE[STRING_SIZE], REC_FILE[STRING_SIZE];
......@@ -42,7 +42,7 @@ int WORKFLOW_STAGE;
int TAPER, TAPERLENGTH, INVTYPE;
int GRADT1,GRADT2,GRADT3,GRADT4;
int ITERMAX, REC1, REC2, INVMAT1, INVMAT, QUELLTYPB;