![]() |
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.
1.8.5