[cig-commits] [commit] devel, master: removed old stuff from DATA/util (f22be17)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Thu Nov 6 08:00:53 PST 2014
Repository : https://github.com/geodynamics/specfem3d_globe
On branches: devel,master
Link : https://github.com/geodynamics/specfem3d_globe/compare/bc58e579b3b0838a0968725a076f5904845437ca...be63f20cbb6f462104e949894dbe205d2398cd7f
>---------------------------------------------------------------
commit f22be174b4df573966160e0c1693785d10ee4671
Author: Dimitri Komatitsch <komatitsch at lma.cnrs-mrs.fr>
Date: Fri Nov 11 10:08:09 2005 +0000
removed old stuff from DATA/util
>---------------------------------------------------------------
f22be174b4df573966160e0c1693785d10ee4671
old_Par_file_160_25sec_90x90 | 127 ---------------
oldstuff/README_SPECFEM3D_GLOBE | 348 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 348 insertions(+), 127 deletions(-)
diff --git a/old_Par_file_160_25sec_90x90 b/old_Par_file_160_25sec_90x90
deleted file mode 100644
index c3ebb85..0000000
--- a/old_Par_file_160_25sec_90x90
+++ /dev/null
@@ -1,127 +0,0 @@
-# ----------------------------------------------------------------
-#
-# This is the parameter file
-# Put variable names first and actual value after 27th column
-#
-# ----------------------------------------------------------------
-#
-<- ->
-#
-
-! number of elements along chunk edge at surface (16 * multiple of NPROC below)
-NEX_XI = 160
-NEX_ETA = 160
-
-! number of MPI processors along xi and eta in each of the six chunks
-NPROC_XI = 5
-NPROC_ETA = 5
-
-! time step in seconds
-DT = 0.26
-
-! total number of time steps
-NSTEP = 14000
-
-! parameters describing the Earth model
-OCEANS = .true.
-ELLIPTICITY = .true.
-TOPOGRAPHY = .true.
-THREE_D = .true.
-GRAVITY = .true.
-ROTATION = .true.
-TRANSVERSE_ISOTROPY = .true.
-ANISOTROPIC_MANTLE = .false.
-ANISOTROPIC_INNER_CORE = .false.
-CRUSTAL = .true.
-ONE_CRUST = .true.
-ATTENUATION = .true.
-MIN_ATTENUATION_PERIOD = 20
-MAX_ATTENUATION_PERIOD = 1000
-
-! number of radial elements in mesh for full Earth
-NER_CRUST = 1
-NER_220_MOHO = 3
-NER_400_220 = 2
-NER_600_400 = 2
-NER_670_600 = 1
-NER_771_670 = 1
-NER_TOPDDOUBLEPRIME_771 = 16
-NER_CMB_TOPDDOUBLEPRIME = 1
-RATIO_TOP_DBL_OC = 0.40
-RATIO_BOTTOM_DBL_OC = 0.27
-NER_TOPDBL_CMB = 12
-NER_ICB_BOTTOMDBL = 6
-NER_TOP_CENTRAL_CUBE_ICB = 3
-
-! path to store the local database files on each node
-LOCAL_PATH = /scratch/DATABASES_MPI_JEROEN
-
-! machine file for MPI
-MACHINE_FILE = mymachines
-
-! interval in time steps for temporary writing of seismograms
-NSEIS = 500000
-
-! number of point sources
-NSOURCES = 1
-
-! movies
-MOVIE_SURFACE = .true.
-MOVIE_VOLUME = .true.
-NMOVIE = 100
-HDUR_MIN_MOVIES = 20.0d0
-
- !
- ! mesh statistics:
- ! ---------------
- !
- ! these statistics include the central cube
- !
- ! number of processors = 150
- !
- ! number of ES nodes = 18.75000
- ! percentage of total 640 ES nodes = 2.929688 %
- ! total memory available on these ES nodes (Gb) = 300.0000
- !
- ! max points in largest region = 1107613
- ! max vector length = 3322839
- ! min vector length = 25
- ! min critical vector length = 75
- !
- ! on ES and SX-5, make sure loopcnt= parameter
- ! in Makefile is greater than 3322839
- !
- ! total elements per AB slice = 18036
- ! total points per AB slice = 1207215
- !
- ! total elements per AC slice = 18792
- ! total points per AC slice = 1256271
- !
- ! total elements per BC slice = 20304
- ! total points per BC slice = 1353711
- !
- ! load balancing AB/BC for points = 89.17819 %
- ! load balancing AB/BC for elements = 88.82979 %
- !
- ! load balancing AC/BC for points = 92.80201 %
- ! load balancing AC/BC for elements = 92.55319 %
- !
- ! total for full 6-chunk mesh:
- ! ---------------------------
- !
- ! exact total number of spectral elements in entire mesh =
- ! 2721600
- ! approximate total number of points in entire mesh =
- ! 182002045.0000000
- ! approximate total number of degrees of freedom in entire mesh =
- ! 498295035.0000000
- !
- ! resolution of the mesh at the surface:
- ! -------------------------------------
- !
- ! spectral elements along a great circle = 960
- ! GLL points along a great circle = 3840
- ! average distance between points in degrees = 9.3750000E-02
- ! average distance between points in km = 10.42452
- !
-
diff --git a/oldstuff/README_SPECFEM3D_GLOBE b/oldstuff/README_SPECFEM3D_GLOBE
new file mode 100644
index 0000000..8c09f53
--- /dev/null
+++ b/oldstuff/README_SPECFEM3D_GLOBE
@@ -0,0 +1,348 @@
+!=====================================================================
+!
+! S p e c f e m 3 D G l o b e V e r s i o n 3 . 5
+! --------------------------------------------------
+!
+! Dimitri Komatitsch and Jeroen Tromp
+! Seismological Laboratory - California Institute of Technology
+! (c) California Institute of Technology July 2004
+!
+! A signed non-commercial agreement is required to use this program.
+! Please check http://www.gps.caltech.edu/research/jtromp for details.
+! Free for non-commercial academic research ONLY.
+! This program is distributed WITHOUT ANY WARRANTY whatsoever.
+! Do not redistribute this program without written permission.
+!
+!=====================================================================
+!
+! Copyright July 2004, by the California Institute of Technology.
+! ALL RIGHTS RESERVED. United States Government Sponsorship Acknowledged.
+!
+! Any commercial use must be negotiated with the Office of Technology
+! Transfer at the California Institute of Technology. This software may be
+! subject to U.S. export control laws and regulations. By accepting
+! this software, the user agrees to comply with all applicable U.S. export laws
+! and regulations, including the International Traffic and Arms Regulations,
+! 22 C.F.R. 120-130 and the Export Administration Regulations,
+! 15 C.F.R. 730-744. User has the responsibility to obtain export licenses,
+! or other export authority as may be required before exporting such
+! information to foreign countries or providing access to foreign nationals.
+! In no event shall the California Institute of Technology be liable to any
+! party for direct, indirect, special, incidental or consequential damages,
+! including lost profits, arising out of the use of this software and its
+! documentation, even if the California Institute of Technology has been
+! advised of the possibility of such damage.
+!
+! The California Institute of Technology specifically disclaims any
+! warranties, including the implied warranties or merchantability and fitness
+! for a particular purpose. The software and documentation provided hereunder
+! is on an "as is" basis, and the California Institute of Technology has no
+! obligations to provide maintenance, support, updates, enhancements or
+! modifications.
+!
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++ NOTES ON USING THE SPECFEM3D PACKAGE +++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+ If you use this code for your own research, please send an email
+ to Jeroen Tromp <jtromp at caltech.edu> for information, and cite:
+
+ @ARTICLE{KoRiTr02,
+ author={D. Komatitsch and J. Ritsema and J. Tromp},
+ year=2002,
+ title={The Spectral-Element Method, {B}eowulf Computing, and Global Seismology},
+ journal={Science},
+ volume=298,
+ pages={1737-1742}}
+
+ @ARTICLE{KoTr02a,
+ author={D. Komatitsch and J. Tromp},
+ year=2002,
+ title={Spectral-Element Simulations of Global Seismic Wave Propagation{-I. V}alidation},
+ journal={Geophys. J. Int.},
+ volume=149,
+ pages={390-412}}
+
+ @ARTICLE{KoTr02b,
+ author={D. Komatitsch and J. Tromp},
+ year=2002,
+ title={Spectral-Element Simulations of Global Seismic Wave Propagation{-II. 3-D} Models, Oceans, Rotation, and Self-Gravitation},
+ journal={Geophys. J. Int.},
+ volume=150,
+ pages={303-318}}
+
+ @ARTICLE{KoTr99,
+ author={D. Komatitsch and J. Tromp},
+ year=1999,
+ title={Introduction to the spectral-element method for 3-{D} seismic wave propagation},
+ journal={Geophys. J. Int.},
+ volume=139,
+ pages={806-822}}
+
+ If you use 3-D model S20RTS, please cite
+
+ @ARTICLE{RiVa00,
+ author={J. Ritsema and H. J. {Van Heijst}},
+ year=2000,
+ title={Seismic imaging of structural heterogeneity in {E}arth's mantle: Evidence for large-scale mantle flow},
+ journal={Science Progress},
+ volume=83,
+ pages={243-259}}
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+REFERENCE FRAME - CONVENTION:
+
+The code uses the following convention for the reference frame:
+
+ - X axis is East
+ - Y axis is North
+ - Z axis is up
+
+Note that this convention is different from both the Aki-Richards convention
+and the Harvard CMT convention.
+
+Let us recall that the Aki-Richards convention is:
+
+ - X axis is North
+ - Y axis is East
+ - Z axis is down
+
+and that the Harvard CMT convention is:
+
+ - X axis is South
+ - Y axis is East
+ - Z axis is up
+
+
+PARAMETERS TO CHANGE ON DIFFERENT MACHINES:
+
+- All the codes in the package are written in Fortran90, and also
+ conform strictly to the Fortran95 standard. They do not use any
+ obsolescent or obsolete feature of f77.
+- Use the appropriate compiler flags in the Makefile.
+ Set F90, MPIF90, FLAGS_NO_CHECK, FLAGS_CHECK and MPI_FLAGS.
+- In constants.h set FIX_UNDERFLOW_PROBLEM flag
+ (need to fix underflow trapping on some machines, e.g., Pentium processors)
+- In constants.h set LOCAL_PATH_IS_ALSO_GLOBAL flag.
+ On clusters (e.g., Beowulfs), set to .false. in most cases.
+ In such a case, also customize global path to local
+ files in create_serial_name_database.f90 ("20 format ...").
+ This flag is used only when one checks the mesh with the serial codes
+ ("xcheck_buffers_1D" etc.), ignore it if you do not plan to use them
+- In DATA/Par_file set LOCAL_PATH (this is where databases are written and read,
+ and also where seismograms will be stored). The seismogram files will be
+ named *.semd (for Spectral Element Method - Displacement)
+- In precision.h choose single versus double precision (double precision
+ doubles the memory requirements for the solver but may be slightly faster).
+ Use single precision except if you have a very large machine
+ with a lot of memory.
+- Also, in constants.h choose the CUSTOM_REAL size depending on
+ single or double precision
+- When running on an SGI, add "setenv TRAP_FPE OFF" to your .cshrc file
+ *before* compiling, in order to turn underflow trapping off
+- When running on an IBM (e.g., an SP or a Power4), one needs to change
+ all the filename extensions from *.f90 to *.f ; a script is provided
+ in DATA/util/change_names_IBM to do that. One also needs to change
+ all the .f90 in the Makefile to .f
+
+DIRECTORIES:
+
+- make subdirectories obj and OUTPUT_FILES in the directory
+ with the source code (also done automatically by the go_mesher script below)
+
+SCRIPTS:
+
+- go_mesher runs the mesher
+ (need to set the correct mpirun command at the end of the script)
+ (if running on a Beowulf, the script assumes that the nodes are named n001,
+ n002 etc. If it is not the case, change the tr -d 'n' line in the script)
+- go_solver runs the solver
+ (need to set the correct mpirun command at the end of the script)
+- runall compiles and runs both mesher and solver
+
+MESHER (meshfem3D):
+
+- The mesher meshfem3D uses NPROC_XI * NPROC_ETA * NCHUNKS nodes
+ (The full globe consists of NCHUNKS = 6 chunks, and each chunk is divided
+ in NPROC_XI * NPROC_ETA slices)
+- For topological reasons related to the mesh, NPROC_XI and NPROC_ETA
+ must be equal when NCHUNKS = 6 or NCHUNKS = 3. The option of having
+ different values for NPROC_XI and NPROC_ETA is available only when
+ NCHUNKS = 1 (1/6th of the sphere) or NCHUNKS = 2.
+- Note that NPROC_XI = 1 and/or NPROC_ETA = 1 is valid. Therefore the
+ smallest number of nodes needed to run the code is NCHUNKS
+ (NCHUNKS chunks * 1 * 1). If you have less than NCHUNKS nodes
+ on your machine, you can start multiple MPI processes on each node
+ to emulate a larger machine.
+- NEX_XI and NEX_ETA need to be 16 * multiple of NPROC_XI and NPROC_ETA,
+ respectively. So in theory for NPROC_XI = NPROC_ETA = 1 NEX_XI = NEX_ETA = 16, 32, 48, ...,
+ 384 and 400 work, for NPROC_XI = NPROC_ETA = 2 NEX_XI = NEX_ETA = 32, 64, 96, ...,
+ 352 and 384 work, for NPROC_XI = NPROC_ETA = 3 NEX_XI = NEX_ETA = 48, 96, 144,
+ 192, 240, 288, 336 and 384 work, for NPROC_XI = NPROC_ETA = 4 NEX_XI = NEX_ETA = 64,
+ 128, 192, 256, 320 and 384, for NPROC_XI = NPROC_ETA = 5 NEX_XI = NEX_ETA = 80, 160,
+ 240, 320 and 400, and for NPROC_XI = NPROC_ETA = 6 NEX_XI = NEX_ETA = 96, 192, 288
+ and 384. In practice though, the curvature of the Earth cannot be honored if one
+ uses too few elements. By trial and error, we found that NEX_XI and NEX_ETA
+ should not be smaller than 64 typically. Smaller values are likely to give spectral
+ elements with a negative Jacobian, in which case the mesher will exit with an error message.
+
+- set all the parameters in DATA/Par_file, in particular the following:
+
+! shape of the first chunk (not used if full sphere with six chunks)
+ ANGULAR_WIDTH_XI_IN_DEGREES ! angular size of the first chunk
+ ANGULAR_WIDTH_ETA_IN_DEGREES
+ CENTER_LATITUDE_IN_DEGREES ! location of its center
+ CENTER_LONGITUDE_IN_DEGREES
+ GAMMA_ROTATION_AZIMUTH ! angle of rotation of the first chunk
+
+ MODEL ! Earth model to use
+
+ OCEANS ! to incorporate the effects of the oceans (cheap)
+ ELLIPTICITY ! to incorporate ellipticity (no cost)
+ TOPOGRAPHY ! to add topography and bathymetry (no cost)
+ GRAVITY ! to incorporate gravity (Cowling approximation, cheap)
+ ROTATION ! to incorporate Coriolis effects (cheap)
+ ATTENUATION ! to include attenuation (fairly expensive)
+
+ ABSORBING_CONDITIONS ! absorbing boundary conditions (cheap)
+
+ SAVE_AVS_DX_MESH_FILES ! save mesh files for AVS users, www.avs.com,
+ or OpenDX users, www.opendx.org). Do not use if you do not have AVS
+ or OpenDX, because this option creates large files.
+
+- Compile the mesher ("make meshfem3D") and run it with the go_mesher script
+- Mesher output is provided in the OUTPUT_FILES directory in output_mesher.txt
+ (output can be directed to the screen instead by uncommenting a line
+ in constants.h:
+ ! uncomment this to write messages to the screen
+ ! integer, parameter :: IMAIN = ISTANDARD_OUTPUT )
+- For a given model, set of nodes and set of parameters in DATA/Par_file,
+ one only needs to run the mesher once and for all, even if one wants
+ to run several simulations with different sources and/or receivers
+ (the source and receiver information is used in the solver only)
+- Some useful statistics about the mesh created are saved in the parameter file
+ for the solver, type "more OUTPUT_FILES/values_from_mesher.h" to see them.
+
+CHECKING THE MPI BUFFERS (optional, after running the mesher):
+
+- Use the four serial codes check_buffers_1D, check_buffers_2D,
+ check_buffers_faces_chunks and check_buffers_corners_chunks
+ to check all the MPI buffers generated by the mesher
+ (e.g., "make check_buffers_1D" and then "xcheck_buffers_1D")
+
+CHECKING THE MESH (optional, after running the mesher):
+
+- Use the serial code check_mesh_quality_AVS_DX
+ ("make check_mesh_quality_AVS_DX" and then "xcheck_mesh_quality_AVS_DX")
+ to generate an AVS output file ("AVS_meshquality.inp" in AVS UCD format)
+ or an OpenDX output file ("DX_meshquality.dx")
+ that can be used to investigate mesh quality, e.g., skewness of elements,
+ and a Gnuplot histogram ("mesh_quality_histogram.txt") that can
+ be plotted with gnuplot ("gnuplot plot_mesh_quality_histogram.gnu")
+
+- Use the serial code combine_AVS_DX
+ ("make combine_AVS_DX" and then "xcombine_AVS_DX")
+ to generate AVS output files (in AVS UCD format) or OpenDX output files
+ showing the mesh, the MPI partition (slices), the NCHUNKS chunks, the
+ source and receiver location etc. Use the AVS UCD files
+ AVS_continent_boundaries.inp and AVS_plate_boundaries.inp,
+ or the OpenDX files DX_continent_boundaries.dx and DX_plate_boundaries.dx
+ for reference.
+
+SOLVER (specfem3D):
+
+- For reasons of speed, the solver uses static memory allocation. Therefore it
+ needs to be recompiled ("make clean" and "make specfem3D") every time
+ one reruns the mesher. The mesher uses dynamic allocation only,
+ and does not need to be recompiled.
+- To compile the solver, one needs a file called
+ "OUTPUT_FILES/values_from_mesher.h" which contains the right parameters
+ describing the static size of the arrays.
+ This file is created by the mesher (meshfem3D.f90).
+ This means that one needs to run the mesher before being able to compile
+ the solver. For people who want to compile the mesher and the solver at
+ the same time, a small program called create_header_file.f90
+ is provided, which can be used to create "OUTPUT_FILES/values_from_mesher.h"
+ before running the mesher (type "make create_header_file" to compile it
+ and "xcreate_header_file" to run it). This is useful for people who want
+ to compile all the codes first and then submit the mesher and the solver
+ to a batch management system.
+- The solver also needs NPROC_XI * NPROC_ETA * NCHUNKS nodes to run
+- The solver needs the DATA/CMTSOLUTION file for the source and the
+ DATA/STATIONS file for the list of stations (CMTSOLUTION files may be
+ obtained directly from the Harvard CMT web page, www.seismology.harvard.edu)
+- Set the "time shift" in the CMTSOLUTION file to 0.0
+ (the solver will not run otherwise)
+- To simulate a delta source-time function, set "half duration" in
+ the CMTSOLUTION file to 0.0. If "half duration" is not zero,
+ the code will use a Gaussian (not too different from triangular)
+ source-time function with half-width "half duration". We prefer to run
+ the solver with "half duration" set to zero and convolve after the fact,
+ because this way it's easy to use a variety of source-time functions.
+ Use the serial code convolve_source_timefunction.f90 and the script
+ convolve_source_timefunction.csh for this purpose. (Set the parameter "hdur"
+ in convolve_source_timefunction.csh to the desired half-duration.)
+ (type "make convolve_source_timefunction" to compile the code).
+- To simulate multiple events, set the parameter NSOURCES in the DATA/Par_file
+ to the desired number. Provide a CMTSOLUTION file that has NSOURCES entries,
+ one for each CMT solution (i.e., concatenate NSOURCES CMTSOLUTION files
+ to a single CMTSOLUTION file). At least one entry should have a zero "time shift",
+ and all the other entries should have non-negative "time shift". Each event
+ can have its own half duration, latitude, longitude, depth and moment tensor.
+ This feature can also be used to mimic the directivity associated with a
+ finite source.
+- Solver output is provided in the OUTPUT_FILES directory in output_solver.txt
+ (output can be directed to the screen instead by uncommenting a line
+ in constants.h:
+ ! uncomment this to write messages to the screen
+ ! integer, parameter :: IMAIN = ISTANDARD_OUTPUT )
+- There are two different versions of the main solver routines.
+ Type "copy_files_regular.csh" to use the regular version,
+ and "copy_files_inlined_5.csh" to use the inlined version, which may be
+ faster on some machines (you can try both once to determine which
+ code gives the fastest result on your machine). Note that the inlined
+ version is written specifically for polynomial degree NGLL = 5
+ in constants.h, and cannot run with any other value, while the regular
+ version can. Note also that the two versions implement
+ the exact same calculations, and therefore give the same results
+ down to the roundoff error, which can be different. It is only
+ the implementation that differs between the two versions.
+- If you have a fast machine, set NTSTEP_BETWEEN_OUTPUT_INFO
+ to a relatively high value (e.g. at least 100, or even 1000 or more)
+ to avoid writing to the output text files too often. Same thing
+ with NTSTEP_BETWEEN_OUTPUT_SEISMOS.
+- On clusters (e.g., Beowulfs) the seismogram files are distributed on the
+ local disks (path LOCAL_PATH in the DATA/Par_file) and need to be gathered
+ at the end of the simulation.
+- For the same model, rerun the solver for different events by changing the
+ CMTSOLUTION file, or for different stations by changing the STATIONS file.
+ There is no need to rerun the mesher. It is best to include as many stations
+ as possible, since this does not add to the cost of the simulation.
+
+MOVIE OF THE RESULTS:
+
+- Use create_movie_AVS_DX.f90 ("make create_movie_AVS_DX") to create
+ a movie of surface displacement (radial component) or of the entire 3D wave
+ field. The movie can be saved in OpenDX or AVS format. Set parameters
+ MOVIE_SURFACE, MOVIE_VOLUME, and NTSTEP_BETWEEN_FRAMES in the Par_file.
+ Remember to use a DATA/CMTSOLUTION source file with a half-duration
+ hdur > 0, otherwise you will get a movie corresponding to a Heaviside
+ source, with a lot of high-frequency noise. Note that this option
+ creates large files!
+
+Note: The Gauss-Lobatto subroutines in gll_library.f90 are based in part on
+ software libraries from M.I.T., Department of Mechanical Engineering.
+
+Note: The non-structured global numbering software was provided
+ by Paul F. Fischer.
+
+Note: Subroutines from "Numerical Recipes: The Art of Scientific Computing"
+ by W. H. Press et al., Cambridge University Press, are used in
+ numerical_recipes.f90. The user must acquire an official
+ Numerical Recipes license to run them.
+
+Note: OpenDX is open-source based on IBM Data Explorer, www.opendx.org
+ AVS is a trademark of Advanced Visualization Systems, www.avs.com
+
More information about the CIG-COMMITS
mailing list