You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: for people who would like to run the package on Windows rather than on Unix machines, you can install Docker or VirtualBox (installing a Linux in VirtualBox in that latter case) and run it easily from inside that.
13
-
14
-
We recommend that you add \texttt{ulimit -S -s unlimited} to your \texttt{.bash\_profile} file and/or \texttt{limit stacksize unlimited} to your \texttt{.cshrc} file to suppress any potential limit to the size of the Unix stack.
15
12
16
13
Then, to configure the software for your system, run the
17
14
\texttt{configure} shell script. This script will attempt to guess
You can replace the GNU compilers above (gfortran and gcc) with other compilers if you want to; for instance for Intel ifort and icc use FC=ifort CC=icc instead.
34
31
35
-
Before running the \texttt{configure} script, you should probably edit file \texttt{flags.guess} to make sure that it contains the best compiler options for your system. Known issues or things to check are:
36
-
32
+
Before running the \texttt{configure} script, you should probably edit file \texttt{flags.guess} to make sure that it contains the best
33
+
compiler options for your system. Known issues or things to check are:
37
34
\begin{description}
38
-
\item [Intel ifort compiler] See if you need to add \texttt{-assume byterecl} for your machine.\newline
39
-
35
+
\item [{\texttt{Intel ifort compiler}}] See if you need to add \texttt{-assume byterecl} for your machine.
40
36
In the case of that compiler, we have noticed that initial release versions sometimes have bugs or issues that can lead to wrong results when running the code, thus we \emph{strongly} recommend using a version for which at least one service pack or update has been installed.
41
-
In particular, for \red{version 17} of that compiler, users have reported problems (making the code crash at run time) with the \texttt{-assume buffered\_io} option; if you notice problems,
37
+
In particular, for version 17 of that compiler, users have reported problems (making the code crash at run time) with the \texttt{-assume buffered\_io} option; if you notice problems,
42
38
remove that option from file \texttt{flags.guess} or change it to \texttt{-assume nobuffered\_io} and try again.
43
-
\item [IBM compiler] See if you need to add \texttt{-qsave} or \texttt{-qnosave} for your machine.
44
-
\item [Mac OS] You will probably need to install \texttt{Xcode}.
45
-
\item [IBM Blue Gene machines] Please refer to the manual of SPECFEM3D\_Cartesian, which contains detailed instructions on how to run on Blue Gene.
39
+
40
+
\item [{\texttt{IBM compiler}}] See if you need to add \texttt{-qsave} or \texttt{-qnosave} for your machine.
41
+
42
+
\item [{\texttt{Mac OS}}] You will probably need to install \texttt{Xcode}.
43
+
44
+
%\item [{\texttt{IBM Blue Gene machines}] Please refer to the manual of SPECFEM3D\_Cartesian, which contains detailed instructions on how to run on Blue Gene.
46
45
\end{description}
47
46
48
47
The SPECFEM2D software package relies on the SCOTCH library to partition meshes.
49
-
The SCOTCH library \citep{PeRo96}
50
-
provides efficient static mapping, graph and mesh partitioning routines. SCOTCH is a free software package developed by
48
+
The SCOTCH library \citep{PeRo96} provides efficient static mapping,
49
+
graph and mesh partitioning routines. SCOTCH is a free software package developed by
51
50
Fran\c{c}ois Pellegrini et al. from LaBRI and Inria in Bordeaux, France, downloadable from the web page \url{https://gitlab.inria.fr/scotch/scotch}.
52
51
In case no SCOTCH libraries can be found on the system, the configuration will bundle the version provided with the source code for compilation.
53
52
The path to an existing SCOTCH installation can to be set explicitly with the option \texttt{-{}-with-scotch-dir}.
When compiling the SCOTCH source code, if you get a message such as: "ld: cannot find -lz",
70
69
the Zlib compression development library is probably missing on your machine and you will need to install it or ask your system administrator to
71
-
do so. On Linux machines the package is often called "zlib1g-dev" or similar. (thus "sudo apt-get install zlib1g-dev" would install it)
70
+
do so. On Linux machines the package is often called "zlib1g-dev" or similar (thus "sudo apt-get install zlib1g-dev" would install it).\newline
71
+
72
+
You can add \texttt{-{}-enable-vectorization} to the configuration options to speed up the code in the fluid (acoustic) and elastic parts.
73
+
This works fine if (and only if) your computer always allocates a contiguous memory block for each allocatable array;
74
+
this is the case for most machines and most compilers, but not all.
75
+
To check if that option works fine on your machine, run the code with and without it for an acoustic/elastic model and make sure the seismograms are identical.\newline
76
+
72
77
73
78
You may edit the \texttt{Makefile} for more specific modifications. Especially, there are several options available:
\texttt{replace\_use\_mpi\_with\_include\_mpif\_dot\_h.pl} in the root directory to replace all of them with \texttt{include `mpif.h'} automatically.
95
100
96
101
If you have problems configuring the code on a Cray machine, i.e. for instance if you get an error message from the \texttt{configure} script, try exporting these two variables:
97
-
\texttt{MPI\_INC=\${CRAY\_MPICH2\_DIR}/include and FCLIBS=" "}, and for more details if needed you can refer to the \texttt{utils/Cray\_compiler\_information} directory.
102
+
\texttt{MPI\_INC=\${CRAY\_MPICH2\_DIR}/include and FCLIBS=" "}, and for more details if needed you can refer to the \texttt{utils/infos/Cray\_compiler\_information} directory.
98
103
You can also have a look at the configure script called\newline
For people who would like to run the package on Windows rather than on Unix machines, you can install Docker or VirtualBox (installing a Linux in VirtualBox in that latter case) and run it easily from inside that.\newline
100
107
108
+
We recommend that you add \texttt{ulimit -S -s unlimited} to your \texttt{.bash\_profile} file and/or \texttt{limit stacksize unlimited} to your \texttt{.cshrc} file to suppress any potential limit to the size of the Unix stack.\newline
Packages such as \texttt{doxywizard} can be used to visualize the subroutine calling tree of the source code.
104
172
\texttt{Doxywizard} is a GUI front-end for configuring and running \texttt{doxygen}.
105
173
106
-
\section{Becoming a developer of the code, or making small modifications in the source code}
174
+
\noindent
175
+
To visualize the call tree (calling tree) of the source code, you can see the Doxygen tool available in directory \texttt{doc/call\_trees\_of\_the\_source\_code}.
107
176
108
-
If you want to develop new features in the code, and/or if you want to make small changes, improvements, or bug fixes, you are very welcome to contribute.\newline
109
177
110
-
To do so, i.e. to access the development branch of the source code with read/write access (in a safe way, no need to worry too much about breaking the package, there is a robot called BuildBot that is in charge of checking and validating all new contributions and changes), please visit this Web page:\newline
If you want to develop new features in the code, and/or if you want to make small changes, improvements, or bug fixes, you are very welcome to contribute!
183
+
To do so, i.e. to access the development branch of the source code with read/write access (in a safe way, no need to worry too much about breaking the package,
184
+
there are CI tests based on BuildBot, Travis-CI and Jenkins in place that are checking and validating all new contributions and changes),
To visualize the call tree (calling tree) of the source code, you can see the Doxygen tool available in directory \texttt{doc/call\_trees\_of\_the\_source\_code}.
SPECFEM2D can produce the gradient of the misfit function for a
@@ -88,7 +91,9 @@ \section{Remarks about adjoint runs and solving inverse problems}
88
91
``\texttt{ac}'' denotes acoustic (``\texttt{el}'' for elastic),
89
92
``\texttt{kl}'' means kernel (and you may find ``\texttt{k}'' as well, which is the interaction at each time step, i.e., before doing time integration).
0 commit comments