C1DMTObjective Class Reference

C1DMTObjective is the base class for MT misfit calculations from 1D models, it provides common functionality to calculate the misfit of various MT parameters. More...

#include <C1DMTObjective.h>

Inheritance diagram for C1DMTObjective:

Inheritance graph
[legend]

List of all members.

Public Types

typedef boost::function
< double(const MTTensor *const) 
datafunc_t )
 A function that returns a real valued quantity calculated from an MT impedance tensor.
typedef std::vector< datafunc_tdatafuncvector_t
 A vector of MT data functions. This is used to store the types of data to fit.

Public Member Functions

void SetFitParameters (const datafuncvector_t TheDataV, const datafuncvector_t TheErrorV, const std::vector< double > TheErrLevel)
 function to set the parameters that determine the type of fit
void AppendFitParameters (const datafunc_t TheDataFunc, const datafunc_t TheErrorFunc, const double TheErrLevel)
virtual void SafeParallel (const ttranscribed &member)
 Calc misfit for a model given by member.
virtual double PostParallel (const ttranscribed &member)
 All calculation has been done in SafeParallel we only return the stored result.
const datafuncvector_tGetErrorFunctions () const
 return a vector with pointers to the functions used to calculate the errors
virtual void WriteModel (const std::string &filename)=0
 write the current model to a file
virtual void WritePlot (const std::string &filename)=0
 write the current model for plotting to a file
virtual void WriteData (const std::string &filename)=0
 Write current data to a file.
 C1DMTObjective (const MTStation &LocalMTData)
 We need data to fit for any objective function, so we want it as constructor parameter, but no implicit conversion.
 C1DMTObjective (const C1DMTObjective &Old)
virtual ~C1DMTObjective ()
C1DMTObjectiveoperator= (const C1DMTObjective &source)

Protected Member Functions

virtual MTStationGetMTSynth ()=0


Detailed Description

C1DMTObjective is the base class for MT misfit calculations from 1D models, it provides common functionality to calculate the misfit of various MT parameters.

Definition at line 10 of file C1DMTObjective.h.


Member Typedef Documentation

typedef boost::function<double (const MTTensor* const) C1DMTObjective::datafunc_t)

A function that returns a real valued quantity calculated from an MT impedance tensor.

Definition at line 15 of file C1DMTObjective.h.

A vector of MT data functions. This is used to store the types of data to fit.

Definition at line 17 of file C1DMTObjective.h.


Constructor & Destructor Documentation

C1DMTObjective::C1DMTObjective ( const MTStation LocalMTData  ) 

We need data to fit for any objective function, so we want it as constructor parameter, but no implicit conversion.

Definition at line 17 of file C1DMTObjective.cpp.

References MTTensor::GetdPhixy(), and MTTensor::GetPhixy().

C1DMTObjective::C1DMTObjective ( const C1DMTObjective Old  ) 

Definition at line 33 of file C1DMTObjective.cpp.

C1DMTObjective::~C1DMTObjective (  )  [virtual]

Definition at line 29 of file C1DMTObjective.cpp.


Member Function Documentation

void C1DMTObjective::AppendFitParameters ( const datafunc_t  TheDataFunc,
const datafunc_t  TheErrorFunc,
const double  TheErrLevel 
)

Add a new type of MT data to the vector of quantities to fit. The first call overrides the default xy phase that is set by the constructor.

Parameters:
TheDataFunc The data to fit. A reference to function that takes a MTTensor* const and returns a double. e.g. &MTTensor::GetPhixy to fit xy phase
TheErrorFunc The error associated with the data. Also a reference to function that takes a MTTensor* const and returns a double. e.g. &MTTensor::GetdPhixy
TheErrLevel The relative error floor for this type of data

Definition at line 90 of file C1DMTObjective.cpp.

Referenced by main(), and SetupMTFitParameters().

const datafuncvector_t& C1DMTObjective::GetErrorFunctions (  )  const [inline]

return a vector with pointers to the functions used to calculate the errors

Definition at line 43 of file C1DMTObjective.h.

Referenced by main().

virtual MTStation& C1DMTObjective::GetMTSynth (  )  [protected, pure virtual]

Referenced by SafeParallel().

C1DMTObjective & C1DMTObjective::operator= ( const C1DMTObjective source  ) 

Definition at line 40 of file C1DMTObjective.cpp.

References DataFunctions, ErrorFunctions, ErrorLevels, FitparametersSet, MTData, and MTData.

double C1DMTObjective::PostParallel ( const ttranscribed member  )  [virtual]

All calculation has been done in SafeParallel we only return the stored result.

Implements GeneralObjective.

Definition at line 175 of file C1DMTObjective.cpp.

References GeneralObjective::GetRMS().

void C1DMTObjective::SafeParallel ( const ttranscribed member  )  [virtual]

Calc misfit for a model given by member.

Calculate synthetics from the model given by member and compare with Data given the fitparameters

Reimplemented from GeneralObjective.

Definition at line 114 of file C1DMTObjective.cpp.

References GeneralObjective::CalcMisfit(), GeneralObjective::GetFitExponent(), MTStation::GetMTData(), GetMTSynth(), MTData, MTStation::SetFrequencies(), GeneralObjective::SetMisfit(), GeneralObjective::SetRMS(), and GeneralObjective::SetSynthData().

void C1DMTObjective::SetFitParameters ( const datafuncvector_t  TheDataV,
const datafuncvector_t  TheErrorV,
const std::vector< double TheErrLevel 
)

function to set the parameters that determine the type of fit

Instead of seperate access functions, we force the user to set all of them if he doesn't want defaults

This functions takes three parameters

Parameters:
TheDataV A vector containing pointers to functions that return the data to fit as a double when given a *MTTensor
TheErrorV A similar vector of pointers to functions that return the corresponding error
TheErrLevel The relative errorlevel that corresponds to the data function
All three vectors have to be of the same size and have at least one entry to work

Definition at line 64 of file C1DMTObjective.cpp.

virtual void C1DMTObjective::WriteData ( const std::string &  filename  )  [pure virtual]

Write current data to a file.

Reimplemented from PlottableObjective.

Implemented in Aniso1DMTObjective, and Iso1DMTObjective.

Referenced by main().

virtual void C1DMTObjective::WriteModel ( const std::string &  filename  )  [pure virtual]

write the current model to a file

Reimplemented from PlottableObjective.

Implemented in Aniso1DMTObjective, and Iso1DMTObjective.

Referenced by main().

virtual void C1DMTObjective::WritePlot ( const std::string &  filename  )  [pure virtual]

write the current model for plotting to a file

Reimplemented from PlottableObjective.

Implemented in Aniso1DMTObjective, and Iso1DMTObjective.

Referenced by main().


The documentation for this class was generated from the following files:

Generated on Tue Aug 4 16:04:17 2009 for GPLIB++ by  doxygen 1.5.8