kspaceFirstOrder3D-OMP  1.2
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
Parameters.cpp
Go to the documentation of this file.
1 /**
2  * @file Parameters.cpp
3  *
4  * @author Jiri Jaros \n
5  * Faculty of Information Technology \n
6  * Brno University of Technology \n
7  * jarosjir@fit.vutbr.cz
8  *
9  * @brief The implementation file containing parameters of the simulation.
10  *
11  * @version kspaceFirstOrder3D 2.16
12  *
13  * @date 09 August 2012, 13:39 (created) \n
14  * 04 September 2017, 11:13 (revised)
15  *
16  * @copyright Copyright (C) 2017 Jiri Jaros and Bradley Treeby.
17  *
18  * This file is part of the C++ extension of the [k-Wave Toolbox](http://www.k-wave.org).
19  *
20  * This file is part of the k-Wave. k-Wave is free software: you can redistribute it and/or modify it under the terms
21  * of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the
22  * License, or (at your option) any later version.
23  *
24  * k-Wave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
25  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
26  * more details.
27  *
28  * You should have received a copy of the GNU Lesser General Public License along with k-Wave.
29  * If not, see [http://www.gnu.org/licenses/](http://www.gnu.org/licenses/).
30  */
31 
32 #ifdef _OPENMP
33  #include <omp.h>
34 #endif
35 
36 #include <exception>
37 #include <stdexcept>
38 
39 #include <Parameters/Parameters.h>
40 
41 #include <Utils/MatrixNames.h>
42 #include <Logger/Logger.h>
43 
44 using std::ios;
45 using std::string;
46 
47 //--------------------------------------------------------------------------------------------------------------------//
48 //---------------------------------------------------- Constants -----------------------------------------------------//
49 //--------------------------------------------------------------------------------------------------------------------//
50 
51 
52 //--------------------------------------------------------------------------------------------------------------------//
53 //---------------------------------------------------- Variables -----------------------------------------------------//
54 //--------------------------------------------------------------------------------------------------------------------//
55 
56 // initialization of the singleton instance flag
58 
59 // initialization of the instance
61 
62 
63 //--------------------------------------------------------------------------------------------------------------------//
64 //------------------------------------------------- Public methods ---------------------------------------------------//
65 //--------------------------------------------------------------------------------------------------------------------//
66 
67 /**
68  * Destructor.
69  */
71 {
74  {
75  delete sPrametersInstance;
76  }
77  sPrametersInstance = nullptr;
78 };
79 //----------------------------------------------------------------------------------------------------------------------
80 
81 /**
82  * Get instance of singleton class.
83  */
85 {
87  {
90  return *sPrametersInstance;
91  }
92  else
93  {
94  return *sPrametersInstance;
95  }
96 }// end of getInstance()
97 //----------------------------------------------------------------------------------------------------------------------
98 
99 /**
100  * Parse command line and read scalar values from the input file to initialise the class and the simulation.
101  */
102 void Parameters::init(int argc, char** argv)
103 {
105 
106  if (getGitHash() != "")
107  {
110  }
112  {
113  return;
114  }
115 
118 
120  {
122  }
123 
126  {
127  throw std::invalid_argument(Logger::formatMessage(kErrFmtIllegalSamplingStartTimeStep, 1l, mNt));
128  }
129 
131 }// end of parseCommandLine
132 //----------------------------------------------------------------------------------------------------------------------
133 
134 /**
135  * Print parameters of the simulation based in the actual level of verbosity.
136  */
138 {
140 
142 
143  const string domainsSizes = Logger::formatMessage(kOutFmtDomainSizeFormat,
146  getFullDimensionSizes().nz);
147  // Print simulation size
149 
151 
152  // Print all command line parameters
154 
156  {
158  }
160  {
162  }
163 }// end of printSimulatoinSetup
164 //----------------------------------------------------------------------------------------------------------------------
165 
166 /**
167  * Read scalar values from the input HDF5 file.
168  */
170 {
171  DimensionSizes scalarSizes(1, 1, 1);
172 
173  if (!mInputFile.isOpen())
174  {
175  // Open file -- exceptions handled in main
177  }
178 
180 
181  // check file type
183  {
184  throw ios::failure(Logger::formatMessage(kErrFmtBadInputFileFormat, getInputFileName().c_str()));
185  }
186 
187  // check version
189  {
191  getInputFileName().c_str(),
192  mFileHeader.getFileMajorVersion().c_str()));
193  }
194 
196  {
198  getInputFileName().c_str(),
199  mFileHeader.getFileMinorVersion().c_str()));
200  }
201 
202  const hid_t rootGroup = mInputFile.getRootGroup();
203 
204  mInputFile.readScalarValue(rootGroup, kNtName, mNt);
205 
206  mInputFile.readScalarValue(rootGroup, kDtName, mDt);
207  mInputFile.readScalarValue(rootGroup, kDxName, mDx);
208  mInputFile.readScalarValue(rootGroup, kDyName, mDy);
209  mInputFile.readScalarValue(rootGroup, kDzName, mDz);
210 
212 
216 
220 
221  size_t x, y, z;
222  mInputFile.readScalarValue(rootGroup, kNxName, x);
223  mInputFile.readScalarValue(rootGroup, kNyName, y);
224  mInputFile.readScalarValue(rootGroup, kNzName, z);
225 
229 
230  mReducedDimensionSizes.nx = ((x / 2) + 1);
233 
234 // if the file is of version 1.0, there must be a sensor mask index (backward compatibility)
236  {
238 
239  //if -u_non_staggered_raw enabled, throw an error - not supported
241  {
243  }
244  }// version 1.0
245 
246  // This is the current version 1.1
248  {
249 
250  // read sensor mask type as a size_t value to enum
251  size_t sensorMaskTypeNumericValue = 0;
252  mInputFile.readScalarValue(rootGroup, kSensorMaskTypeName, sensorMaskTypeNumericValue);
253 
254  // convert the size_t value to enum
255  switch (sensorMaskTypeNumericValue)
256  {
258  break;
260  break;
261  default:
262  {
263  throw ios::failure(kErrFmtBadSensorMaskType);
264  break;
265  }
266  }//case
267 
268  // read the input mask size
269  switch (mSensorMaskType)
270  {
272  {
274  break;
275  }
277  {
278  // mask dimensions are [6, N, 1] - I want to know N
280  break;
281  }
282  }// switch
283  }// version 1.1
284 
285 
286  // flags.
291 
294 
298 
299 
300  // Vector sizes.
301  if (mTransducerSourceFlag == 0)
302  {
304  }
305  else
306  {
308  }
309 
310  if ((mTransducerSourceFlag > 0) || (mVelocityXSourceFlag > 0) ||
312  {
314  }
315 
316 
317  // uxyz_source_flags
319  {
322  }
323  else
324  {
327  }
328 
329  // p_source_flag
330  if (mPressureSourceFlag != 0)
331  {
334 
336  }
337  else
338  {
342  }
343 
344 
345  // absorb flag
346  if (mAbsorbingFlag != 0)
347  {
349  if (mAlphaPower == 1.0f)
350  {
351  throw std::invalid_argument(kErrFmtIllegalAlphaPowerValue);
352  }
353 
356  {
358  }
359  }
360 
361 
362  mC0ScalarFlag = mInputFile.getDatasetDimensionSizes(rootGroup, kC0Name) == scalarSizes;
363  if (mC0ScalarFlag)
364  {
366  }
367 
368  if (mNonLinearFlag)
369  {
370  mBOnAScalarFlag = mInputFile.getDatasetDimensionSizes(rootGroup, kBonAName) == scalarSizes;
371  if (mBOnAScalarFlag)
372  {
374  }
375  }
376 
377  mRho0ScalarFlag = mInputFile.getDatasetDimensionSizes(rootGroup, kRho0Name) == scalarSizes;
378  if (mRho0ScalarFlag)
379  {
384  }
385 }// end of readScalarsFromInputFile
386 //----------------------------------------------------------------------------------------------------------------------
387 
388 /**
389  * Save scalars into the output HDF5 file.
390  */
392 {
393  const hid_t rootGroup = mOutputFile.getRootGroup();
394 
395  // Write dimension sizes
399 
401 
406 
408 
412 
416 
421 
424 
428 
429 
430  // uxyz_source_flags
432  {
435  }
436 
437  // p_source_flag
438  if (mPressureSourceFlag != 0)
439  {
442  }
443 
444  // absorb flag
445  if (mAbsorbingFlag != 0)
446  {
448  }
449 
450  // if copy sensor mask, then copy the mask type
451  if (getCopySensorMaskFlag())
452  {
453  size_t sensorMaskTypeNumericValue = 0;
454 
455  switch (mSensorMaskType)
456  {
457  case SensorMaskType::kIndex: sensorMaskTypeNumericValue = 0;
458  break;
459  case SensorMaskType::kCorners: sensorMaskTypeNumericValue = 1;
460  break;
461  }// switch
462 
463  mOutputFile.writeScalarValue(rootGroup, kSensorMaskTypeName, sensorMaskTypeNumericValue);
464  }
465 }// end of saveScalarsToFile
466 //----------------------------------------------------------------------------------------------------------------------
467 
468 /**
469  * Get GitHash of the code
470  */
472 {
473 #if (defined (__KWAVE_GIT_HASH__))
474  return string(__KWAVE_GIT_HASH__);
475 #else
476  return "";
477 #endif
478 }// end of getGitHash
479 //----------------------------------------------------------------------------------------------------------------------
480 
481 //--------------------------------------------------------------------------------------------------------------------//
482 //------------------------------------------------ Protected methods -------------------------------------------------//
483 //--------------------------------------------------------------------------------------------------------------------//
484 
485 
486 /**
487  * Constructor.
488  */
493  mNt(0), mTimeIndex(0),
494  mDt(0.0f), mDx(0.0f), mDy(0.0f), mDz(0.0f),
495  mCRef(0.0f), mC0ScalarFlag(false), mC0Scalar(0.0f),
496  mRho0ScalarFlag(false), mRho0Scalar(0.0f),
497  mRho0SgxScalar(0.0f), mRho0SgyScalar(0.0f), mRho0SgzScalar(0.0f),
500  mAbsorbEtaScalar(0.0f), mAbsorbTauScalar(0.0f),
501  mBOnAScalarFlag(false), mBOnAScalar (0.0f),
502  mPmlXSize(0), mPmlYSize(0), mPmlZSize(0),
503  mPmlXAlpha(0.0f), mPmlYAlpha(0.0f), mPmlZAlpha(0.0f),
509 {
510 
511 }// end of Parameters
512 //----------------------------------------------------------------------------------------------------------------------
513 
514 
515 //--------------------------------------------------------------------------------------------------------------------//
516 //------------------------------------------------- Private methods --------------------------------------------------//
517 //--------------------------------------------------------------------------------------------------------------------//
size_t mPmlYSize
Depth of the perfectly matched layer in y.
Definition: Parameters.h:672
bool isPrintVersionOnly() const
Is –version set?
size_t mSensorMaskCornersSize
Sensor_mask_corners_size - how many cuboids are in the mask.
Definition: Parameters.h:719
void saveScalarsToOutputFile()
Save scalar values into the output HDF5 file.
Definition: Parameters.cpp:391
float mDx
Spatial displacement in x.
Definition: Parameters.h:621
ErrorMessage kErrFmtBadMajorFileVersion
Command line parameters error message.
SensorMaskType mSensorMaskType
Sensor mask type (index / corners).
Definition: Parameters.h:715
void writeScalarValue(const hid_t parentGroup, MatrixName &datasetName, const T value)
Write the scalar value under a specified group.
Definition: Hdf5File.cpp:559
float mPmlZAlpha
Perfectly matched layer attenuation in z.
Definition: Parameters.h:681
MatrixName kVelocityXSourceFlagName
ux_source_flag variable name
Definition: MatrixNames.h:120
size_t mVelocitySourceMany
Number of time series in the velocity sources.
Definition: Parameters.h:712
MatrixName kVelocitySourceManyName
u_source_many variable name
Definition: MatrixNames.h:127
float mAbsorbTauScalar
Absorb tau coefficient for homogeneous medium.
Definition: Parameters.h:662
hid_t getRootGroup() const
Get handle to the root group of the file.
Definition: Hdf5File.h:608
float mCRef
Reference sound speed.
Definition: Parameters.h:628
size_t nz
Number of elements in the z direction.
OutputMessage kOutFmtReadingConfiguration
Output message.
OutputMessage kOutFmtNumberOfThreads
Output message.
size_t getNt() const
Get total number of time steps.
Definition: Parameters.h:203
void readScalarsFromInputFile()
Read scalar values from the input HDF5 file.
Definition: Parameters.cpp:169
float mRho0Scalar
Homogeneous medium density.
Definition: Parameters.h:637
MatrixName kDtName
dt variable name
Definition: MatrixNames.h:51
void open(const std::string &fileName, unsigned int flags=H5F_ACC_RDONLY)
Open the HDF5 file.
Definition: Hdf5File.cpp:117
size_t mNt
Total number of time steps.
Definition: Parameters.h:614
MatrixName kAlphaPowerName
alpha_power variable name
Definition: MatrixNames.h:65
static void log(const LogLevel queryLevel, const std::string &format, Args ... args)
Log desired activity for a given log level, version with string format.
Definition: Logger.h:97
Advanced level of verbosity.
MatrixName kPressureSourceFlagName
p_source_flag variable name
Definition: MatrixNames.h:132
Parameters()
Constructor not allowed for public.
Definition: Parameters.cpp:489
std::string getInputFileName() const
Get input file name.
Definition: Parameters.h:174
size_t mSensorMaskIndexSize
How many elements there are in the linear mask.
Definition: Parameters.h:717
float mRho0SgxScalar
Homogeneous medium density on staggered grid in x direction.
Definition: Parameters.h:639
size_t mVelocityZSourceFlag
Velocity in z source flag.
Definition: Parameters.h:695
DimensionSizes getDatasetDimensionSizes(const hid_t parentGroup, MatrixName &datasetName)
Get dimension sizes of the dataset under a specified group.
Definition: Hdf5File.cpp:731
MatrixName kRho0Name
rho0 variable name
Definition: MatrixNames.h:250
Class storing all parameters of the simulation.
Definition: Parameters.h:50
bool isBenchmarkEnabled() const
Is –benchmark set?
void printSimulatoinSetup()
Print the simulation setup (all parameters).
Definition: Parameters.cpp:137
float mRho0SgzScalar
Homogeneous medium density on staggered grid in z direction.
Definition: Parameters.h:643
MatrixName kNzName
Nz variable name.
Definition: MatrixNames.h:74
MatrixName kPressureSourceManyName
p_source_many variable name
Definition: MatrixNames.h:129
OutputMessage kOutFmtSimulationDetailsTitle
Output message.
ErrorMessage kErrFmtIllegalAlphaPowerValue
Command line parameters error message.
MatrixName kPmlXAlphaName
pml_x_alpha variable name
Definition: MatrixNames.h:113
MatrixName kNonUniformGridFlagName
nonuniform_grid_flag variable name
Definition: MatrixNames.h:156
size_t mTransducerSourceInputSize
Spatial size of the transducer source.
Definition: Parameters.h:700
DimensionSizes getFullDimensionSizes() const
Get full dimension sizes of the simulation (real classes).
Definition: Parameters.h:191
float mBOnAScalar
Nonlinear coefficient for homogenous medium.
Definition: Parameters.h:667
SensorMaskType
Sensor mask type (linear or cuboid corners).
Definition: Parameters.h:59
bool mC0ScalarFlag
Is sound speed in the medium homogeneous?
Definition: Parameters.h:630
size_t mTransducerSourceFlag
Transducer source flag.
Definition: Parameters.h:688
float mDt
Time step size.
Definition: Parameters.h:619
static std::string getFileMajorVersion()
Get string representing of current Major version of the file.
static std::string getFileMinorVersion()
Get string representing of current Minor version of the file.
size_t getNumberOfThreads() const
Get number of CPU threads to use.
Definition: Parameters.h:121
MatrixName kNonLinearFlagName
nonlinear_flag variable name
Definition: MatrixNames.h:160
OutputMessage kOutFmtSensorMaskIndex
Output message.
bool mRho0ScalarFlag
Is density in the medium homogeneous?
Definition: Parameters.h:635
The header file containing the parameters of the simulation.
virtual ~Parameters()
Destructor.
Definition: Parameters.cpp:70
MatrixName kPressureSourceModeName
p_source_mode variable name
Definition: MatrixNames.h:139
void readScalarValue(const hid_t parentGroup, MatrixName &datasetName, T &value)
Read the scalar value under a specified group.
Definition: Hdf5File.cpp:646
float mAlphaCoeffScalar
Alpha absorption coefficient.
Definition: Parameters.h:655
MatrixName kNtName
Nt variable name.
Definition: MatrixNames.h:47
bool checkMinorFileVersion()
Check minor file version.
FileVersion getFileVersion()
Get file version as an enum.
MatrixName kPmlXSizeName
pml_x_size variable name
Definition: MatrixNames.h:91
size_t mPmlXSize
Depth of the perfectly matched layer in x.
Definition: Parameters.h:670
size_t getDatasetSize(const hid_t parentGroup, MatrixName &datasetName)
Get dataset element count at a specified place in the file tree.
Definition: Hdf5File.cpp:775
bool getStoreVelocityNonStaggeredRawFlag() const
Is –u_non_staggered_raw set?
Definition: Parameters.h:547
OutputMessage kOutFmtDomainSize
Output message.
OutputMessage kOutFmtSimulatoinLenght
Output message.
MatrixName kInitialPressureSourceFlagName
p0_source_flag variable name
Definition: MatrixNames.h:134
Hdf5File mCheckpointFile
Handle to the checkpoint HDF5 file.
Definition: Parameters.h:603
bool mBOnAScalarFlag
Is nonlinear coefficient homogeneous in the medium?
Definition: Parameters.h:665
ErrorMessage kErrFmtBadMinorFileVersion
Command line parameters error message.
MatrixName kC0Name
c0 variable name
Definition: MatrixNames.h:62
Hdf5File mInputFile
Handle to the input HDF5 file.
Definition: Parameters.h:599
MatrixName kCRefName
c_ref variable name
Definition: MatrixNames.h:60
size_t getSamplingStartTimeIndex() const
Get start time index when sensor data collection begins.
CommandLineParameters mCommandLineParameters
Class with command line parameters.
Definition: Parameters.h:596
MatrixName kBonAName
BonA variable name.
Definition: MatrixNames.h:183
size_t mVelocitySourceIndexSize
Spatial size of the velocity source.
Definition: Parameters.h:702
The header file containing a class responsible for printing out info and error messages (stdout...
ErrorMessage kErrFmtIllegalSamplingStartTimeStep
Command line parameters error message.
size_t mPressureSourceIndexSize
Spatial size of the pressure source.
Definition: Parameters.h:698
MatrixName kPmlZAlphaName
pml_z_alpha variable name
Definition: MatrixNames.h:117
OutputMessage kOutFmtDomainSizeFormat
Output message.
static std::string formatMessage(const std::string &format, Args ... args)
C++-11 replacement for sprintf that works with std::string instead of char*.
Definition: Logger.h:157
void readHeaderFromInputFile(Hdf5File &inputFile)
Read header from the input file.
MatrixName kPmlYAlphaName
pml_y_alpha variable name
Definition: MatrixNames.h:115
float mAbsorbEtaScalar
Absorb eta coefficient for homogeneous medium.
Definition: Parameters.h:660
DimensionSizes mReducedDimensionSizes
Reduced 3D dimension sizes.
Definition: Parameters.h:611
size_t mVelocitySourceMode
Velocity source mode.
Definition: Parameters.h:710
Structure with 4D dimension sizes (3 in space and 1 in time).
The header file storing names of all variables.
MatrixName kDyName
dy variable name
Definition: MatrixNames.h:55
DimensionSizes mFullDimensionSizes
Full 3D dimension sizes.
Definition: Parameters.h:609
MatrixName kVelocitySourceIndexName
u_source_index variable name
Definition: MatrixNames.h:147
size_t mInitialPressureSourceFlag
Initial pressure source flag (p0).
Definition: Parameters.h:686
Cuboid corners sensor mask.
Hdf5File mOutputFile
Handle to the output HDF5 file.
Definition: Parameters.h:601
Full level of verbosity.
float mAlphaPower
Alpha power value for the absorption law.
Definition: Parameters.h:657
bool getCopySensorMaskFlag() const
Is –copy_mask set set?
Definition: Parameters.h:586
SensorMaskType getSensorMaskType() const
Get sensor mask type (linear or corners).
Definition: Parameters.h:484
const std::string & getInputFileName() const
Get input file name.
MatrixName kDxName
dx variable name
Definition: MatrixNames.h:53
ErrorMessage kErrFmtNonStaggeredVelocityNotSupportedFileVersion
Command line parameters error message.
MatrixName kPmlZSizeName
pml_z_size variable name
Definition: MatrixNames.h:95
Hdf5FileHeader::FileType getFileType()
Get File type.
MatrixName kVelocitySourceModeName
u_source_mode variable name
Definition: MatrixNames.h:137
MatrixName kAbsorbingFlagName
absorbing_flag variable name
Definition: MatrixNames.h:158
size_t mAbsorbingFlag
Is the simulation absrobing or lossless?
Definition: Parameters.h:648
size_t ny
Number of elements in the y direction.
MatrixName kAlphaCoeffName
alpha_coeff variable name
Definition: MatrixNames.h:67
MatrixName kDzName
dz variable name
Definition: MatrixNames.h:57
ErrorMessage kErrFmtBadInputFileFormat
Command line parameters error message.
MatrixName kTransducerSourceFlagName
transducer_source_flag variable name
Definition: MatrixNames.h:163
MatrixName kSensorMaskIndexName
sensor_mask_index variable name
Definition: MatrixNames.h:165
void printComandlineParamers()
Print setup commandline parameters.
OutputMessage kOutFmtSensorMaskCuboid
Output message.
OutputMessage kOutFmtGitHashLeft
Output message.
MatrixName kNxName
Nx variable name.
Definition: MatrixNames.h:70
MatrixName kPmlYSizeName
pml_y_size variable name
Definition: MatrixNames.h:93
Basic (default) level of verbosity.
float mDz
Spatial displacement in z.
Definition: Parameters.h:625
MatrixName kRho0SgyName
rho0_sgy variable name
Definition: MatrixNames.h:254
MatrixName kSensorMaskTypeName
sensor_mask_type variable name
Definition: MatrixNames.h:167
float mRho0SgyScalar
Homogeneous medium density on staggered grid in y direction.
Definition: Parameters.h:641
MatrixName kNyName
Ny variable name.
Definition: MatrixNames.h:72
MatrixName kTransducerSourceInputName
transducer_source_input variable name
Definition: MatrixNames.h:172
static bool sParametersInstanceFlag
Singleton flag.
Definition: Parameters.h:722
MatrixName kRho0SgzName
rho0_sgz variable name
Definition: MatrixNames.h:256
float mDy
Spatial displacement in y.
Definition: Parameters.h:623
void init(int argc, char **argv)
Parse command line and read scalar values form the input file.
Definition: Parameters.cpp:102
size_t getBenchmarkTimeStepsCount() const
Get benchmark time step count.
MatrixName kSensorMaskCornersName
sensor_mask_corners variable name
Definition: MatrixNames.h:169
size_t mPressureSourceFlag
Pressure source flag.
Definition: Parameters.h:684
size_t nx
Number of elements in the x direction.
static Parameters * sPrametersInstance
Singleton instance.
Definition: Parameters.h:724
OutputMessage kOutFmtSeparator
Output message - separator.
bool checkMajorFileVersion()
Check major file version.
size_t mPressureSourceMode
Pressure source mode.
Definition: Parameters.h:705
MatrixName kPressureSourceIndexName
p_source_index variable name
Definition: MatrixNames.h:144
static Parameters & getInstance()
Get instance of the singleton class.
Definition: Parameters.cpp:84
float mPmlXAlpha
Perfectly matched layer attenuation in x.
Definition: Parameters.h:677
MatrixName kVelocityZSourceFlagName
uz_source_flag variable name
Definition: MatrixNames.h:124
void parseCommandLine(int argc, char **argv)
Parse commandline parameters.
MatrixName kRho0SgxName
rho0_sgx variable name
Definition: MatrixNames.h:252
size_t mNonLinearFlag
Is the wave propagation nonlinear?
Definition: Parameters.h:650
float mPmlYAlpha
Perfectly matched layer attenuation in y.
Definition: Parameters.h:679
bool mAlphaCoeffScalarFlag
Is alpha absorption coefficient homogeneous?
Definition: Parameters.h:653
std::string getGitHash() const
Get git hash of the code.
Definition: Parameters.cpp:471
ErrorMessage kErrFmtBadSensorMaskType
Command line parameters error message.
size_t mTimeIndex
Actual time index (time step of the simulation).
Definition: Parameters.h:616
size_t mNonUniformGridFlag
Enable non uniform grid?
Definition: Parameters.h:646
MatrixName kVelocityYSourceFlagName
uy_source_flag variable name
Definition: MatrixNames.h:122
size_t mPmlZSize
Depth of the perfectly matched layer in z.
Definition: Parameters.h:674
size_t mVelocityXSourceFlag
Velocity in x source flag.
Definition: Parameters.h:691
bool isOpen() const
Is the file opened?
Definition: Hdf5File.h:560
OutputMessage kOutFmtDone
Output message - Done with two spaces.
size_t mPressureSourceMany
Number of time series in the pressure source.
Definition: Parameters.h:707
float mC0Scalar
Scalar value of sound speed.
Definition: Parameters.h:632
size_t mVelocityYSourceFlag
Velocity in y source flag.
Definition: Parameters.h:693
Hdf5FileHeader mFileHeader
Handle to file header.
Definition: Parameters.h:606