Commit 941b00c8 authored by Florian Wittkamp's avatar Florian Wittkamp
Browse files

Renaming to IFOS

! This commit renames DENISE to IFOS !
Keep care and update all of your self written shell scripts etc.
The make target is 'IFOS' (capital letters).
The resulting binary is called 'IFOS' as well.
parent 47565f6c
This is part of DENISE This is part of IFOS
====================== ======================
Developerlist as well as a contactlist for questions and information: Developerlist as well as a contactlist for questions and information:
......
INSTALL for DENISE INSTALL for IFOS
================== ==================
A detailed installation instruction is provided in the chapter 5 of the A detailed installation instruction is provided in the chapter 5 of the
documentation (DENISE/doc/manual_DENISE.pdf). If the manual is not compiled, documentation (IFOS/doc/manual_IFOS.pdf). If the manual is not compiled,
please use the script DENISE/doc/compile_LaTeX_manual.sh please use the script IFOS/doc/compile_LaTeX_manual.sh
To compile DENISE a MAKEFILE is available in the DENISE/par directory. To To compile IFOS a MAKEFILE is available in the IFOS/par directory. To
use the MAKEFILE type use the MAKEFILE type
make make
in the DENISE/par directory. The MAKEFILE compiles the additional libaries in the IFOS/par directory. The MAKEFILE compiles the additional libaries
lib cseife lib cseife
lib stfinv lib stfinv
lib aff lib aff
lib fourier lib fourier
before compiling the main program DENISE. before compiling the main program IFOS.
------------------------------------------- -------------------------------------------
......
README for DENISE README for IFOS
================= =================
DENISE (subwavelength DEtail resolving Nonlinear Iterative SEismic inversion) IFOS (subwavelength DEtail resolving Nonlinear Iterative SEismic inversion)
is a 2D elastic full waveform inversion code. The inversion problem is solved is a 2D elastic full waveform inversion code. The inversion problem is solved
by a conjugate gradient method. The gradients are computed in the time domain by a conjugate gradient method. The gradients are computed in the time domain
with the adjoint method. The forward modeling is also done in the time domain with the adjoint method. The forward modeling is also done in the time domain
...@@ -26,11 +26,11 @@ iteration steps in this example) ...@@ -26,11 +26,11 @@ iteration steps in this example)
Installation instructions can be found in the file INSTALL. Installation instructions can be found in the file INSTALL.
A detailed documentation is provided in manual_DENISE.pdf. A detailed documentation is provided in manual_IFOS.pdf.
To get started with this code try to run the toy example that is described in To get started with this code try to run the toy example that is described in
chapter 9 in the documentation (manual_DENISE.pdf). chapter 9 in the documentation (manual_IFOS.pdf).
If you use this code for your own research please cite at least one article If you use this code for your own research please cite at least one article
......
# What is DENISE? # What is IFOS?
DENISE (subwavelength DEtail resolving Nonlinear Iterative SEismic inversion) is a 2D elastic full waveform inversion code. IFOS (subwavelength DEtail resolving Nonlinear Iterative SEismic inversion) is a 2D elastic full waveform inversion code.
The inversion problem is solved by a conjugate gradient method and the gradients are computed in the time domain with the adjoint method. The inversion problem is solved by a conjugate gradient method and the gradients are computed in the time domain with the adjoint method.
The forward modeling is done by a time domain finite difference scheme. The manual is included in the download archive or can be downloaded [here](https://git.scc.kit.edu/GPIAG-Software/DENISE/wikis/home) The forward modeling is done by a time domain finite difference scheme. The manual is included in the download archive or can be downloaded [here](https://git.scc.kit.edu/GPIAG-Software/IFOS/wikis/home)
# Download and Newsletter # Download and Newsletter
You can Download the [latest Release](https://git.scc.kit.edu/GPIAG-Software/DENISE/tree/Release) or the current [Beta-Version](https://git.scc.kit.edu/GPIAG-Software/DENISE/tree/master) You can Download the [latest Release](https://git.scc.kit.edu/GPIAG-Software/IFOS/tree/Release) or the current [Beta-Version](https://git.scc.kit.edu/GPIAG-Software/IFOS/tree/master)
To receive news and updates please [register](http://www.gpi.kit.edu/Software-FWI.php) on the email list denise@lists.kit.edu. To receive news and updates please [register](http://www.gpi.kit.edu/Software-FWI.php) on the email list IFOS@lists.kit.edu.
Please use this list also to ask questions on using the software or to report problems or bugs. Please use this list also to ask questions on using the software or to report problems or bugs.
\ No newline at end of file
...@@ -5,6 +5,6 @@ To create the manual pdf please use the script: ...@@ -5,6 +5,6 @@ To create the manual pdf please use the script:
compile_LaTeX_manual.sh compile_LaTeX_manual.sh
If Problems with the compilation occur or Latex isn't installed on your PC, If Problems with the compilation occur or Latex isn't installed on your PC,
please visit https://git.scc.kit.edu/GPIAG-Software/DENISE/wikis/home. please visit https://git.scc.kit.edu/GPIAG-Software/IFOS/wikis/home.
The manual of the latest Release is placed on this page. The manual of the latest Release is placed on this page.
...@@ -17,12 +17,12 @@ cd ./latex ...@@ -17,12 +17,12 @@ cd ./latex
/bin/rm -rf *.tit > /dev/null /bin/rm -rf *.tit > /dev/null
/bin/rm -rf *.spl > /dev/null /bin/rm -rf *.spl > /dev/null
pdflatex manual_DENISE pdflatex manual_IFOS
bibtex manual_DENISE bibtex manual_IFOS
pdflatex manual_DENISE pdflatex manual_IFOS
pdflatex manual_DENISE pdflatex manual_IFOS
pdflatex manual_DENISE pdflatex manual_IFOS
pdflatex manual_DENISE pdflatex manual_IFOS
/bin/rm -rf *.dvi > /dev/null /bin/rm -rf *.dvi > /dev/null
/bin/rm -rf *.log > /dev/null /bin/rm -rf *.log > /dev/null
...@@ -39,5 +39,5 @@ cd ./latex ...@@ -39,5 +39,5 @@ cd ./latex
/bin/rm -rf *.tit > /dev/null /bin/rm -rf *.tit > /dev/null
/bin/rm -rf *.spl > /dev/null /bin/rm -rf *.spl > /dev/null
mv manual_DENISE.pdf ../ mv manual_IFOS.pdf ../
cd .. cd ..
...@@ -8,7 +8,7 @@ Christian-Albrechts-Universität Kiel ...@@ -8,7 +8,7 @@ Christian-Albrechts-Universität Kiel
Karlsruhe Institute of Technology Karlsruhe Institute of Technology
\newline \newline
\noindent\includegraphics[width=1.0\textwidth]{DENISE_title1.png} \noindent\includegraphics[width=1.0\textwidth]{IFOS_title1.png}
\begin{center} \begin{center}
\begin{minipage}[t]{1.00\textwidth} \begin{minipage}[t]{1.00\textwidth}
...@@ -44,7 +44,7 @@ Florian Wittkamp ...@@ -44,7 +44,7 @@ Florian Wittkamp
\hfill \hfill
\begin{minipage}[h]{0.65\textwidth} \begin{minipage}[h]{0.65\textwidth}
\includegraphics[width=\textwidth]{figures/DENISE_Marmousi1.png} \includegraphics[width=\textwidth]{figures/IFOS_Marmousi1.png}
\end{minipage} \end{minipage}
\par\endgroup \par\endgroup
......
...@@ -17,7 +17,7 @@ sized problems could be inverted with frequency domain approaches.\\ A spectacul ...@@ -17,7 +17,7 @@ sized problems could be inverted with frequency domain approaches.\\ A spectacul
In order to extract information about the structure and composition of the crust from seismic observations, it is necessary to be able to predict how seismic wavefields are affected by complex structures. In order to extract information about the structure and composition of the crust from seismic observations, it is necessary to be able to predict how seismic wavefields are affected by complex structures.
Since exact analytical solutions to the wave equations do not exist for most subsurface configurations, the solutions can be obtained only by numerical methods. For iterative calculations of synthetic seismograms with limited computer resources fast and accurate modeling methods are needed. Since exact analytical solutions to the wave equations do not exist for most subsurface configurations, the solutions can be obtained only by numerical methods. For iterative calculations of synthetic seismograms with limited computer resources fast and accurate modeling methods are needed.
The FD modeling/inversion program DENISE (subwavelength $\bf{DE}$tail resolving $\bf{N}$onlinear $\bf{I}$terative $\bf{SE}$ismic inversion), is based on the FD approach described by \cite{virieux:86} and \cite{levander:88}. The present program DENISE has the following extensions The FD modeling/inversion program IFOS (\textbf{I}nversion of \textbf{F}ully \textbf{O}bserved \textbf{S}eismograms), is based on the FD approach described by \cite{virieux:86} and \cite{levander:88}. The present program IFOS has the following extensions
\begin{itemize} \begin{itemize}
\item is efficently parallelized using domain decomposition with MPI (\cite{bohlen:02}), \item is efficently parallelized using domain decomposition with MPI (\cite{bohlen:02}),
......
%------------------------------------------------------------------------------------------------% %------------------------------------------------------------------------------------------------%
\chapter{\label{cha:STF-Inversion}Source Time Function Inversion} \chapter{\label{cha:STF-Inversion}Source Time Function Inversion}
\textbf{Introduction:}\\ \textbf{Introduction:}\\
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. The library libstfinv from Thomas Forbriger was exported from TFSoftware and can be used with a C API in DENISE. The purpose of this library is to provide methods for the derivation of source-time-functions in approaches to full waveform inversion. Given a set of recorded data and a set of synthetic data (typically, but not necessarilly the impulse response of the subsurface) a source time function is obtained due to some optimization citerion. The synthetic waveforms are convolved with this wavelet and the convolved synthetics as well as the wavelet itself are returned to the user. 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. The library libstfinv from Thomas Forbriger was exported from TFSoftware and can be used with a C API in IFOS. The purpose of this library is to provide methods for the derivation of source-time-functions in approaches to full waveform inversion. Given a set of recorded data and a set of synthetic data (typically, but not necessarilly the impulse response of the subsurface) a source time function is obtained due to some optimization citerion. The synthetic waveforms are convolved with this wavelet and the convolved synthetics as well as the wavelet itself are returned to the user.
The source time wavelet in this context not necessarily is the actual force time history of the source used in the experiment or a similar quantity of physical meaning. The source time wavelet simply is the wavelet which minimizes the misfit between synthetic and recorded waveforms due to some misfit condition, if the synthetics are concolved with this wavelet. In particular this implies that the synthetics not necessarily must be the impulse response (Greens function) of the subsurface, they may simply be synthetic waveform computed for some generic source wavelet (like a Ricker wavelet). The derived source time function then have to be understood with respect to this generic wavelet.\\ The source time wavelet in this context not necessarily is the actual force time history of the source used in the experiment or a similar quantity of physical meaning. The source time wavelet simply is the wavelet which minimizes the misfit between synthetic and recorded waveforms due to some misfit condition, if the synthetics are concolved with this wavelet. In particular this implies that the synthetics not necessarily must be the impulse response (Greens function) of the subsurface, they may simply be synthetic waveform computed for some generic source wavelet (like a Ricker wavelet). The derived source time function then have to be understood with respect to this generic wavelet.\\
\newline \newline
......
...@@ -7,30 +7,30 @@ ...@@ -7,30 +7,30 @@
In the following sections, we give a short description of the different modeling parameters, options and how the program is used in a parallel MPI environment. In the following sections, we give a short description of the different modeling parameters, options and how the program is used in a parallel MPI environment.
\section{Requirements} \section{Requirements}
The parallelization employs functions of the Message Passing Interface (MPI). MPI has to be installed when compiling and running the DENISE software. At least two implementations exist for Unix-based networks: OpenMPI and MPICH2. The LAM-MPI implementation is no longer supported by the developers. Currently all three implementation work with DENISE. OpenMPI and MPICH2 are MPI programming environments and development systems for heterogeneous computers on a network. With OpenMPI or MPICH2, a dedicated cluster or an existing network computing infrastructure can act as one parallel computer solving one problem. The latest version of OpenMPI can be obtained from \href{http://www.open-mpi.org}{http://www.open-mpi.org}.% MPICH2 is available at \href{http://www.open-mpi.org}{http://www-unix.mcs.anl.gov/mpi/mpich}. LAM-MPI can be downloaded here: \href{http://www.lam-mpi.org}{http://www.lam-mpi.org}. The parallelization employs functions of the Message Passing Interface (MPI). MPI has to be installed when compiling and running the IFOS software. At least two implementations exist for Unix-based networks: OpenMPI and MPICH2. The LAM-MPI implementation is no longer supported by the developers. Currently all three implementation work with IFOS. OpenMPI and MPICH2 are MPI programming environments and development systems for heterogeneous computers on a network. With OpenMPI or MPICH2, a dedicated cluster or an existing network computing infrastructure can act as one parallel computer solving one problem. The latest version of OpenMPI can be obtained from \href{http://www.open-mpi.org}{http://www.open-mpi.org}.% MPICH2 is available at \href{http://www.open-mpi.org}{http://www-unix.mcs.anl.gov/mpi/mpich}. LAM-MPI can be downloaded here: \href{http://www.lam-mpi.org}{http://www.lam-mpi.org}.
\section{Installation} \section{Installation}
\label{installation} \label{installation}
After unpacking the software package (e.g. by \textit{tar -zxvf DENISE.tgz}) and changing to the directory DENISE (\textit{cd DENISE}) you will find different subdirectories: After unpacking the software package (e.g. by \textit{tar -zxvf IFOS.tgz}) and changing to the directory IFOS (\textit{cd IFOS}) you will find different subdirectories:
\textbf{bin}\\ \textbf{bin}\\
This directory contains all executable programs, generally DENISE and snapmerge. These executables are generated using the command \textit{make $<$program$>$} (see below). This directory contains all executable programs, generally IFOS and snapmerge. These executables are generated using the command \textit{make $<$program$>$} (see below).
\textbf{contrib}\\ \textbf{contrib}\\
This directory contains external contributions to DENISE. This directory contains external contributions to IFOS.
\textbf{doc}\\ \textbf{doc}\\
This directory contains documentation on the software (this users guide) as well as some important papers in PDF format on which the software is based on (see above). This directory contains documentation on the software (this users guide) as well as some important papers in PDF format on which the software is based on (see above).
\textbf{genmod}\\ \textbf{genmod}\\
Contains the model and benchmark files for DENISE. Contains the model and benchmark files for IFOS.
\textbf{mfiles}\\ \textbf{mfiles}\\
Here some Matlab routines (m-files) are stored. These Matlab programs can be used to find optimal relaxation frequencies to approximate a constant Q (qapprox.m) or to plot Q as a function of frequency for certain relaxation frequencies and value of tau (qplot.m). It is necessary to have the Matlab Optimization Toolbox installed. For further details we refer to \cite{bohlen:98} and to the paper in which the so-called tau-method is described \cite{blanch:95}. Here some Matlab routines (m-files) are stored. These Matlab programs can be used to find optimal relaxation frequencies to approximate a constant Q (qapprox.m) or to plot Q as a function of frequency for certain relaxation frequencies and value of tau (qplot.m). It is necessary to have the Matlab Optimization Toolbox installed. For further details we refer to \cite{bohlen:98} and to the paper in which the so-called tau-method is described \cite{blanch:95}.
\textbf{par}\\ \textbf{par}\\
Parameter files for DENISE modeling. Parameter files for IFOS modeling.
% \textbf{scripts}\\ % \textbf{scripts}\\
% Here, you will find examples of script-files used to submit modeling jobs on cluster-computers. % Here, you will find examples of script-files used to submit modeling jobs on cluster-computers.
...@@ -39,8 +39,8 @@ Parameter files for DENISE modeling. ...@@ -39,8 +39,8 @@ Parameter files for DENISE modeling.
This directory contains the complete source codes. The following programs are available and may be compiled using make $<$program$>$. This directory contains the complete source codes. The following programs are available and may be compiled using make $<$program$>$.
\section{Compilation of DENISE}\label{compexec} \section{Compilation of IFOS}\label{compexec}
Before compiling the main program DENISE you have to compile the required additional libraries e.g. for timedomain filtering, the inversion for the correction filter for the unknown source time function and so on. In the DENISE/par directory simply use: Before compiling the main program IFOS you have to compile the required additional libraries e.g. for timedomain filtering, the inversion for the correction filter for the unknown source time function and so on. In the IFOS/par directory simply use:
\newline \newline
\textit{make} \textit{make}
...@@ -54,13 +54,13 @@ lib stfinv ...@@ -54,13 +54,13 @@ lib stfinv
lib aff lib aff
lib fourier lib fourier
\end{verbatim}}} \end{verbatim}}}
as well as the binary of DENISE itself. as well as the binary of IFOS itself.
In contrib/Makefile\_var there were several environment variables which are necessary to compile the libraries successfully. Furthermore, it is necessary to preinstall FFTW - Fastest Fourier Transform in the West (\href{http://www.fftw.org/}{http://www.fftw.org/}). Please check the successful installation in the folder contrib/header. In contrib/Makefile\_var there were several environment variables which are necessary to compile the libraries successfully. Furthermore, it is necessary to preinstall FFTW - Fastest Fourier Transform in the West (\href{http://www.fftw.org/}{http://www.fftw.org/}). Please check the successful installation in the folder contrib/header.
\newline \newline
The source code of DENISE is located in the directory DENISE/src. To compile DENISE the name of the model function has to be entered in the src/MAKEFILE. Depending on your MPI environment (MPI distribution) you may need to modify the compiler options in src/Makefile. For a few typical platforms the compiler options are available in src/Makefile. It is often useful to enable a moderate level of optimization (typically -O3). The highest level of optimization -O4 can lead to a strong performance improvement. For example the optimization option -O4 of the hcc LAM compiler leads to a speedup of DENISE of approximately 30~\%. Eventhough keep in mind that -O4 can also lead to crashes and compilation errors, when used in combination with certain compilers. No other changes in the Makefile should be necessary. The source code of IFOS is located in the directory IFOS/src. To compile IFOS the name of the model function has to be entered in the src/MAKEFILE. Depending on your MPI environment (MPI distribution) you may need to modify the compiler options in src/Makefile. For a few typical platforms the compiler options are available in src/Makefile. It is often useful to enable a moderate level of optimization (typically -O3). The highest level of optimization -O4 can lead to a strong performance improvement. For example the optimization option -O4 of the hcc LAM compiler leads to a speedup of IFOS of approximately 30~\%. Eventhough keep in mind that -O4 can also lead to crashes and compilation errors, when used in combination with certain compilers. No other changes in the Makefile should be necessary.
{\color{blue}{\begin{verbatim} {\color{blue}{\begin{verbatim}
# Makefile for DENISE # Makefile for IFOS
#-------------------------------------------------------- #--------------------------------------------------------
# edit here: # edit here:
...@@ -99,20 +99,20 @@ IFLAGS=-I./../contrib/libcseife -I./../contrib/header -I. ...@@ -99,20 +99,20 @@ IFLAGS=-I./../contrib/libcseife -I./../contrib/header -I.
# -------------------------------------------------------- # --------------------------------------------------------
\end{verbatim}}} \end{verbatim}}}
The program snapmerge that is used to merge the snapshots (see below) can be compiled with ''make snapmerge'' in the directory /src. Since this is not a MPI program (no MPI functions are called) the MPI libraries are not required and any standard compiler (like gcc and cc) can be used to compile this program. The executables denise and snapmerge are located in the directory /bin. The program snapmerge that is used to merge the snapshots (see below) can be compiled with ''make snapmerge'' in the directory /src. Since this is not a MPI program (no MPI functions are called) the MPI libraries are not required and any standard compiler (like gcc and cc) can be used to compile this program. The executables IFOS and snapmerge are located in the directory /bin.
\section{Running the program}\label{compexec1} \section{Running the program}\label{compexec1}
Each DENISE run reads the required parameters from a parameter file par/DENISE.json. A detailed description of the parameters are described in chapter \ref{Definition-parameters_json}. Each IFOS run reads the required parameters from a parameter file par/IFOS.json. A detailed description of the parameters are described in chapter \ref{Definition-parameters_json}.
The command to start a simulation on 8 processor with the lowest priority of -19 (in order to allow working on the a workstation while running a simulation) is as follows. Please note, that we assume you have navigated to the folder DENISE/par. The command to start a simulation on 8 processor with the lowest priority of -19 (in order to allow working on the a workstation while running a simulation) is as follows. Please note, that we assume you have navigated to the folder IFOS/par.
\newline \newline
\textit{mpirun -np 8 nice -19 ../bin/denise DENISE.json } \textit{mpirun -np 8 nice -19 ../bin/IFOS IFOS.json }
\newline \newline
It is often useful to save the standard output of the program for later reference. The screen output may be saved to DENISE.out using It is often useful to save the standard output of the program for later reference. The screen output may be saved to IFOS.out using
\newline \newline
\textit{mpirun -np 8 nice -19 ../bin/denise DENISE.json > DENISE.out} \textit{mpirun -np 8 nice -19 ../bin/IFOS IFOS.json > IFOS.out}
\newline \newline
% \newpage % \newpage
...@@ -169,14 +169,14 @@ After the output of geometry and model parameters the code starts the time stepp ...@@ -169,14 +169,14 @@ After the output of geometry and model parameters the code starts the time stepp
\end{verbatim}}} \end{verbatim}}}
\section{Postprocessing} \section{Postprocessing}
The wavefield snapshots can be merged using the program \textit{snapmerge}. The program snapmerge is not a MPI program. Therefore, it can be executed without MPI and the mpirun command. You can run snapmerge on any PC since a MPI environment is not required. You may therefore copy the snapshot outputs of the different nodes to another non-MPI computer to merge the files together. \textit{snapmerge} reads the required information from the DENISE parameter file. Simply type The wavefield snapshots can be merged using the program \textit{snapmerge}. The program snapmerge is not a MPI program. Therefore, it can be executed without MPI and the mpirun command. You can run snapmerge on any PC since a MPI environment is not required. You may therefore copy the snapshot outputs of the different nodes to another non-MPI computer to merge the files together. \textit{snapmerge} reads the required information from the IFOS parameter file. Simply type
\newline \newline
\textit{../bin/snapmerge DENISE.json } \textit{../bin/snapmerge IFOS.json }
\newline \newline
% {\color{blue}{\begin{verbatim} % {\color{blue}{\begin{verbatim}
% -bash-2.05b$~/DENISE/par> ../bin/snapmerge DENISE.json % -bash-2.05b$~/IFOS/par> ../bin/snapmerge IFOS.json
% \end{verbatim}}} % \end{verbatim}}}
Depending on the model size the merge process may take a few seconds or hours. For the simple block model it only takes a few seconds. The output should read like this: Depending on the model size the merge process may take a few seconds or hours. For the simple block model it only takes a few seconds. The output should read like this:
...@@ -190,3 +190,4 @@ Depending on the model size the merge process may take a few seconds or hours. F ...@@ -190,3 +190,4 @@ Depending on the model size the merge process may take a few seconds or hours. F
xmovie n1=100 n2=100 < ./snap/test.bin.p loop=1 label1=Y label2=X title=%g xmovie n1=100 n2=100 < ./snap/test.bin.p loop=1 label1=Y label2=X title=%g
to play movie. to play movie.
\end{verbatim}}} \end{verbatim}}}
IFOS
\ No newline at end of file
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
%------------------------------------------------------------------------------------------------% %------------------------------------------------------------------------------------------------%
The geometry of the FD grid and all parameters for the wave field simulation and inversion have to be defined in a parameter file. The geometry of the FD grid and all parameters for the wave field simulation and inversion have to be defined in a parameter file.
DENISE uses a parameter file according to the JSON standard wich is described in this chapter. In the following we will first list a full input file for a forward modeling as an example and later explain every input parameter section in detail: IFOS uses a parameter file according to the JSON standard wich is described in this chapter. In the following we will first list a full input file for a forward modeling as an example and later explain every input parameter section in detail:
\input{DENISE_FW.json} \input{IFOS_FW.json}
All lines in the parameter file are formated according to the JSON standard (\href{www.json.org}{www.json.org}) and organized as follows: All lines in the parameter file are formated according to the JSON standard (\href{www.json.org}{www.json.org}) and organized as follows:
{\color{blue}\begin{verbatim} {\color{blue}\begin{verbatim}
"VARNAME" = "Parameter value", "VARNAME" = "Parameter value",
...@@ -19,7 +19,7 @@ where VARNAME denotes the name of the global variable in which the value is save ...@@ -19,7 +19,7 @@ where VARNAME denotes the name of the global variable in which the value is save
Sometimes possible values are described in comments, feel free to add own comments. Basically all non JSON conform line will be ignored. The order of parameters can be arbitrarily organized. The built-in JSON parser will search for the need parameters and displays found values. If critical parameters are missing the code will stop and an error message will appear.\\ Sometimes possible values are described in comments, feel free to add own comments. Basically all non JSON conform line will be ignored. The order of parameters can be arbitrarily organized. The built-in JSON parser will search for the need parameters and displays found values. If critical parameters are missing the code will stop and an error message will appear.\\
If you use the json input file some default values for the forward modeling and the inversion are set. The default values are written in the following subsections in red. The input file \texttt{DENISE\_FW\_all\_parameters.json} in the directory \texttt{par/in\_and\_out} is an input file for a forward modeling containing all parameters that can be defined. Analog to that the input file \texttt{DENISE\_INV\_all\_parameters.json} is an example for an inversion input file. The input files \texttt{DENISE\_FW.json} and \texttt{DENISE\_INV.json} contain only the parameters that must be set by the user.\\ If you use the json input file some default values for the forward modeling and the inversion are set. The default values are written in the following subsections in red. The input file \texttt{IFOS\_FW\_all\_parameters.json} in the directory \texttt{par/in\_and\_out} is an input file for a forward modeling containing all parameters that can be defined. Analog to that the input file \texttt{IFOS\_INV\_all\_parameters.json} is an example for an inversion input file. The input files \texttt{IFOS\_FW.json} and \texttt{IFOS\_INV.json} contain only the parameters that must be set by the user.\\
\section{Domain decomposition} \section{Domain decomposition}
...@@ -33,10 +33,10 @@ by the program into sub grids. After decomposition each processing elements (PE) ...@@ -33,10 +33,10 @@ by the program into sub grids. After decomposition each processing elements (PE)
processors in x-, y-direction, respectively (Figure \ref{fig_grid_json}). The total number of processors thus is NP=NPROCX*NPROCY. This value must be specified when starting the program with the mpirun command: processors in x-, y-direction, respectively (Figure \ref{fig_grid_json}). The total number of processors thus is NP=NPROCX*NPROCY. This value must be specified when starting the program with the mpirun command:
\newline \newline
\textit{mpirun -np $<$NP$>$ ../bin/DENISE DENISE.json} (see section \ref{compexec1}). \textit{mpirun -np $<$NP$>$ ../bin/IFOS IFOS.json} (see section \ref{compexec1}).
\newline \newline
If the total number of processors in DENISE.json and the command line differ, the program will terminate immediately with a corresponding error message. Obviously, the total number of PEs (NPROCX*NPROCY) used to decompose the model should be less equal than the total number of CPUs which are available on your parallel machine. If you use LAM and decompose your model in more domains than CPUs are available two or more domains will be updated on the same CPU (the program will not terminate and will produce the correct results). However, this is only efficient if more than one processor is available on each node. In order to reduce the amount of data that needs to be exchanged between PEs, you should decompose the model into more or less cubic sub grids. In our example, we use 2 PEs in each direction: NPROCX=NPROCY=2. The total number of PEs used by the program is NPROC=NPROCX*NPROCY=4. If the total number of processors in IFOS.json and the command line differ, the program will terminate immediately with a corresponding error message. Obviously, the total number of PEs (NPROCX*NPROCY) used to decompose the model should be less equal than the total number of CPUs which are available on your parallel machine. If you use LAM and decompose your model in more domains than CPUs are available two or more domains will be updated on the same CPU (the program will not terminate and will produce the correct results). However, this is only efficient if more than one processor is available on each node. In order to reduce the amount of data that needs to be exchanged between PEs, you should decompose the model into more or less cubic sub grids. In our example, we use 2 PEs in each direction: NPROCX=NPROCY=2. The total number of PEs used by the program is NPROC=NPROCX*NPROCY=4.
\begin{figure} \begin{figure}
\begin{center} \begin{center}
...@@ -73,7 +73,7 @@ FD operators used in the simulation (see section \ref{grid-dispersion}). In the ...@@ -73,7 +73,7 @@ FD operators used in the simulation (see section \ref{grid-dispersion}). In the
\begin{equation} \begin{equation}
DH\le\frac{v_{s,\text{min}}}{2 f_c n} \label{eq_dispersion_json} DH\le\frac{v_{s,\text{min}}}{2 f_c n} \label{eq_dispersion_json}
\end{equation} \end{equation}
where $\frac{v_{s,\text{min}}}{2 f_c}$ is the smallest wavelength propagating through the model and $v_{s,\text{min}}$ denotes the minimum shear wave velocity in the model, and $f_c=1/TS$ is the center frequency of the source wavelet. The program assumes that the maximum frequency of the source signal is approximately two times the center frequency. The center frequency is approximately one over the duration time TS. The value of n for different FD operators is tabulated in table \ref{grid_disp.2}. The criterion \ref{eq_dispersion_json} is checked by the FD software. If the criterion is violated a warning message will be displayed in the DENISE output section ``--- CHECK FOR GRID DISPERSION ---``. Please note, that the FD-code will NOT terminate due to grid dispersion, only a warning is given in the output file. where $\frac{v_{s,\text{min}}}{2 f_c}$ is the smallest wavelength propagating through the model and $v_{s,\text{min}}$ denotes the minimum shear wave velocity in the model, and $f_c=1/TS$ is the center frequency of the source wavelet. The program assumes that the maximum frequency of the source signal is approximately two times the center frequency. The center frequency is approximately one over the duration time TS. The value of n for different FD operators is tabulated in table \ref{grid_disp.2}. The criterion \ref{eq_dispersion_json} is checked by the FD software. If the criterion is violated a warning message will be displayed in the IFOS output section ``--- CHECK FOR GRID DISPERSION ---``. Please note, that the FD-code will NOT terminate due to grid dispersion, only a warning is given in the output file.
\section{Time stepping} \section{Time stepping}
...@@ -189,7 +189,7 @@ NSRC ...@@ -189,7 +189,7 @@ NSRC
\end{verbatim}}} \end{verbatim}}}
In the following lines, you can define certain parameters for each source point:\\ In the following lines, you can define certain parameters for each source point:\\
The first line must be the overall number of sources (NSRC). XSRC is the x-coordinate of a source point (in meter), YSRC is the y-coordinate of a source point (in meter). ZSRC is the z-coordinate should always be set to 0.0, because DENISE is a 2D code. TD is the excitation time (time-delay) for the source point (in seconds), FC is the center frequency of the source signal (in Hz), and AMP is the maximum amplitude of the source signal. The first line must be the overall number of sources (NSRC). XSRC is the x-coordinate of a source point (in meter), YSRC is the y-coordinate of a source point (in meter). ZSRC is the z-coordinate should always be set to 0.0, because IFOS is a 2D code. TD is the excitation time (time-delay) for the source point (in seconds), FC is the center frequency of the source signal (in Hz), and AMP is the maximum amplitude of the source signal.
\newline \newline
\textbf{Optional parameter:} The SOURCE\_AZIMUTH if SOURCE\_TYPE is 4. The SOURCE\_AZIMUTH is the angle between the y- and x-direction in degree and with SOURCE\_TYPE if SOURCE\_TYPE is set here, the value of SOURCE\_TYPE in the input file is ignored. \textbf{Optional parameter:} The SOURCE\_AZIMUTH if SOURCE\_TYPE is 4. The SOURCE\_AZIMUTH is the angle between the y- and x-direction in degree and with SOURCE\_TYPE if SOURCE\_TYPE is set here, the value of SOURCE\_TYPE in the input file is ignored.
...@@ -204,7 +204,7 @@ If the option RUN\_MULTIPLE\_SHOTS=0 in the parameter file all shot points defin ...@@ -204,7 +204,7 @@ If the option RUN\_MULTIPLE\_SHOTS=0 in the parameter file all shot points defin
% 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. 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.
% %
% This option will not be supported in future releases of DENISE. % This option will not be supported in future releases of IFOS.
\newpage \newpage
...@@ -254,7 +254,7 @@ In these files, each material parameter value must be saved as 32 bit (4 byte) n ...@@ -254,7 +254,7 @@ In these files, each material parameter value must be saved as 32 bit (4 byte) n
It is also possible to read Qp, and Qs grid files to allow for spatial variable attenuation. If no models are provided, the value TAU is used to generate Q-Models (see section \ref{q_approx}). It is also possible to read Qp, and Qs grid files to allow for spatial variable attenuation. If no models are provided, the value TAU is used to generate Q-Models (see section \ref{q_approx}).
If READMOD=0 the model is generated ''on the fly'' by DENISE, i.e. it is generated internally before the time loop starts. See \texttt{genmod/1D\_linear\_gradient\_el.c} for an example function that generates a simple model with a linear vertical gradient ''on the fly''. If READMOD=0 this function is called in \texttt{src/denise.c} and therefore must be specified in \texttt{src/Makefile} (at the top of \texttt{src/Makefile}, see section \ref{compexec}). If you change this file, for example to change the model structure, you need to re-compile DENISE by changing to the src directory and ''make denise''. If READMOD=0 the model is generated ''on the fly'' by IFOS, i.e. it is generated internally before the time loop starts. See \texttt{genmod/1D\_linear\_gradient\_el.c} for an example function that generates a simple model with a linear vertical gradient ''on the fly''. If READMOD=0 this function is called in \texttt{src/IFOS.c} and therefore must be specified in \texttt{src/Makefile} (at the top of \texttt{src/Makefile}, see section \ref{compexec}). If you change this file, for example to change the model structure, you need to re-compile IFOS by changing to the src directory and ''make IFOS''.
\section{Free surface} \section{Free surface}
...@@ -300,7 +300,7 @@ In some cases, it is usefull to apply periodic boundary conditions (see section ...@@ -300,7 +300,7 @@ In some cases, it is usefull to apply periodic boundary conditions (see section
If SEISMO$>$0, seismograms are saved on hard disk. If SEISMO equals 1 x- and y-component of particle velocity will be written according to parameters specified in Chapter \ref{seismograms_json}. If SEISMO$>$0, seismograms are saved on hard disk. If SEISMO equals 1 x- and y-component of particle velocity will be written according to parameters specified in Chapter \ref{seismograms_json}.
If SEISMO = 2 pressure (sum of the diagonal components of the stress tensor) recorded at the receiver locations (receivers are hydrophones!) is written. If SEISMO = 3 the curl and divergence are saved. For SEISMO = 4 everthying is saved and for SEISMO = 5 everything except curl and divergence is saved. If SEISMO = 2 pressure (sum of the diagonal components of the stress tensor) recorded at the receiver locations (receivers are hydrophones!) is written. If SEISMO = 3 the curl and divergence are saved. For SEISMO = 4 everthying is saved and for SEISMO = 5 everything except curl and divergence is saved.
The curl and divergence of the particle velocities are useful to separate between P- and S-waves in the snapshots of the wavefield. DENISE calculates the divergence and the magnitude of the curl of the particle velocity field according to \cite{dougherty:88}. The motivation for this is as follows. According to Morse and Feshbach \cite{morse:53} the energy of P- and S-wave particle velocities is, respectively, The curl and divergence of the particle velocities are useful to separate between P- and S-waves in the snapshots of the wavefield. IFOS calculates the divergence and the magnitude of the curl of the particle velocity field according to \cite{dougherty:88}. The motivation for this is as follows. According to Morse and Feshbach \cite{morse:53} the energy of P- and S-wave particle velocities is, respectively,
\begin{equation} \begin{equation}
E_p=\left(\lambda + 2 \mu\right) (div(\vec{v}))^2 \quad \mbox{and} \quad E_s=\mu \left|rot(\vec{v})\right|^2 \quad\mbox{.} E_p=\left(\lambda + 2 \mu\right) (div(\vec{v}))^2 \quad \mbox{and} \quad E_s=\mu \left|rot(\vec{v})\right|^2 \quad\mbox{.}
\label{eq_E} \label{eq_E}
...@@ -320,7 +320,7 @@ If READREC=0 the receiver locations must be specified in the parameter file. In ...@@ -320,7 +320,7 @@ If READREC=0 the receiver locations must be specified in the parameter file. In
Receivers are always located on full grid indices, i.e. a receiver that is located between two grid points will be shifted by the FD program to the closest next grid point. It is not yet possible Receivers are always located on full grid indices, i.e. a receiver that is located between two grid points will be shifted by the FD program to the closest next grid point. It is not yet possible
to output seismograms for arbitrary receiver locations since this would require a certain wavefield interpolation. to output seismograms for arbitrary receiver locations since this would require a certain wavefield interpolation.
\textbf{It is important to note that the actual receiver positions defined in REC\_FILE or in DENISE.json may vary by DH/2 due to the staggered positions of the particle velocities and stress tensor components. } \textbf{It is important to note that the actual receiver positions defined in REC\_FILE or in IFOS.json may vary by DH/2 due to the staggered positions of the particle velocities and stress tensor components. }
In our example, we specify 100 receiver location. Due to the small size of the model, most of the specified receiver positions will be located inside this absorbing boundary (if ABS=2, see Chapter \ref{abs}). A corresponding warning message will appear. If you choose to read the receiver location from REC\_FILE receiver.dat (READREC=1), only 10 receivers locations are considered. The list of receivers specified in file receiver.dat is equivalent to the parameters in the input file with only a larger distance between adjacent receivers (NGEOPH = 10.) In our example, we specify 100 receiver location. Due to the small size of the model, most of the specified receiver positions will be located inside this absorbing boundary (if ABS=2, see Chapter \ref{abs}). A corresponding warning message will appear. If you choose to read the receiver location from REC\_FILE receiver.dat (READREC=1), only 10 receivers locations are considered. The list of receivers specified in file receiver.dat is equivalent to the parameters in the input file with only a larger distance between adjacent receivers (NGEOPH = 10.)
...@@ -331,7 +331,7 @@ In our example, we specify 100 receiver location. Due to the small size of the m ...@@ -331,7 +331,7 @@ In our example, we specify 100 receiver location. Due to the small size of the m
"Seismograms" : "comment", "Seismograms" : "comment",
"NDT" : "1", "NDT" : "1",
"SEIS_FORMAT" : "1", "SEIS_FORMAT" : "1",
"SEIS_FILE" : "su/DENISE", "SEIS_FILE" : "su/IFOS",
\end{verbatim}}} \end{verbatim}}}
{\color{red}{\begin{verbatim} {\color{red}{\begin{verbatim}
...@@ -339,7 +339,7 @@ Default values are: ...@@ -339,7 +339,7 @@ Default values are:
NDT=1 NDT=1
\end{verbatim}}} \end{verbatim}}}
If SEISMO$>$0 seismograms recorded at the receiver positions are written to the corresponding output files. The sampling rate of the seismograms is NDT*DT seconds. In case of a small time step interval and a high number of time steps, it might be useful to choose a high NDT in order to avoid a unnecessary detailed sampling of the seismograms and consequently large files of seismogram data. Possible output formats of the seismograms are SU, ASCII and BINARY. It is recommended to use SU format for saving the seismograms. The main advantage of this format is that the time step interval (NDT*DT) and the acquisition geometry (shot and receiver locations) are stored in the corresponding SU header words. Also additional header words like offset are set by DENISE. This format thus facilitates a further visualization and processing of the synthetic seismograms. Note, however, that SU cannot handle sampling rates smaller than 1.0e-6 seconds and the number of samples is limited to about 32.000. In such cases, you should increase the sampling rate by increasing NDT. If this is impossible (for example because the Nyquist criterion is violated) you must choose a different output format (ASCII or binary). File endings will be added to SEIS\_FILE automatically. If SEISMO$>$0 seismograms recorded at the receiver positions are written to the corresponding output files. The sampling rate of the seismograms is NDT*DT seconds. In case of a small time step interval and a high number of time steps, it might be useful to choose a high NDT in order to avoid a unnecessary detailed sampling of the seismograms and consequently large files of seismogram data. Possible output formats of the seismograms are SU, ASCII and BINARY. It is recommended to use SU format for saving the seismograms. The main advantage of this format is that the time step interval (NDT*DT) and the acquisition geometry (shot and receiver locations) are stored in the corresponding SU header words. Also additional header words like offset are set by IFOS. This format thus facilitates a further visualization and processing of the synthetic seismograms. Note, however, that SU cannot handle sampling rates smaller than 1.0e-6 seconds and the number of samples is limited to about 32.000. In such cases, you should increase the sampling rate by increasing NDT. If this is impossible (for example because the Nyquist criterion is violated) you must choose a different output format (ASCII or binary). File endings will be added to SEIS\_FILE automatically.
\section{Q-approximation} \section{Q-approximation}
...@@ -361,7 +361,7 @@ Default values are: ...@@ -361,7 +361,7 @@ Default values are:
These lines may be used to define an overall level of intrinsic (viscoelastic) attenuation of seismic waves. In case of L=0, a purely elastic simulation is performed (no absorption). The frequency dependence of the (intrinsic) Quality factor $Q(\omega)$ is defined by the L relaxation frequencies (FL=$f_l=2\pi/\tau_{\sigma l}$) and one value $\tau$ (see equation 5 in \cite{bohlen:02}). For a single relaxation mechanism (L=1) $Q \approx 2/\tau$ \citep{bohlen:98,blanch:95,bohlen:02}. If the model is generated ''on the fly'' the value of TAU can be assigned to all gridpoints for both P- and S-waves. Thus, intrinsic attenuation is homogeneous and equal for P- and S-waves ($Q_p(\omega)=Q_s(\omega)$). However, it is possible to simulate any spatial distribution of absorption by assigning the gridpoints with different Q-values by reading external grid files for $Q_p$ (P-waves) and $Q_s$ (S-waves) (see \texttt{src/readmod.c}) or by generating these files ''on the fly'' (see section \ref{gen_of_mod} or exemplary model function \texttt{genmod/1D\_linear\_gradient\_visc.c}). These lines may be used to define an overall level of intrinsic (viscoelastic) attenuation of seismic waves. In case of L=0, a purely elastic simulation is performed (no absorption). The frequency dependence of the (intrinsic) Quality factor $Q(\omega)$ is defined by the L relaxation frequencies (FL=$f_l=2\pi/\tau_{\sigma l}$) and one value $\tau$ (see equation 5 in \cite{bohlen:02}). For a single relaxation mechanism (L=1) $Q \approx 2/\tau$ \citep{bohlen:98,blanch:95,bohlen:02}. If the model is generated ''on the fly'' the value of TAU can be assigned to all gridpoints for both P- and S-waves. Thus, intrinsic attenuation is homogeneous and equal for P- and S-waves ($Q_p(\omega)=Q_s(\omega)$). However, it is possible to simulate any spatial distribution of absorption by assigning the gridpoints with different Q-values by reading external grid files for $Q_p$ (P-waves) and $Q_s$ (S-waves) (see \texttt{src/readmod.c}) or by generating these files ''on the fly'' (see section \ref{gen_of_mod} or exemplary model function \texttt{genmod/1D\_linear\_gradient\_visc.c}).
Small $Q$ values ($Q<50$) may lead to significant amplitude decay and velocity dispersion. Please note, that due to dispersive media properties the viscoelastic velocity model is defined for the reference frequency only. In DENISE, this reference frequency is specified as the center source frequency. With F\_REF one can set the reference frequency manually. At the exact reference frequency, elastic and viscoelastic models are equivalent. As a consequence, slightly smaller and larger minimum and maximum velocity values occure in the viscoelastic model. Small $Q$ values ($Q<50$) may lead to significant amplitude decay and velocity dispersion. Please note, that due to dispersive media properties the viscoelastic velocity model is defined for the reference frequency only. In IFOS, this reference frequency is specified as the center source frequency. With F\_REF one can set the reference frequency manually. At the exact reference frequency, elastic and viscoelastic models are equivalent. As a consequence, slightly smaller and larger minimum and maximum velocity values occure in the viscoelastic model.
The frequency dependence of attenuation, i.e. $Q$ and phase velocity as a function of frequency, may be calculated using the Matlab functions in the directory mfiles. The Matlab script /mfiles/qplot.m can be used to plot $Q(\omega)$ for different values of L, $f_l$ and $\tau$. The m-file qapprox.m in the same directory finds optimal values for L, $f_l$ and $\tau$ that fit a desired function $Q(\omega)=const$ in a least-squares sense. The frequency dependence of attenuation, i.e. $Q$ and phase velocity as a function of frequency, may be calculated using the Matlab functions in the directory mfiles. The Matlab script /mfiles/qplot.m can be used to plot $Q(\omega)$ for different values of L, $f_l$ and $\tau$. The m-file qapprox.m in the same directory finds optimal values for L, $f_l$ and $\tau$ that fit a desired function $Q(\omega)=const$ in a least-squares sense.
...@@ -390,7 +390,7 @@ IDY=1 ...@@ -390,7 +390,7 @@ IDY=1
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: 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 \newline
\textit{../bin/snapmerge DENISE.json}. \textit{../bin/snapmerge IFOS.json}.
\section{Monitoring the simulation} \section{Monitoring the simulation}
...@@ -406,8 +406,8 @@ LOG=1 ...@@ -406,8 +406,8 @@ LOG=1
LOG_FILE="log/LOG_FILE" LOG_FILE="log/LOG_FILE"
\end{verbatim}}} \end{verbatim}}}
DENISE can output a lot of useful information about the modeling parameters and the status of the modeling process etc. The major part of this information is output by PE 0. IFOS can output a lot of useful information about the modeling parameters and the status of the modeling process etc. The major part of this information is output by PE 0.
If LOG=1, PE 0 writes this info to stdout, i.e. on the screen of your shell. This is generally recommended to monitor the modeling process. You may want to save this screen info to an output file by adding ''$>$ DENISE.out'' or ''| tee DENISE.out''. to your starting command. If LOG=1 all other processes with PE number greater than zero will write their information to LOG\_FILE.<PEnumber>. If you specify LOG=2 PE 0 will also output information to LOG\_FILE.0. As a consequence only little information is written directly to the screen of your shell. On supercomputers where you submit modeling jobs to a queuing system as batch jobs LOG=2 may be advantageous. In case of LOG=2, you may still watch the simulation by checking the content of LOG\_FILE.0 for example by using the Unix commands more or tail. After finishing the program the timing information is written to the ASCII file log/test.log.0.timings. This feature is useful to benchmark your local PC cluster or supercomputer. If LOG=0 no output from node 0 will be written, neither to stdout nor to an LOG file. There will be also no output of timing information to the ASCII file log/test.log.0.timings. If LOG=1, PE 0 writes this info to stdout, i.e. on the screen of your shell. This is generally recommended to monitor the modeling process. You may want to save this screen info to an output file by adding ''$>$ IFOS.out'' or ''| tee IFOS.out''. to your starting command. If LOG=1 all other processes with PE number greater than zero will write their information to LOG\_FILE.<PEnumber>. If you specify LOG=2 PE 0 will also output information to LOG\_FILE.0. As a consequence only little information is written directly to the screen of your shell. On supercomputers where you submit modeling jobs to a queuing system as batch jobs LOG=2 may be advantageous. In case of LOG=2, you may still watch the simulation by checking the content of LOG\_FILE.0 for example by using the Unix commands more or tail. After finishing the program the timing information is written to the ASCII file log/test.log.0.timings. This feature is useful to benchmark your local PC cluster or supercomputer. If LOG=0 no output from node 0 will be written, neither to stdout nor to an LOG file. There will be also no output of timing information to the ASCII file log/test.log.0.timings.
If TIME\_FILT is set to one the log file L2\_LOG.dat contains a 9th column with the corner frequency in Hz used in the iteration step. If TIME\_FILT is set to one the log file L2\_LOG.dat contains a 9th column with the corner frequency in Hz used in the iteration step.
\newpage \newpage
...@@ -417,7 +417,7 @@ If TIME\_FILT is set to one the log file L2\_LOG.dat contains a 9th column with ...@@ -417,7 +417,7 @@ If TIME\_FILT is set to one the log file L2\_LOG.dat contains a 9th column with
{\color{blue}{\begin{verbatim} {\color{blue}{\begin{verbatim}
"General inversion parameters" : "comment", "General inversion parameters" : "comment",
"ITERMAX" : "10", "ITERMAX" : "10",
"DATA_DIR" : "su/measured_data/DENISE_real", "DATA_DIR" : "su/measured_data/IFOS_real",
"INVMAT1" : "1", "INVMAT1" : "1",
"INVMAT" : "0", "INVMAT" : "0",
"QUELLTYPB" : "1",