9 PTensor1DMTObjective::PTensor1DMTObjective(
12 MeasuredData(LocalMTData)
22 Old.MeasuredData), AnisoMTSynth(Old.AnisoMTSynth)
32 errorlevel = source.errorlevel;
33 MeasuredData = source.MeasuredData;
34 AnisoMTSynth = source.AnisoMTSynth;
47 double returnvalue = 0;
49 const unsigned int nelements = 4;
50 const unsigned int ndata = nelements * MeasuredData.
GetTensor().size();
54 for (
unsigned int i = 0; i < ndata; i += nelements)
57 MeasuredData.
at(i / nelements).
GetPhi11(), AnisoMTSynth.
at(i
59 MeasuredData.
at(i / nelements).
GetdPhi11(), errorlevel, i);
61 MeasuredData.
at(i / nelements).
GetPhi12(), AnisoMTSynth.
at(i
63 MeasuredData.
at(i / nelements).
GetdPhi12(), errorlevel, i + 1);
65 MeasuredData.
at(i / nelements).
GetPhi21(), AnisoMTSynth.
at(i
67 MeasuredData.
at(i / nelements).
GetdPhi21(), errorlevel, i + 2);
69 MeasuredData.
at(i / nelements).
GetPhi22(), AnisoMTSynth.
at(i
71 MeasuredData.
at(i / nelements).
GetdPhi22(), errorlevel, i + 3);
ublas::vector< double > ttranscribed
double GetPhi11() const
All the following quantities are defined in Caldwell GJI 158, 457-469, the phase tensor elements...
const MTTensor & at(const unsigned int i) const
direct acces to a tensor at a given index
This is a special objective function to fit phase tensor MT data.
std::vector< PTensorMTData > & GetTensor()
This only adds a few plotting functions to GeneralObjective to define a common interface.
virtual void SafeParallel(const ttranscribed &member)
Calc misfit for a model given by member.
virtual void GetData()
Calculate the synthetic data given the previously set parameters.
const PTensorMTData & at(const unsigned int i) const
const trealdata GetFrequencies() const
void Member2Aniso(const ttranscribed &member, C1DAnisoMTSynthData &Synth)
This function sets the properties for the 1D MT anisotropic forward calculation, from the variable me...
int GetFitExponent()
Get the Fit exponent.
double CalcMisfit(const double measured, const double predicted, const double measerror, const double errorlevel, const int index)
virtual ~PTensor1DMTObjective()
double GetRMS()
Get the current RMS.
tdata & SetSynthData()
Only derived classes can write access the Synthetic data.
tmisfit & SetMisfit()
Only derived classes can write access the Misfit.
PTensor1DMTObjective & operator=(const PTensor1DMTObjective &source)
PlottableObjective & operator=(const PlottableObjective &source)
virtual double PostParallel(const ttranscribed &member)
Some operations cannot be done in parallel, these are done after, returns the misfit value...
PTensor1DMTObjective(const PTensorMTStation &LocalMTData)
trealdata GetFrequencies() const
return the available frequencies in a single vector
void SetRMS(const double x)
void SetFrequencies(const trealdata &freqs)
Set the frequencies of the tensor elements, invalidates the previously stored impedance data...