GPLIB++
|
This class calculates the misfit between observed surface wave dispersion data and the data calculated from a seismic model. More...
#include <SurfaceWaveObjective.h>
Public Member Functions | |
void | SetPoisson (const double p) |
Set Poisson's ratio Vp/Vs. More... | |
void | SetErrorLevel (const double level) |
Set the relative error for each measurement. More... | |
virtual GeneralObjective * | clone () const |
We need clone and create for building an array of derived objects, see FAQ lite 20.8, the return type depends on the derived class. More... | |
virtual void | PreParallel (const ttranscribed &member) |
Some operations cannot be done in parallel, these are done before. More... | |
virtual double | PostParallel (const ttranscribed &member) |
Some operations cannot be done in parallel, these are done after, returns the misfit value. More... | |
virtual void | SafeParallel (const ttranscribed &member) |
The core performance calculation, has to be safe to be done in parallel. More... | |
virtual void | WriteData (const std::string &filename) |
Write the synthetic data to a sac file with name filename. More... | |
virtual void | WriteModel (const std::string &filename) |
Write the current model to ascii file for calculations. More... | |
virtual void | WritePlot (const std::string &filename) |
Write the current model to ascii file for plotting. More... | |
SurfaceWaveObjective & | operator= (const SurfaceWaveObjective &source) |
SurfaceWaveObjective (const SurfaceWaveObjective &Old) | |
SurfaceWaveObjective (const SurfaceWaveData &Data) | |
virtual | ~SurfaceWaveObjective () |
Public Member Functions inherited from gplib::PlottableObjective | |
PlottableObjective () | |
PlottableObjective (const PlottableObjective &Old) | |
PlottableObjective & | operator= (const PlottableObjective &source) |
virtual | ~PlottableObjective () |
Public Member Functions inherited from gplib::GeneralObjective | |
void | SetFitExponent (const int x) |
Set the Fit exponent. More... | |
int | GetFitExponent () |
Get the Fit exponent. More... | |
double | GetRMS () |
Get the current RMS. More... | |
const std::string & | GetParallelID () |
Derived classes need to read the ParallelId for their forward calculations. More... | |
void | SetParallelID (const std::string &s) |
We need to set the parallel ID outside the Objective function object. More... | |
const tmisfit & | GetMisfit () |
Return the misfit vector. More... | |
const tdata & | GetSynthData () |
Return the current synthetic data. More... | |
double | CalcPerformance (const ttranscribed &member) |
For serial execution CalcPerformance calls the three Parallel functions for more convenient use. More... | |
GeneralObjective () | |
GeneralObjective (const GeneralObjective &Old) | |
GeneralObjective & | operator= (const GeneralObjective &source) |
virtual | ~GeneralObjective () |
Additional Inherited Members | |
Protected Member Functions inherited from gplib::GeneralObjective | |
double | CalcMisfit (const double measured, const double predicted, const double measerror, const double errorlevel, const int index) |
void | SetRMS (const double x) |
tmisfit & | SetMisfit () |
Only derived classes can write access the Misfit. More... | |
void | SetMisfit (const tmisfit &LocalMisfit) |
tdata & | SetSynthData () |
Only derived classes can write access the Synthetic data. More... | |
void | SetSynthData (const tdata &LocalSynthData) |
This class calculates the misfit between observed surface wave dispersion data and the data calculated from a seismic model.
Definition at line 15 of file SurfaceWaveObjective.h.
gplib::SurfaceWaveObjective::SurfaceWaveObjective | ( | const SurfaceWaveObjective & | Old | ) |
Definition at line 33 of file SurfaceWaveObjective.cpp.
Referenced by clone().
gplib::SurfaceWaveObjective::SurfaceWaveObjective | ( | const SurfaceWaveData & | Data | ) |
Definition at line 12 of file SurfaceWaveObjective.cpp.
|
virtual |
Definition at line 41 of file SurfaceWaveObjective.cpp.
|
inlinevirtual |
We need clone and create for building an array of derived objects, see FAQ lite 20.8, the return type depends on the derived class.
Implements gplib::GeneralObjective.
Definition at line 40 of file SurfaceWaveObjective.h.
References SurfaceWaveObjective().
SurfaceWaveObjective & gplib::SurfaceWaveObjective::operator= | ( | const SurfaceWaveObjective & | source | ) |
Definition at line 19 of file SurfaceWaveObjective.cpp.
References gplib::PlottableObjective::operator=().
|
virtual |
Some operations cannot be done in parallel, these are done after, returns the misfit value.
Implements gplib::GeneralObjective.
Definition at line 83 of file SurfaceWaveObjective.cpp.
References gplib::GeneralObjective::GetRMS().
|
virtual |
Some operations cannot be done in parallel, these are done before.
Reimplemented from gplib::GeneralObjective.
Definition at line 45 of file SurfaceWaveObjective.cpp.
References gplib::SurfaceWaveSynthetic::GetCalculationPeriods(), gplib::GeneralObjective::GetParallelID(), gplib::SurfaceWaveData::GetPeriods(), gplib::SurfaceWaveModel::GetPhVelocities(), gplib::SurfaceWaveSynthetic::PreParallel(), gplib::SurfaceWaveSynthetic::SetCalculationPeriods(), gplib::SurfaceWaveModel::SetDensities(), gplib::SurfaceWaveModel::SetEta(), gplib::SurfaceWaveSynthetic::SetModel(), gplib::SurfaceWaveModel::SetPhVelocities(), gplib::SurfaceWaveModel::SetPvVelocities(), gplib::SurfaceWaveModel::SetQkappa(), gplib::SurfaceWaveModel::SetQmu(), gplib::SurfaceWaveModel::SetShVelocities(), gplib::SurfaceWaveModel::SetSvVelocities(), and gplib::SurfaceWaveModel::SetThicknesses().
|
virtual |
The core performance calculation, has to be safe to be done in parallel.
Reimplemented from gplib::GeneralObjective.
Definition at line 89 of file SurfaceWaveObjective.cpp.
References gplib::GeneralObjective::CalcMisfit(), gplib::GeneralObjective::GetFitExponent(), gplib::GeneralObjective::GetParallelID(), gplib::SurfaceWaveData::GetPhaseVelocities(), gplib::SurfaceWaveSynthetic::SafeParallel(), gplib::GeneralObjective::SetMisfit(), gplib::GeneralObjective::SetRMS(), and gplib::GeneralObjective::SetSynthData().
|
inline |
Set the relative error for each measurement.
Definition at line 35 of file SurfaceWaveObjective.h.
|
inline |
Set Poisson's ratio Vp/Vs.
Definition at line 30 of file SurfaceWaveObjective.h.
|
inlinevirtual |
Write the synthetic data to a sac file with name filename.
Reimplemented from gplib::PlottableObjective.
Definition at line 52 of file SurfaceWaveObjective.h.
References gplib::SurfaceWaveData::WriteAscii().
|
inlinevirtual |
Write the current model to ascii file for calculations.
Reimplemented from gplib::PlottableObjective.
Definition at line 57 of file SurfaceWaveObjective.h.
References gplib::SurfaceWaveSynthetic::GetModel(), and gplib::SurfaceWaveModel::WriteModel().
|
inlinevirtual |
Write the current model to ascii file for plotting.
Reimplemented from gplib::PlottableObjective.
Definition at line 62 of file SurfaceWaveObjective.h.
References gplib::SurfaceWaveSynthetic::GetModel(), and gplib::SurfaceWaveModel::WritePlot().