-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparameters.yaml
More file actions
590 lines (590 loc) · 27.4 KB
/
Copy pathparameters.yaml
File metadata and controls
590 lines (590 loc) · 27.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
# //////////////////////////////////////////////////////////////////////////////
#
# SeisFlows v3.5.3
#
# //////////////////////////////////////////////////////////////////////////////
#
# SeisFlows YAML parameter file that determines code setup and runtime behavior.
# The following commands may be useful for manipulating this file.
#
# * list out all available module choices:
# > seisflows print modules
# * configure the parameter file by autofilling module parameters:
# > seisflows configure
# * swap parameter sets between by choosing new modules:
# > seisflows swap <module> <name> (e.g., seisflows swap solver specfem3d)
#
# YAML syntax tips:
# - NoneType == null
# - infinity == inf
#
# MODULES
# ///////
# workflow (str): The types and order of functions for running SeisFlows(forward,inversion)
# system (str): Computer architecture of the system being used(workstation,cluster)
# solver (str): External numerical solver to use for waveform simulations(specfem2d)
# preprocess (str): Preprocessing schema for waveform data
# optimize (str): Optimization algorithm for the inverse problem(gradient,LBFGS)
# ==============================================================================
workflow: inversion
system: cluster
solver: specfem2d
preprocess: default
optimize: LBFGS
# =============================================================================
#
# Forward Workflow [Workflow Base]
# --------------------------------
# Defines foundational structure for Workflow module. When used standalone
# is in charge of running forward solver in parallel and (optionally)
# calculating data-synthetic misfit and adjoint sources.
#
# Parameters
# ----------
# :type modules: list of module
# :param modules: instantiated SeisFlows modules which should have been
# generated by the function `seisflows.config.import_seisflows` with a
# parameter file generated by seisflows.configure
# :type generate_data: bool
# :param generate_data: How to address 'data' in the workflow:
# - False: real data needs to be provided by the User in
# `path_data/{source_name}/*` in the same format that the solver will
# produce synthetics (controlled by `solver.format`) OR
# - True: 'data' will be generated as synthetic seismograms using
# a target model provided in `path_model_true`.
# :type stop_after: str
# :param stop_after: optional name of task in task list (use
# `seisflows print tasks` to get task list for given workflow) to stop
# workflow after, allowing user to prematurely stop a workflow to explore
# intermediate results or debug.
# :type export_traces: bool
# :param export_traces: export all waveforms that are generated by the
# external solver to `path_output`. If False, solver traces stored in
# scratch may be discarded at any time in the workflow
# :type export_residuals: bool
# :param export_residuals: export all residuals (data-synthetic misfit) that
# are generated by the external solver to `path_output`. If False,
# residuals stored in scratch may be discarded at any time in the
# workflow
#
#
# Migration Workflow
# ------------------
# Run forward and adjoint solver to produce event-dependent misfit kernels.
# Sum and postprocess kernels to produce gradient. In seismic exploration
# this is 'reverse time migration'.
#
# Parameters
# ----------
# :type export_gradient: bool
# :param export_gradient: export the gradient after it has been generated
# in the scratch directory. If False, gradient can be discarded from
# scratch at any time in the workflow
# :type export_kernels: bool
# :param export_kernels: export each sources event kernels after they have
# been generated in the scratch directory. If False, gradient can be
# discarded from scratch at any time in the workflow
#
#
# Inversion Workflow
# ------------------
# Peforms iterative nonlinear inversion using the machinery of the Forward
# and Migration workflows, as well as a built-in optimization library.
#
# Parameters
# ----------
# :type start: int
# :param start: start inversion workflow at this iteration. 1 <= start <= inf
# :type end: int
# :param end: end inversion workflow at this iteration. start <= end <= inf
# :type iteration: int
# :param iteration: The current iteration of the workflow. If NoneType, takes
# the value of `start` (i.e., first iteration of the workflow). User can
# also set between `start` and `end` to resume a failed workflow.
# :type thrifty: bool
# :param thrifty: a thrifty inversion skips the costly intialization step
# (i.e., forward simulations and misfit quantification) if the final
# forward simulations from the previous iterations line search can be
# used in the current one. Requires L-BFGS optimization.
# :type export_model: bool
# :param export_model: export best-fitting model from the line search to disk.
# If False, new models can be discarded from scratch at any time.
#
#
# =============================================================================
stop_after: null
generate_data: true
export_traces: False
export_residuals: False
export_gradient: True
export_kernels: False
start: 1
end: 120
export_model: True
thrifty: False
iteration: null
# =============================================================================
#
# Workstation System [System Base]
# --------------------------------
# Defines foundational structure for System module. When used standalone,
# runs solver tasks either in serial (if `nproc`==1; i.e., without MPI) or in
# parallel (if `nproc`>1; i.e., with MPI). All other tasks are run in serial.
#
# Parameters
# ----------
# :type ntask: int
# :param ntask: number of individual tasks/events to run during workflow.
# Must be <= the number of source files in `path_specfem_data`
# :type nproc: int
# :param nproc: number of processors to use for each simulation. Choose 1 for
# serial simulations, and `nproc`>1 for parallel simulations.
# :type tasktime: float
# :param tasktime: maximum job time in units minutes for each job spawned by
# the SeisFlows master job during a workflow. These include, e.g.,
# running the forward solver, adjoint solver, smoother, kernel combiner.
# All spawned tasks receive the same task time. Fractions of minutes
# acceptable. If set as `None`, no tasktime will be enforced.
# :type mpiexec: str
# :param mpiexec: MPI executable on system. Defaults to 'mpirun -n ${NPROC}'
# :type array: str
# :param array: for `ntask` > 1, determine which tasks to submit to run. By
# default (NoneType) this submits all task IDs [0:ntask), or for single
# runs, submits only the first task ID, 0. However, for debugging or
# manual control purposes, Users may input a string of task IDs that they
# would like to run. Follows formatting of SLURM array directive
# (https://slurm.schedmd.com/job_array.html), which is, for example:
# 1,2,3-8:2,10 -> 1,2,3,5,7,10
# where '-' denotes a range (inclusive), and ':' denotes an optional step.
# If ':' step is not given for a range, then step defaults to 1.
# :type rerun: int
# :param rerun: [EXPERIMENTAL FEATURE] attempt to re-run failed tasks or
# array tasks submitted with `run`. Collects information about failed
# jobs (or array jobs) after a failure, and re-submits with `run`.
# `rerun` is an integer defining how many times the User wants System to
# try and rerun before failing the entire job. If 0 (default), a single
# task failure will cause main job failure.
# :type log_level: str
# :param log_level: logger level to pass to logging module.
# Available: 'debug', 'info', 'warning', 'critical'
# :type verbose: bool
# :param verbose: if True, formats the log messages to include the file
# name and line number of the log message in the source code, as well as
# the message and message type. Useful for debugging but also very verbose
# so not recommended for production runs.
#
#
# Cluster System
# --------------
# Generic or common HPC/cluster interfacing commands
#
# Parameters
# ----------
# :type title: str
# :param title: The name used to submit jobs to the system, defaults
# to the name of the current working directory
# :type mpiexec: str
# :param mpiexec: Function used to invoke executables on the system.
# For example 'mpirun', 'mpiexec', 'srun', 'ibrun'
# :type ntask_max: int
# :param ntask_max: limit the number of concurrent tasks in a given array job.
# Note that if you are directly running the Cluster system on a
# workstation or the login node of your cluster, try to adhere to
# the number of cores on your system should be <= `ntask_max` * `nproc`,
# otherwise you may face memory allocation errors
# :type walltime: float
# :param walltime: maximum job time in minutes for the master SeisFlows
# job submitted to cluster. Fractions of minutes acceptable.
# :type environs: str
# :param environs: Optional environment variables to be provided in the
# following format VAR1=var1,VAR2=var2... Will be set using
# os.environs
#假设你需要设置两个环境变量 CUDA_HOME 和 OMP_NUM_THREADS
#来指定 CUDA 路径和 OpenMP 线程数。
#你可以在提交作业时通过 environs 参数设置这些变量。
#
# =============================================================================
ntask: 100
nproc: 7
tasktime: 10000
rerun: 0
mpiexec: mpirun
array: null
log_level: DEBUG
verbose: False
title: scratch_acoustic
ntask_max: 100
walltime: 1000
environs:
# =============================================================================
#
# Solver SPECFEM [Solver Base]
# ----------------------------
# Defines foundational structure for Specfem-based solver module.
# Generalized SPECFEM interface to manipulate SPECFEM2D/3D/3D_GLOBE w/ Python
#
# Parameters
# ----------
# :type syn_data_format: str
# :param syn_data_format: data format for reading synthetic traces into memory.
# Available: ['SU': seismic unix format, 'ASCII': human-readable ascii]
# :type materials: str or list
# :param materials: Material name used to define the model parameters that
# will be updated during an Inversion workflow. Available options
# (case-insensitive):
# - `type: list` (2D, 3D, 3D_GLOBE): User-defined list of lower-case
# parameters (e.g., ['vp', 'vs'] to mimic 'ELASTIC')
# NOTE: User is responsible for understanding if their chosen
# parameters are actually represented in SPECFEM, there are no guard
# rails here to protect incorrect parameter naming
# - ACOUSTIC (2D, 3D, 3D_GLOBE): vp
# - ELASTIC (2D, 3D, 3D_GLOBE): vp, vs
# - TRANSVERSE_ISOTROPIC (3D, 3D_GLOBE): vpv, vph, vsv, vsh, eta
# - 2D_ANISOTROPIC (2D): c11 c13 c15 c33 c35 c55 c12 c23 c25 c22
# - ANISOTROPIC (3D, 3D_GLOBE): c_ij (21 parameter anisotropy)
#
# :type update_density: bool
# :param update_density: How to treat density during inversion. If True,
# updates density during inversion. If False, keeps it constant.
# TODO allow density scaling during an inversion
# :type attenuation: bool
# :param attenuation: How to treat attenuation during inversion.
# if True, turns on attenuation during forward simulations only. If
# False, attenuation is always set to False. Requires underlying
# attenution (Q_mu, Q_kappa) model
# :type smooth_h: float
# :param smooth_h: Gaussian half-width for horizontal smoothing in units
# of meters. If 0., no smoothing applied. Only applicable for workflows:
# ['migration', 'inversion'], ignored for 'forward' workflow.
# SPECFEM3D_GLOBE only: if `smooth_type`=='laplacian' then this is just
# the X and Y extent of the applied smoothing
# :type smooth_v: float
# :param smooth_v: Gaussian half-width for vertical smoothing in units
# of meters. Only applicable for workflows: ['migration', 'inversion'],
# ignored for 'forward' workflow.
# SPECFEM3D_GLOBE only: if `smooth_type`=='laplacian' then this is just
# the Z extent of the applied smoothing
# :type smooth_type: str
# :param smooth_type: choose how smoothing is performed for gradients.
# these are tied to the internal smoothing functions available, and only
# certain code flavors have certain smoothing functions available:
# - 'gaussian' [2D/3D/3D_GLOBE]: Default, convolve with a 3D gaussian,
# slow and computationally intensive. Only option for 2D.
# - 'laplacian' [3D_GLOBE]: RECOMMENDED FOR 3D_GLOBE. Average points
# around vertex to smooth. Much faster than Gaussian.
# - 'pde' [3D]: RECOMMENDED for 3D. Diffusion-based PDE smoothing.
# Much faster than Gaussian. See SPECFEM3D PR#1725
# :type components: str
# :param components: components to search for synthetic data with. None by
# default which uses a wildcard when searching for synthetics. If
# provided, User only wants to use a subset of components generated by
# SPECFEM. In that case, `components` should be string of letters such
# as 'ZN' (for up and north components)
# :type solver_io: str
# :param solver_io: format of model/kernel/gradient files expected by the
# numerical solver. Available: ['fortran_binary': default .bin files].
# TODO: ['adios': ADIOS formatted files]
# :type source_prefix: str
# :param source_prefix: prefix of source/event/earthquake files. If None,
# will attempt to guess based on the specific solver chosen.
# :type mpiexec: str
# :param mpiexec: MPI executable used to run parallel processes. Should also
# be defined for the system module
#
#
# Solver SPECFEM2D
# ----------------
# SPECFEM2D-specific alterations to the base SPECFEM module
#
# Parameters
# ----------
# :type source_prefix: str
# :param source_prefix: Prefix of source files in path SPECFEM_DATA. Defaults
# to 'SOURCE'
# :type multiples: bool
# :param multiples: set an absorbing top-boundary condition
#
#
# =============================================================================
syn_data_format: ascii
materials: acoustic
update_density: False
attenuation: False
smooth_h: 500
smooth_v: 166
smooth_type: gaussian
Hessian: True
components: null
source_prefix: SOURCE
prune_scratch: null
multiples: False
# =============================================================================
#
# Default Preprocess [Preprocess Base]
# ------------------------------------
# Data processing for seismic traces, with options for data misfit,
# filtering, normalization and muting.
#
# Parameters
# ----------
# :type obs_data_format: str
# :param obs_data_format: data format for reading observed traces into
# memory. Available formats: 'su', 'ascii', 'sac'
# :type unit_output: str
# :param unit_output: Data units. Must match the synthetic output of
# external solver. Available: ['DISP': displacement, 'VEL': velocity,
# 'ACC': acceleration, 'PRE': pressure]
# :type misfit: str
# :param misfit: misfit function for waveform comparisons. For available
# see seisflows.plugins.preprocess.misfit
# :type adjoint: str
# :param adjoint: adjoint source misfit function (backprojection function for
# migration, or the objective function in FWI). For available see
# seisflows.plugins.preprocess.adjoint
# :type normalize: str
# :param normalize: Data normalization parameters used to normalize the
# amplitudes of waveforms. By default, set to NoneType, which means no
# normalization is applied. User can choose from one of the following
# options to normalize BOTH `obs` and `syn` data:
#
# - TNORML1: normalize per trace by the L1 norm of itself
# - TNORML2: normalize per trace by the L2 norm of itself
# - TNORM_MAX: normalize by the maximum positive amplitude in the trace
# - TNORM_ABSMAX: normalize by the absolute maximum amplitude in the trace
# - TNORM_MEAN: normalize by the mean of the absolute trace
# - RNORM_OBS_MAX: normalize synthetic traces by the maximum amplitude of
# the corresponding observed trace
# - RNORM_OBS_ABSMAX: normalize synthetic traces by the absolute maximum
# amplitude of the corresponding observed trace
# - RNORM_SYN_MAX: normalize observed traces by the maximum amplitude of
# the corresponding synthetic trace
# - RNORM_SYN_ABSMAX: normalize observed traces by the absolute maximum
# amplitude of the corresponding synthetic trace
#
# Note: options ENORML? are not currently available. If this is a
# feature you would like to see, please open a GitHub Issue.
# - ENORML1: normalize per event by L1 of traces; OR
# - ENORML2: normalize per event by L2 of traces;
# :type filter: str
# :param filter: Data filtering type, by default no filtering is applied.
# Available options for user to choose are:
#
# - BANDPASS (requires: MIN_FREQ + MAX_FREQ OR MIN_PERIOD + MAX PERIOD);
# - LOWPASS (requires: MAX_FREQ OR MIN_PERIOD);
# - HIGHPASS (requires: MIN_FREQ OR MAX_PERIOD);
# :type min_period: float
# :param min_period: Minimum filter period applied to time series.
# See also MIN_FREQ, MAX_FREQ, if User defines FREQ parameters, they
# will overwrite PERIOD parameters.
# :type max_period: float
# :param max_period: Maximum filter period applied to time series. See
# also MIN_FREQ, MAX_FREQ, if User defines FREQ parameters, they will
# overwrite PERIOD parameters.
# :type min_freq: float
# :param min_freq: Maximum filter frequency applied to time series,
# See also MIN_PERIOD, MAX_PERIOD, if User defines FREQ parameters,
# they will overwrite PERIOD parameters.
# :type max_freq: float
# :param max_freq: Maximum filter frequency applied to time series,
# See also MIN_PERIOD, MAX_PERIOD, if User defines FREQ parameters,
# they will overwrite PERIOD parameters.
# :type mute: list
# :param mute: Data mute parameters used to zero out early / late
# arrivals or offsets. Choose the following:
# - EARLY: mute early arrivals
# - LATE: mute late arrivals;
# - SHORT: mute short source-receiver distances;
# - LONG: mute long source-receiver distances
# input comma separated list of strings, (e.g., mute: early,late,short)
# :type plot_waveforms: bool
# :param plot_waveforms: plot waveforms from each evaluation of the misfit.
# By default turned off as this can produce many files for an interative
# inversion.
#
#
# =============================================================================
obs_data_format: ASCII
unit_output: PRE
misfit: traveltime
adjoint: traveltime
normalize: []
filter: null
min_period: null
max_period: null
min_freq: null
max_freq: null
mute: []
early_slope: null
early_const: null
late_slope: null
late_const: null
short_dist: null
long_dist: null
source_stations: notexist
plot_waveforms: False
# =============================================================================
#
# Gradient Optimization [Optimize Base]
# -------------------------------------
# Defines foundational structure for Optimization module. Applies a
# gradient/steepest descent optimization algorithm.
#
# Parameters
# ----------
# :type line_search_method: str
# :param line_search_method: chosen line_search algorithm. Currently available
# are 'bracket' and 'backtrack'. See seisflows.plugins.line_search
# for all available options
# :type preconditioner: str
# :param preconditioner: algorithm for preconditioning gradients. Currently
# available: 'diagonal'. Requires `path_preconditioner` to point to a
# set of files that define the preconditioner, formatted the same as the
# input model
# :type step_count_max: int
# :param step_count_max: maximum number of trial steps to perform during
# the line search before a change in line search behavior is
# considered, or a line search is considered to have failed.
# :type step_len_init: float
# :param step_len_init: initial line search step length guess, provided
# as a fraction of current model parameters.
# :type step_len_max: float
# :param step_len_max: optional, maximum allowable step length during the line
# search. Set as a fraction of the current model parameters
# :type step_len_min: float
# :param step_len_min: optional, minimum allowable step length during the line
# search. Set as a fraction of the current model parameters
#
#
# L-BFGS Optimization
# -------------------
# Limited memory BFGS nonlinear optimization algorithm
#
# Parameters
# ----------
# :type lbfgs_mem: int
# :param lbfgs_mem: L-BFGS memory. Max number of previous gradients to
# retain in local memory for approximating the objective function.
# :type lbfgs_max: L-BFGS periodic restart interval. Must be
# 1 <= lbfgs_max <= infinity.
# :type lbfgs_thresh: L-BFGS angle restart threshold. If the angle between
# the current and previous search direction exceeds this value,
# optimization algorithm will be restarted.
#
#
# =============================================================================
preconditioner: null
step_count_max: 10
step_len_init: 0.5
step_len_max: 1
step_len_min: 0.001
vp_min: 3600.0
vp_max: 4400.0
vs_min: 1800.0
vs_max: 2200.0
line_search_method: Backtrack
LBFGS_mem: 3
LBFGS_max: inf
LBFGS_thresh: 0.0
# =============================================================================
#
# Paths
# -----
# :type workdir: str
# :param workdir: working directory in which to perform a SeisFlows workflow.
# SeisFlows internal directory structure will be created here. Default cwd
# :type path_output: str
# :param path_output: path to directory used for permanent storage on disk.
# Results and exported scratch files are saved here.
# :type path_data: str
# :param path_data: path to any externally stored data required by the solver
# :type path_state_file: str
# :param path_state_file: path to a text file used to track the current
# status of a workflow (i.e., what functions have already been completed),
# used for checkpointing and resuming workflows
# :type path_model_init: str
# :param path_model_init: path to the starting model used to calculate the
# initial misfit. Must match the expected `solver_io` format.
# :type path_model_true: str
# :param path_model_true: path to a target model if `case`=='synthetic' and
# a set of synthetic 'observations' are required for workflow.
# :type path_eval_grad: str
# :param path_eval_grad: scratch path to store files for gradient evaluation,
# including models, kernels, gradient and residuals.
# :type path_mask: str
# :param path_mask: optional path to a masking function which is used to
# mask out or scale parts of the gradient. The user-defined mask must
# match the file format of the input model (e.g., .bin files).
# 迁移工作流程
# ------------------
# 运行正向和伴随求解器以生成事件依赖的误差核。对核进行求和和后处理以生成梯度。在地震勘探中,
# 这被称为“反时间迁移”。
# 参数
# ----------
# :type export_gradient: bool
# :param export_gradient: 在生成后将梯度导出到临时目录。
# 如果为False ,梯度可在工作流的任何阶段从临时目录中
# 丢弃
# :type export_kernels: bool
# :param export_kernels: 在生成后将每个源事件核导出到临时目录。如果为 False,梯度可在
# 工作流的任何阶段从临时目录中丢弃
#
# 路径
# -----
# :type path_mask: str
# :param path_mask: 可选的路径,指向用于掩码或缩放梯度部分的掩码函数。用户定义的掩码必须
# 与输入模型的文件格式匹配(例如 .bin 文件)。
# :type path_eval_func: str
# :param path_eval_func: scratch path to store files for line search objective
# function evaluations, including models, misfit and residuals
#
# :type path_output_log: str
# :param path_output_log: path to a text file used to store the outputs of
# the package wide logger, which are also written to stdout
# :type path_par_file: str
# :param path_par_file: path to parameter file which is used to instantiate
# the package
# :type path_log_files: str
# :param path_log_files: path to a directory where individual log files are
# saved whenever a number of parallel tasks are run on the system.
# Workstation 类是 SeisFlows 中的 基础系统模块(System Module),它为在 小型机器 上运行
# 地球物理反演任务 提供了一个框架。
# 该类主要用于在 串行 或 并行 模式下提交作业,适用于 工作站 或 笔记本电脑 等小型计算环境
#
# :type path_data: str
# :param path_data: path to any externally stored waveform data required for
# data-synthetic comparison
# :type path_specfem_bin: str
# :param path_specfem_bin: path to SPECFEM bin/ directory which
# contains binary executables for running SPECFEM
# :type path_specfem_data: str
# :param path_specfem_data: path to SPECFEM DATA/ directory which must
# contain the CMTSOLUTION, STATIONS and Par_file files used for
# running SPECFEM
#
# :type path_preprocess: str
# :param path_preprocess: scratch path for all preprocessing processes,
# including saving files
#
# :type path_preconditioner: str
# :param path_preconditioner: optional path to a set of preconditioner files
# formatted the same as the input model (or output model of solver).
# Required to exist and contain files if `preconditioner`==True
#
# =============================================================================
path_model_init: /csim2/lty_zcg/Program_study/seisflows_study/09_test_create_model/scratch_acoustic/specfem2d_workdir/OUTPUT_FILES_INIT
path_model_true: /csim2/lty_zcg/Program_study/seisflows_study/09_test_create_model/scratch_acoustic/specfem2d_workdir/OUTPUT_FILES_TRUE
path_data: waveforms
path_mask: null
path_specfem_bin: /csim2/lty_zcg/Program_study/seisflows_study/09_test_create_model/scratch_acoustic/specfem2d_workdir/bin
path_specfem_data: /csim2/lty_zcg/Program_study/seisflows_study/09_test_create_model/scratch_acoustic/specfem2d_workdir/DATA
path_preconditioner: null
# -----------------------------------------------------------------------------
# Parameters below define the working directory and can be left default
# -----------------------------------------------------------------------------
path_workdir: .
path_output_log: sflog.txt
path_state_file: sfstate.txt
path_par_file: parameters.yaml
path_output: output
path_scratch: scratch
path_log_files: logs