Commit ca729b19 authored by laura.gassner's avatar laura.gassner

Update of manual and standard input files to IFOS2D

parent 2e47e95b
......@@ -17,12 +17,12 @@ cd ./latex
/bin/rm -rf *.tit > /dev/null
/bin/rm -rf *.spl > /dev/null
pdflatex manual_IFOS
bibtex manual_IFOS
pdflatex manual_IFOS
pdflatex manual_IFOS
pdflatex manual_IFOS
pdflatex manual_IFOS
pdflatex manual_IFOS2D
bibtex manual_IFOS2D
pdflatex manual_IFOS2D
pdflatex manual_IFOS2D
pdflatex manual_IFOS2D
pdflatex manual_IFOS2D
/bin/rm -rf *.dvi > /dev/null
/bin/rm -rf *.log > /dev/null
......@@ -39,5 +39,5 @@ cd ./latex
/bin/rm -rf *.tit > /dev/null
/bin/rm -rf *.spl > /dev/null
mv manual_IFOS.pdf ../
mv manual_IFOS2D.pdf ../
cd ..
......@@ -2,15 +2,14 @@
\sffamily
\vspace{-.1\textwidth}
\AddToShipoutPictureBG*{\includegraphics[width=\paperwidth,height=\paperheight]{figures/title_page1.pdf}};
\AddToShipoutPictureBG*{\includegraphics[width=\paperwidth,height=\paperheight]{figures/title_page1.pdf}}
\noindent\includegraphics[width=1.0\textwidth]{IFOS_title1.png}
\noindent\includegraphics[width=1.0\textwidth]{IFOS2D_title1.png}
\vspace{0.15 \textwidth}
\vspace{0.2 \textwidth}
\begin{center}
\includegraphics[width=.7\textwidth]{figures/logo_IFOS.png}
\includegraphics[width=.7\textwidth]{figures/logo_SOFI_IFOS.png}
\vspace{0.2\textwidth}
......
......@@ -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.
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 IFOS (\textbf{I}nversion of \textbf{F}ull \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
The FD modeling/inversion program IFOS2D (\textbf{I}nversion of \textbf{F}ull \textbf{O}bserved \textbf{S}eismograms), is based on the FD approach described by \cite{virieux:86} and \cite{levander:88}. The present program IFOS2D has the following extensions
\begin{itemize}
\item is efficently parallelized using domain decomposition with MPI (\cite{bohlen:02}),
......
%------------------------------------------------------------------------------------------------%
\chapter{\label{cha:STF-Inversion}Source Time Function Inversion}
\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 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.
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 IFOS2D. 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.\\
\newline
......
......@@ -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.
\section{Requirements}
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}.
The parallelization employs functions of the Message Passing Interface (MPI). MPI has to be installed when compiling and running the IFOS2D 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 IFOS2D. 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}
\label{installation}
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:
After unpacking the software package (e.g. by \textit{tar -zxvf IFOS2D.tgz}) and changing to the directory IFOS2D (\textit{cd IFOS2D}) you will find different subdirectories:
\textbf{bin}\\
This directory contains all executable programs, generally IFOS and snapmerge. These executables are generated using the command \textit{make $<$program$>$} (see below).
This directory contains all executable programs, generally IFOS2D and snapmerge. These executables are generated using the command \textit{make $<$program$>$} (see below).
\textbf{contrib}\\
This directory contains external contributions to IFOS.
This directory contains external contributions to IFOS2D.
\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).
\textbf{genmod}\\
Contains the model and benchmark files for IFOS.
Contains the model and benchmark files for IFOS2D.
\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}.
\textbf{par}\\
Parameter files for IFOS modeling.
Parameter files for IFOS2D modeling.
% \textbf{scripts}\\
% Here, you will find examples of script-files used to submit modeling jobs on cluster-computers.
......@@ -39,8 +39,8 @@ Parameter files for IFOS modeling.
This directory contains the complete source codes. The following programs are available and may be compiled using make $<$program$>$.
\section{Compilation of IFOS}\label{compexec}
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:
\section{Compilation of IFOS2D}\label{compexec}
Before compiling the main program IFOS2D 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 IFOS2D/par directory simply use:
\newline
\textit{make}
......@@ -54,13 +54,13 @@ lib stfinv
lib aff
lib fourier
\end{verbatim}}}
as well as the binary of IFOS itself.
as well as the binary of IFOS2D 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.
\newline
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.
The source code of IFOS2D is located in the directory IFOS2D/src. To compile IFOS2D 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 IFOS2D 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}
# Makefile for IFOS
# Makefile for IFOS2D
#--------------------------------------------------------
# edit here:
......@@ -99,20 +99,20 @@ IFLAGS=-I./../contrib/libcseife -I./../contrib/header -I.
# --------------------------------------------------------
\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 IFOS 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 IFOS2D and snapmerge are located in the directory /bin.
\section{Running the program}\label{compexec1}
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 IFOS/par.
Each IFOS2D run reads the required parameters from a parameter file par/IFOS2D.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 IFOS2D/par.
\newline
\textit{mpirun -np 8 nice -19 ../bin/IFOS IFOS.json }
\textit{mpirun -np 8 nice -19 ../bin/IFOS2D IFOS2D.json }
\newline
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
It is often useful to save the standard output of the program for later reference. The screen output may be saved to IFOS2D.out using
\newline
\textit{mpirun -np 8 nice -19 ../bin/IFOS IFOS.json > IFOS.out}
\textit{mpirun -np 8 nice -19 ../bin/IFOS2D IFOS2D.json > IFOS2D.out}
\newline
% \newpage
......@@ -169,16 +169,12 @@ After the output of geometry and model parameters the code starts the time stepp
\end{verbatim}}}
\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 IFOS 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 IFOS2D parameter file. Simply type
\newline
\textit{../bin/snapmerge IFOS.json }
\textit{../bin/snapmerge IFOS2D.json}
\newline
% {\color{blue}{\begin{verbatim}
% -bash-2.05b$~/IFOS/par> ../bin/snapmerge IFOS.json
% \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:
{\color{blue}{\begin{verbatim}
pressure (files: ./snap/test.bin.p.??? ).
......@@ -190,4 +186,3 @@ 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
to play movie.
\end{verbatim}}}
\ No newline at end of file
IFOS
\ No newline at end of file
This diff is collapsed.
......@@ -3,7 +3,7 @@
\chapter{Examples}
\section{Toy Example Shallow Seismics: Inversion of Viscoelastic Observations}
You can find the input files for the small toy example in the directory \texttt{par/in\_and\_out/toy\_example}. To run the example you can use the shell script \texttt{run\_toy\_example.sh} in the directory \texttt{par}. It is adjusted for a PC with at least 4 CPUs. If you have less CPUs you have to adjust the number of processors in the input files as well as in the call of IFOS in the shell script. The shell script includes all relevant steps. First all libraries and IFOS are compiled. (Do not get nervous about the huge output during compiling.) If you run into problems during this step you maybe have to adjust the variables in \texttt{Makefile\_var} in the directory \texttt{contrib}. Afterwards IFOS starts to simulate observed data for the inversion. The simulated seismograms are renamed for the inversion and IFOS is again compiled with another model function which creates the initial models for the inverison on the fly (see section~\ref{gen_of_mod}). The last step in the shell script is the call of IFOS to start the inversion.\\
You can find the input files for the small toy example in the directory \texttt{par/in\_and\_out/toy\_example}. To run the example you can use the shell script \texttt{run\_toy\_example.sh} in the directory \texttt{par}. It is adjusted for a PC with at least 4 CPUs. If you have less CPUs you have to adjust the number of processors in the input files as well as in the call of IFOS2D in the shell script. The shell script includes all relevant steps. First all libraries and IFOS2D are compiled. (Do not get nervous about the huge output during compiling.) If you run into problems during this step you maybe have to adjust the variables in \texttt{Makefile\_var} in the directory \texttt{contrib}. Afterwards IFOS2D starts to simulate observed data for the inversion. The simulated seismograms are renamed for the inversion and IFOS2D is again compiled with another model function which creates the initial models for the inverison on the fly (see section~\ref{gen_of_mod}). The last step in the shell script is the call of IFOS2D to start the inversion.\\
The true model used for the simulation of the observed data is shown in Figure~\ref{Rheinstetten_true_model} whereat the shot positions are marked by the red stars and the CPML frame is marked by the black dashed line. We consider a viscoelastic medium in this test and approximate a constant quality factor of $Q_s=Q_p=20$ in the analyzed frequency band up to 70\,Hz with three relaxation mechanisms of a generalized standard linear solid. The 36 two component receivers used in the inversion are located equidistantly between the sources with a receiver spacing of 1\,m.\\
......
{\color{blue}\begin{verbatim}
#-----------------------------------------------------------------
# JSON PARAMETER FILE FOR IFOS
# JSON PARAMETER FILE FOR IFOS2D
#-----------------------------------------------------------------
# description:
# description/name of the model: model grid created by ../genmod/2layer.c
......
......@@ -102,12 +102,16 @@
\input{0_Title.tex}
\FloatBarrier
\newpage
\thispagestyle{empty}
\quad
\newpage
% \maketitle
\section*{Authors}
The IFOS code (former name DENISE) was at first developed by Daniel K\"ohn, Denise De Nil and Andr$\rm{\acute{e}}$ Kurzmann at the Christian-Albrechts-Universit\"at Kiel and TU Bergakademie Freiberg (Germany) from 2005 to 2009.\\
The IFOS2D code (formerly DENISE) was at first developed by Daniel K\"ohn, Denise De Nil and Andr$\rm{\acute{e}}$ Kurzmann at the Christian-Albrechts-Universit\"at Kiel and TU Bergakademie Freiberg (Germany) from 2005 to 2009.\\
\newline
The forward code is based on the viscoelastic FD code fdveps (now SOFI2D) by \cite{bohlen:02}.\\
\newline
......@@ -158,13 +162,13 @@ Dennis Wilken and Wolfgang Rabbel (Christian-Albrechts-Universit\"at Kiel).
\noindent The development of the code was suppported by the Christian-Albrechts-Universität Kiel, TU Bergakademie Freiberg, Deutsche Forschungsgemeinschaft (DFG), Bundesministerium für Bildung und Forschung (BMBF), the Wave Inversion Technology (WIT) Consortium and the Verbundnetz-Gas AG (VNG).
\noindent The code was tested and optimized at the computing centres of Kiel University, TU Bergakademie Freiberg, TU Chemnitz, TU Dresden, the Karlsruhe Institute of Technology (KIT) and the Hochleistungsrechenzentrum Nord (HLRN 1+2).
\newline
%------------------------------------------------------------------------------------------------%
\section*{Refrenences}
\section*{References}
%------------------------------------------------------------------------------------------------%
~
\newline
\,
\noindent\bibentry{koehn:11}\\
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment