UNIVERS
15.3
UNIVERS base processing software API
|
#include <sim_fdm_simulator_iso.hpp>
Public Member Functions | |
sim::ErrCode | init (const Snapshot::Area &snapshot_area, const VelModel< sim::VmParamsIso > &vm) |
sim::ErrCode | init (const Snapshot::Area &snapshot_area, const VelModel< sim::VmParamsIso > &vm, const Source &source) |
void | addSource (const Source &source) |
void | clearSources () |
sim::ErrCode | operator() (const TimeT &dt, WaveField &wf) const |
void | setExecutionFlag (const bool flag) |
virtual void | snapshotCallback (const TimeT &t, const TimeT &tmax, const Snapshot &snapshot) const |
Protected Member Functions | |
void | time_grid_step (Snapshot &fp, Snapshot &f, const Snapshot &fn) const |
void | modelling (SchemeIsoIt &scheme_it) const |
AmplT | interpol_ampl (const TimeT &t1, const AmplT &a1, const TimeT &t2, const AmplT &a2, const TimeT &t) const |
Protected Attributes | |
Snapshot::Area | m_snapshot_area |
std::vector< Source > | m_sources_vec |
GridIso | m_grid |
bool | m_execution_flag |
Isotropic model finite-differences simulation.
void sim::fdm::SimulatorIso::addSource | ( | const Source & | source | ) |
Add new source function.
source | Source function. |
void sim::fdm::SimulatorIso::clearSources | ( | ) |
Remove all sources
sim::ErrCode sim::fdm::SimulatorIso::init | ( | const Snapshot::Area & | snapshot_area, |
const VelModel< sim::VmParamsIso > & | vm | ||
) |
Reinitialize simulator.
snapshot_area | Snapshot x and z coordinates area. |
vm | Velocity model. |
sim::ErrCode sim::fdm::SimulatorIso::init | ( | const Snapshot::Area & | snapshot_area, |
const VelModel< sim::VmParamsIso > & | vm, | ||
const Source & | source | ||
) |
|
protected |
Linear interpolation of amplitudes.
sim::ErrCode sim::fdm::SimulatorIso::operator() | ( | const TimeT & | dt, |
WaveField & | wf | ||
) | const |
Fill predefined wavefield amplitudes by finite-difference modelling. wf.header().t0 - start time of modeling. wf.header().timestep - resulted tim step. wf[i].size() - length of resulted wavefield. TA_XOP, TA_ZOP are used as coordinates of receiver points. TA_COMP (X/x, Z/z or any for z-component) is used to match required component.
dt | Finite differencies time grid step. |
wf | Resulted wavefied. |
void sim::fdm::SimulatorIso::setExecutionFlag | ( | const bool | flag | ) |
Set calculations execution flag.
Usefull for stop calculations from other threads.
Flag | of execution. If false => executions (init, operator()) terminated or will not run. |
|
virtual |
Callback function called on every operator() time step. Should be reimplemented.
t | Current time step. |
t | Maximal modelling time. |
snapshot | Current snapshot. |
|
protected |
Flag of execution.
|
protected |
Grid of parameters.
|
protected |
Snapshot area.
|
protected |
Array of sources.