Parameter File

General Information

The parameter file in SeisSol is based on the Fortran NAMELIST format. The file is divided into different sections. Each section has a set of configuration parameters that influences the execution of SeisSol. Each configuration parameter can be one of the following:

  • Integer
  • Float
  • Array Arrays can contain integers or floats and have a fixed size. The elements are separated by spaces (1 2 3 4)
  • String
  • Path A path references a file or a directory and is given as a string in the parameter file with additional restrictions. A path might be absolute or relative to the starting directory of the execution. If the path is used for an output file, the user has to make sure that the directory exists. (E.g. If the path is set to “output/wavefield”, then the directory “output” must exist.)
  • Path prefix Path prefixes are similar to paths. However, SeisSol will automatically append a filename extension or other suffixes (e.g. “-fault”).

Commented parameter file

&equations
!yaml file defining spatial dependance of material properties
MaterialFileName = '33_layered_constant.yaml'
!off-fault plasticity parameter (ignored in Plasticity=0)
Plasticity=0
Tv=0.05
!Attenuation parameters (ignored if not compiled with attenuation)
FreqCentral=2.5
FreqRatio=100
/

&IniCondition
cICType = 'Zero'                  ! Initial Condition
!If not specified the default value is Zero
!Possible values are
!Zero        All zero - the standard case to work with point source or dynamic rupture
!Planarwave  A planar wave for convergence tests, needs periodic boundary conditions
!Scholte     A Scholte wave to test elastic-acoustic coupling
!Snell       Snells law to test elastic-acoustic coupling
!Ocean       An uncoupled ocean test case for acoustic equations

/

&Boundaries
BC_fs = 1                               ! enable free surface boundaries
BC_dr = 1                               ! enable fault boundaries
BC_of = 1                               ! enable absorbing boundaries
/

&DynamicRupture
FL = 16                      ! Friction law  
!0: none, 16:LSW, 103: RS with strong velocity weakening
!yaml file defining spatial dependance of fault properties
ModelFileName = '33_fault0.yaml'

!reference vector for defining strike and dip direction
XRef = -0.1                  ! Reference point
YRef = 0.0
ZRef = -1.0
refPointMethod = 1

RF_output_on = 0            ! Rupture front ascii output
magnitude_output_on =0      ! Moment magnitude output
energy_rate_output_on =1    ! Moment rate output
OutputPointType = 5         ! Type (0: no output, 3: ascii file, 4: paraview file, 5: 3+4)
SlipRateOutputType=0        ! 0: (smoother) slip rate output evaluated from the difference between the velocity on both side of the fault
                            ! 1: slip rate output evaluated from the fault tractions and the failure criterion (less smooth but usually more accurate where the rupture front is well developped)
/

!see: https://seissol.readthedocs.io/en/latest/fault-output.html
! parameterize paraview file output
&Elementwise
printIntervalCriterion = 2       ! 1=iteration, 2=time
printtimeinterval_sec = 0.2      ! Time interval at which output will be written
OutputMask = 1 1 1 1 1 1 1 1 1 1 1   ! turn on and off fault outputs
refinement_strategy = 2
refinement = 1
/

! parameterize ascii fault file outputs
&Pickpoint
printtimeinterval = 1       ! Index of printed info at timesteps
OutputMask = 1 1 1 0        ! turn on and off fault outputs
nOutpoints = 28
PPFileName = 'tpv33_faultreceivers.dat'
/

&SourceType
!Type = 50   ! 50: point source described by an ASCII file
!Type = 42   ! 42: finite source in netcdf format
!FileName = 'source_norm.dat'
/

&SpongeLayer
/
            
&MeshNml
MeshFile = 'tpv33_gmsh'         ! Name of mesh file
meshgenerator = 'PUML'          ! Name of meshgenerator (Gambit3D-fast, Netcdf or PUML)
/

&Discretization
CFL = 0.5                            ! CFL number (<=1.0)
FixTimeStep = 5                      ! Manualy chosen minimum time
ClusteredLTS = 2                     ! 1 for Global time stepping, 2,3,5,... Local time stepping (advised value 2)
!ClusteredLTS defines the multi-rate for the time steps of the clusters 2 for Local time stepping
/

&Output
FaultOutputFlag = 1                  ! DR output (add this line only if DR is active)
OutputFile = '../output_tpv33/tpv33'
Format = 10                          ! Format (10= no output, 6=hdf5 output)
!             |stress     |vel  |plastic strain output (if any)
iOutputMask = 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
printIntervalCriterion = 2           ! Criterion for index of printed info: 1=timesteps,2=time,3=timesteps+time
TimeInterval = 2.                    ! Index of printed info at time
refinement = 1
OutputRegionBounds = -20e3 20e3 -10e3 10e3 -20e3 0e3 !(optional) array that describes the region 
! of the wave field that should be written. Specified as 'xmin xmax ymin ymax zmin zmax'

! off-fault ascii receivers
nRecordPoints = 85                    ! number of Record points which are read from file
RFileName = 'tpv33_receivers.dat'      ! Record Points in extra file
pickdt = 0.005                       ! Pickpoint Sampling
pickDtType = 1                       ! Pickpoint Type
! (Optional) Synchronization point for receivers.
!            If omitted, receivers are written at the end of the simulation.
ReceiverOutputInterval = 10.0

! Free surface output
SurfaceOutput = 1
SurfaceOutputRefinement = 1
SurfaceOutputInterval = 2.0

!Checkpointing
checkPointFile = 'checkpoint/checkpoint'
checkPointBackend = 'mpio'           ! Checkpoint backend
checkPointInterval = 6

xdmfWriterBackend = 'posix' ! (optional) The backend used in fault, wavefield,
! and free-surface output. The HDF5 backend is only supported when SeisSol is compiled with
! HDF5 support.
/
           
&AbortCriteria
EndTime = 13.0
/

&Analysis
/

&Debugging
/

Sections

Additional, more detailed information on several sections are listed here.

DynamicRupture

Reference point

The slip rate is defined as the velocity difference between the two sides of a fault, that is,

\(\Delta v=v^{+}-v^{-}\).

A practical issue is to define which side at an interface corresponds to “+” and which one to “-“. The reference point defines which side is which and it is crucial to set it correctly.

The parameters XRef, YRef, ZRef define the coordinate vector of the reference point, which we denote with r. Furthermore, the refPointMethod has to specified, whose effect is outlined in the following.

  1. refPointMethod=0
    In order to decide if a side of a fault is “+” or “-” we compute the vectors n, x, and y for a face of a tetrahedron, whose boundary condition indicates it to be part of the fault. The vector n is the face’s normal, which always points outward with respect to the tetrahedron. The vector x is an arbitrary vertex of the face and the vector y is face’s the missing vertex, that is, the vertex which belongs to the tetrahedron but not to the face.
    We define
    \(\text{isPlus}:=\left<\mathbf{r}-\mathbf{x},\mathbf{n}\right>\cdot\left<\mathbf{y}-\mathbf{x},\mathbf{n}\right>>0\)
    isPlus is only true whenever r-x and y-x point in the same direction (lie in the same half-space w.r.t. n).
    This method works, as long as the sign of the first dot product is the same for all faces tagged as being part of the fault.
    Example: One has a planar fault with normal N and an arbitrary point z on the plane. Then a good reference point would be z+N. In this case, n=N and
    \(\left<\mathbf{z}+\mathbf{N}-\mathbf{x},\mathbf{n}\right>=\left<\mathbf{z}-\mathbf{x},\mathbf{N}\right>+\left<\mathbf{N},\mathbf{N}\right>=\left<\mathbf{N},\mathbf{N}\right>\)
    that is, the first dot product becomes independent of the face.
  2. refPointMethod=1
    Here, r should be rather be called reference direction instead of reference point.
    We define, with n again being a face’s normal,
    \(\text{isPlus}:=\left<\mathbf{r},\mathbf{n}\right>>0\)
    Example: One has a planar fault with normal N. Then a good reference direction would be N.

Application Example: Assume you have chosen a enu coordinate system (x=east, y=north, z=up). Your fault is in the x-z-plane with y=0 (strike-slip fault) and you set the reference point to (0,10000,0) with refPointMethod=0. Then, the faces with normal (0,-1,0) make up the “+”-side. In this case, all vertices of the “+”-tetrahedron lie in the half-space \(y\ge 0\).

In the fault output, a strike and dip direction is defined (see create_fault_rotationmatrix.f90). For the normal (0,-1,0), one would obtain (-1,0,0) as strike direction (west). Recalling the definition of the slip rate, a positive slip rate indicates left-lateral motion.

Read the article Left-lateral, right-lateral, normal, reverse for more information.