CMTTensor Class Reference

Stores MT-Tensor components at a single frequency, calculates derived quantities. More...

#include <CMTTensor.h>

Collaboration diagram for CMTTensor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

double GetdZero () const
 Function for Errors that cannot be calculated analytically when we don't want Jacknife errors.
void SetErrors (double dxx, double dxy, double dyx, double dyy)
 Set the errors for the impedance elements.
void Rotate (double angle)
 Rotate by the given angle in radian.
double GetRotangle () const
 !return the current angle in radian
double & SetRotangle ()
 Set the rotation angle, without performing the corresponding rotation.
double GetFrequency () const
 Get the frequency for the impedance.
std::complex< double > GetZyy () const
 Return tensor elements.
std::complex< double > GetZxx () const
std::complex< double > GetZxy () const
std::complex< double > GetZyx () const
std::complex< double > & SetZyy ()
 Write access to tensor elements.
std::complex< double > & SetZxx ()
std::complex< double > & SetZxy ()
std::complex< double > & SetZyx ()
double GetdZxx () const
 Return tensor element errors.
double GetdZxy () const
double GetdZyx () const
double GetdZyy () const
double & SetdZyy ()
 Write access to errors.
double & SetdZxx ()
double & SetdZxy ()
double & SetdZyx ()
double GetRhoxx () const
 Return apparent resistivity.
double GetRhoxy () const
double GetRhoyx () const
double GetRhoyy () const
double GetPhixx () const
 Return phase.
double GetPhixy () const
double GetPhiyx () const
double GetPhiyy () const
double GetdRhoxx () const
 Return Rho Error for tensor elements.
double GetdRhoxy () const
double GetdRhoyx () const
double GetdRhoyy () const
double GetdPhixx () const
 return phase error for tensor elements
double GetdPhixy () const
double GetdPhiyx () const
double GetdPhiyy () const
double GetRhoxxStar () const
 Return Schmucker's rho* for tensor elements.
double GetRhoxyStar () const
double GetRhoyxStar () const
double GetRhoyyStar () const
double GetZxxStar () const
 Return Schmucker's z* for tensor elements.
double GetZxyStar () const
double GetZyxStar () const
double GetZyyStar () const
std::complex< double > GetS1 () const
 Some invariants and intermediate quantities for strike and skew calculation.
std::complex< double > GetS2 () const
std::complex< double > GetD1 () const
std::complex< double > GetD2 () const
std::complex< double > GetBerd () const
 The Berdichevskyi invariant.
double GetdBerd () const
 The error of the Berdichevskyi invariant.
std::complex< double > GetDet () const
 The determinant.
double GetdDet () const
 The error of the determinant.
double GetDetreal () const
 The determinant of the real parts of Z.
double GetdDetreal () const
 Get the error of the determinant of the real part.
double GetMu () const
 Rotationally invariant phase difference.
double GetKappa () const
 Swift's skew.
double GetSigma () const
double GetEta () const
 Bahr's skew.
double GetAlpha () const
double GetAlphaHigh () const
 Calculate strike angle, so it points to high conductivity direction (Phixy > Phiyx).
double GetMaxPhiDiff () const
 Maximum phase difference.
double GetPhi11 () const
 All the following quantities are defined in Caldwell GJI 158, 457-469, the phase tensor elements.
double GetPhi12 () const
double GetPhi21 () const
double GetPhi22 () const
double GetAlpha_phi () const
double GetBeta_phi () const
double GetPi1 () const
double GetPi2 () const
double GetPhiStrike () const
double GetPhiMax () const
double GetPhiMin () const
double GettrPhi () const
double GetskPhi () const
double GetdetPhi () const
double GetPhi1 () const
double GetPhi2 () const
double GetPhi2Sq () const
double GetPhi3 () const
double GetPhiEllip () const
double GetXi1 () const
double GetXi2 () const
double GetXi3 () const
double GetXi4 () const
double GetEta1 () const
double GetEta2 () const
double GetEta3 () const
double GetEta4 () const
double GetI1 () const
double GetI2 () const
double GetI3 () const
double GetI4 () const
double GetI5 () const
double GetI6 () const
double Getd13 () const
double Getd12 () const
double Getd24 () const
double Getd34 () const
double Getd41 () const
double Getd23 () const
double GetQ () const
double GetI7 () const
double Geta () const
double Getb () const
double Getr () const
double GetRx () const
 Return coherency for the x-direction.
double GetRy () const
 Return coherency for the y-direction.
double GetNu () const
 The degrees of freedom used for transfer function estimation.
 CMTTensor ()
 CMTTensor (const std::complex< double > &xx, const std::complex< double > &xy, const std::complex< double > &yx, const std::complex< double > &yy, const double freq=1., const double angle=0.0)
CMTTensoroperator= (const CMTTensor &source)
virtual ~CMTTensor ()

Friends

class CMTStation
class C1DMTSynthData
class JParser
class EDIParser

Detailed Description

Stores MT-Tensor components at a single frequency, calculates derived quantities.

Definition at line 9 of file CMTTensor.h.


Constructor & Destructor Documentation

CMTTensor::CMTTensor (  ) 

Definition at line 3 of file CMTTensor.cpp.

00003                     :
00004  Zxx(0),
00005  Zxy(0),
00006  Zyx(0),
00007  Zyy(0),
00008  dZxx(0),
00009  dZxy(0),
00010  dZyx(0),
00011  dZyy(0),
00012  frequency(0),
00013  rotangle(0),
00014  Rx(0),
00015  Ry(0),
00016  Nu(0)
00017 {
00018 }

CMTTensor::CMTTensor ( const std::complex< double > &  xx,
const std::complex< double > &  xy,
const std::complex< double > &  yx,
const std::complex< double > &  yy,
const double  freq = 1.,
const double  angle = 0.0 
)

Definition at line 20 of file CMTTensor.cpp.

00021                                                                                             :
00022 Zxx(xx),
00023  Zxy(xy),
00024  Zyx(yx),
00025  Zyy(yy),
00026  dZxx(0),
00027  dZxy(0),
00028  dZyx(0),
00029  dZyy(0),
00030  frequency(freq),
00031  rotangle(angle),
00032  Rx(0),
00033  Ry(0),
00034  Nu(0)
00035 {
00036 }

CMTTensor::~CMTTensor (  )  [virtual]

Definition at line 57 of file CMTTensor.cpp.

00058 {
00059 }


Member Function Documentation

double CMTTensor::GetdZero (  )  const [inline]

Function for Errors that cannot be calculated analytically when we don't want Jacknife errors.

Definition at line 58 of file CMTTensor.h.

Referenced by SetupMTFitParameters().

00058 {return 0.0;}

void CMTTensor::SetErrors ( double  dxx,
double  dxy,
double  dyx,
double  dyy 
) [inline]

Set the errors for the impedance elements.

Definition at line 60 of file CMTTensor.h.

Referenced by main().

00061                 {dZxx=dxx; dZxy=dxy; dZyx=dyx; dZyy=dyy;}

void CMTTensor::Rotate ( double  angle  ) 

Rotate by the given angle in radian.

Definition at line 61 of file CMTTensor.cpp.

Referenced by GetAlphaHigh(), and GetMaxPhiDiff().

00062 {
00063         dcomp newxx, newxy, newyx, newyy;
00064         const double cangle = cos(angle);
00065         const double sangle = sin(angle);       
00066         newxx = Zxx * cangle*cangle + (Zxy + Zyx)*  sangle * cangle + Zyy * sangle*sangle;
00067         newxy = Zxy * cangle*cangle -  (Zxx - Zyy) *   sangle * cangle  - Zyx * sangle*sangle;
00068         newyx = Zyx * cangle*cangle -  (Zxx - Zyy) *   sangle * cangle - Zxy * sangle*sangle;
00069         newyy = Zyy * cangle*cangle -  (Zxy + Zyx) *  sangle * cangle + Zxx * sangle*sangle;
00070         Zxx = newxx;
00071         Zxy = newxy;
00072         Zyx = newyx;
00073         Zyy = newyy;
00074         rotangle += angle;
00075 }

double CMTTensor::GetRotangle (  )  const [inline]

!return the current angle in radian

Definition at line 65 of file CMTTensor.h.

00065 {return rotangle;}

double& CMTTensor::SetRotangle (  )  [inline]

Set the rotation angle, without performing the corresponding rotation.

Definition at line 67 of file CMTTensor.h.

00067 {return rotangle;}

double CMTTensor::GetFrequency (  )  const [inline]

Get the frequency for the impedance.

Definition at line 69 of file CMTTensor.h.

Referenced by CMTStation::GetFrequencies(), main(), MTSampleGenerator::operator()(), PTensorMTStation::operator=(), and PrintRhosZs().

00069 {return frequency;}

std::complex<double> CMTTensor::GetZyy (  )  const [inline]

Return tensor elements.

Definition at line 71 of file CMTTensor.h.

Referenced by CalcS1(), main(), and CMTStation::WriteAsJ().

00071 {return Zyy;}

std::complex<double> CMTTensor::GetZxx (  )  const [inline]

Definition at line 72 of file CMTTensor.h.

Referenced by CalcS1(), main(), and CMTStation::WriteAsJ().

00072 {return Zxx;}

std::complex<double> CMTTensor::GetZxy (  )  const [inline]

Definition at line 73 of file CMTTensor.h.

Referenced by main(), and CMTStation::WriteAsJ().

00073 {return Zxy;}

std::complex<double> CMTTensor::GetZyx (  )  const [inline]

Definition at line 74 of file CMTTensor.h.

Referenced by main(), and CMTStation::WriteAsJ().

00074 {return Zyx;}

std::complex<double>& CMTTensor::SetZyy (  )  [inline]

Write access to tensor elements.

Definition at line 76 of file CMTTensor.h.

00076 {return Zyy;}

std::complex<double>& CMTTensor::SetZxx (  )  [inline]

Definition at line 77 of file CMTTensor.h.

00077 {return Zxx;}

std::complex<double>& CMTTensor::SetZxy (  )  [inline]

Definition at line 78 of file CMTTensor.h.

00078 {return Zxy;}

std::complex<double>& CMTTensor::SetZyx (  )  [inline]

Definition at line 79 of file CMTTensor.h.

00079 {return Zyx;}

double CMTTensor::GetdZxx (  )  const [inline]

Return tensor element errors.

Definition at line 81 of file CMTTensor.h.

Referenced by CMTStation::WriteAsJ().

00081 {return dZxx;}

double CMTTensor::GetdZxy (  )  const [inline]

Definition at line 82 of file CMTTensor.h.

Referenced by CMTStation::WriteAsJ().

00082 {return dZxy;}

double CMTTensor::GetdZyx (  )  const [inline]

Definition at line 83 of file CMTTensor.h.

Referenced by CMTStation::WriteAsJ().

00083 {return dZyx;}

double CMTTensor::GetdZyy (  )  const [inline]

Definition at line 84 of file CMTTensor.h.

Referenced by CMTStation::WriteAsJ().

00084 {return dZyy;}

double& CMTTensor::SetdZyy (  )  [inline]

Write access to errors.

Definition at line 86 of file CMTTensor.h.

00086 {return dZyy;}

double& CMTTensor::SetdZxx (  )  [inline]

Definition at line 87 of file CMTTensor.h.

00087 {return dZxx;}

double& CMTTensor::SetdZxy (  )  [inline]

Definition at line 88 of file CMTTensor.h.

00088 {return dZxy;}

double& CMTTensor::SetdZyx (  )  [inline]

Definition at line 89 of file CMTTensor.h.

00089 {return dZyx;}

double CMTTensor::GetRhoxx (  )  const [inline]

Return apparent resistivity.

Definition at line 91 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00091 {return CalcRho(Zxx);}

double CMTTensor::GetRhoxy (  )  const [inline]

Definition at line 92 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00092 {return CalcRho(Zxy);}

double CMTTensor::GetRhoyx (  )  const [inline]

Definition at line 93 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00093 {return CalcRho(Zyx);}

double CMTTensor::GetRhoyy (  )  const [inline]

Definition at line 94 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00094 {return CalcRho(Zyy);}

double CMTTensor::GetPhixx (  )  const [inline]

Return phase.

Definition at line 96 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00096 {return CalcPhase(Zxx);}

double CMTTensor::GetPhixy (  )  const [inline]

Definition at line 97 of file CMTTensor.h.

Referenced by C1DMTObjective::C1DMTObjective(), GetAlphaHigh(), GetMaxPhiDiff(), main(), and SetupMTFitParameters().

00097 {return CalcPhase(Zxy);}

double CMTTensor::GetPhiyx (  )  const [inline]

Definition at line 98 of file CMTTensor.h.

Referenced by GetAlphaHigh(), GetMaxPhiDiff(), main(), and SetupMTFitParameters().

00098 {return CalcPhase(Zyx);}

double CMTTensor::GetPhiyy (  )  const [inline]

Definition at line 99 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00099 {return CalcPhase(Zyy);}

double CMTTensor::GetdRhoxx (  )  const [inline]

Return Rho Error for tensor elements.

Definition at line 101 of file CMTTensor.h.

Referenced by SetupMTFitParameters().

00101 {return CalcdRho(Zxx,dZxx);}

double CMTTensor::GetdRhoxy (  )  const [inline]

Definition at line 102 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00102 {return CalcdRho(Zxy,dZxy);}

double CMTTensor::GetdRhoyx (  )  const [inline]

Definition at line 103 of file CMTTensor.h.

Referenced by SetupMTFitParameters().

00103 {return CalcdRho(Zyx,dZyx);}

double CMTTensor::GetdRhoyy (  )  const [inline]

Definition at line 104 of file CMTTensor.h.

Referenced by SetupMTFitParameters().

00104 {return CalcdRho(Zyy,dZyy);}

double CMTTensor::GetdPhixx (  )  const [inline]

return phase error for tensor elements

Definition at line 106 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00106 {return CalcdPhase(Zxx,dZxx);}

double CMTTensor::GetdPhixy (  )  const [inline]

Definition at line 107 of file CMTTensor.h.

Referenced by C1DMTObjective::C1DMTObjective(), main(), and SetupMTFitParameters().

00107 {return CalcdPhase(Zxy,dZxy);}

double CMTTensor::GetdPhiyx (  )  const [inline]

Definition at line 108 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00108 {return CalcdPhase(Zyx,dZyx);}

double CMTTensor::GetdPhiyy (  )  const [inline]

Definition at line 109 of file CMTTensor.h.

Referenced by main(), and SetupMTFitParameters().

00109 {return CalcdPhase(Zyy,dZyy);}

double CMTTensor::GetRhoxxStar (  )  const [inline]

Return Schmucker's rho* for tensor elements.

Definition at line 111 of file CMTTensor.h.

00111 {return CalcRhoStar(Zxx);}

double CMTTensor::GetRhoxyStar (  )  const [inline]

Definition at line 112 of file CMTTensor.h.

Referenced by PrintRhosZs().

00112 {return CalcRhoStar(Zxy);}

double CMTTensor::GetRhoyxStar (  )  const [inline]

Definition at line 113 of file CMTTensor.h.

Referenced by PrintRhosZs().

00113 {return CalcRhoStar(Zyx);}

double CMTTensor::GetRhoyyStar (  )  const [inline]

Definition at line 114 of file CMTTensor.h.

00114 {return CalcRhoStar(Zyy);}

double CMTTensor::GetZxxStar (  )  const [inline]

Return Schmucker's z* for tensor elements.

Definition at line 116 of file CMTTensor.h.

00116 { return CalcZStar(Zxx);}

double CMTTensor::GetZxyStar (  )  const [inline]

Definition at line 117 of file CMTTensor.h.

Referenced by PrintRhosZs().

00117 { return CalcZStar(Zxy);}

double CMTTensor::GetZyxStar (  )  const [inline]

Definition at line 118 of file CMTTensor.h.

Referenced by PrintRhosZs().

00118 { return CalcZStar(Zyx);}

double CMTTensor::GetZyyStar (  )  const [inline]

Definition at line 119 of file CMTTensor.h.

00119 { return CalcZStar(Zyy);}

std::complex<double> CMTTensor::GetS1 (  )  const [inline]

Some invariants and intermediate quantities for strike and skew calculation.

Definition at line 121 of file CMTTensor.h.

Referenced by GetAlpha(), GetEta(), GetKappa(), and GetMu().

00121 {return Zxx + Zyy;}

std::complex<double> CMTTensor::GetS2 (  )  const [inline]

Definition at line 122 of file CMTTensor.h.

Referenced by GetAlpha(), GetEta(), GetMu(), and GetSigma().

00122 {return Zxy + Zyx;}

std::complex<double> CMTTensor::GetD1 (  )  const [inline]

Definition at line 123 of file CMTTensor.h.

Referenced by GetAlpha(), GetEta(), GetMu(), and GetSigma().

00123 {return Zxx - Zyy;}

std::complex<double> CMTTensor::GetD2 (  )  const [inline]

Definition at line 124 of file CMTTensor.h.

Referenced by GetAlpha(), GetBerd(), GetEta(), GetKappa(), GetMu(), and GetSigma().

00124 {return Zxy - Zyx;}

std::complex<double> CMTTensor::GetBerd (  )  const [inline]

The Berdichevskyi invariant.

Definition at line 126 of file CMTTensor.h.

References GetD2().

Referenced by SetupMTFitParameters().

00126 {return 0.5*GetD2();}

Here is the call graph for this function:

double CMTTensor::GetdBerd (  )  const [inline]

The error of the Berdichevskyi invariant.

Definition at line 128 of file CMTTensor.h.

Referenced by SetupMTFitParameters().

00128 { return 0.5*sqrt(dZxy*dZxy+dZyx*dZyx);}

std::complex<double> CMTTensor::GetDet (  )  const [inline]

The determinant.

Definition at line 130 of file CMTTensor.h.

Referenced by SetupMTFitParameters().

00130 {return Zxx * Zyy - Zxy*Zyx;}

double CMTTensor::GetdDet (  )  const [inline]

The error of the determinant.

Definition at line 132 of file CMTTensor.h.

Referenced by SetupMTFitParameters().

00132                            { return sqrt( abs(Zyy*Zyy)*dZxx*dZxx + abs(Zxx*Zxx)*dZyy*dZyy
00133                 + abs(Zxy*Zxy)*dZyx*dZyx + abs(Zyx*Zyx)*dZxy*dZxy);}

double CMTTensor::GetDetreal (  )  const [inline]

The determinant of the real parts of Z.

Definition at line 135 of file CMTTensor.h.

Referenced by GetPhi11(), GetPhi12(), GetPhi21(), GetPhi22(), and main().

00135 {return Zxx.real() * Zyy.real() - Zxy.real() * Zyx.real();}

double CMTTensor::GetdDetreal (  )  const [inline]

Get the error of the determinant of the real part.

Definition at line 137 of file CMTTensor.h.

00137                                { return sqrt(gsl_pow_2(Zyy.real()) * gsl_pow_2(dZxx) + 
00138                 gsl_pow_2(Zxx.real()) * gsl_pow_2(dZyy) + gsl_pow_2(Zxy.real()) * gsl_pow_2(dZyx)
00139                 + gsl_pow_2(Zyx.real()) * gsl_pow_2(dZxy));}

double CMTTensor::GetMu (  )  const [inline]

Rotationally invariant phase difference.

Definition at line 141 of file CMTTensor.h.

References Commute(), GetD1(), GetD2(), GetS1(), and GetS2().

Referenced by main().

00141 { return sqrt(fabs(Commute(GetD1(),GetS2())+Commute(GetS1(),GetD2())))/abs(GetD2());}

Here is the call graph for this function:

double CMTTensor::GetKappa (  )  const [inline]

Swift's skew.

Definition at line 143 of file CMTTensor.h.

References GetD2(), and GetS1().

Referenced by main().

00143 {return abs(GetS1())/abs(GetD2());}

Here is the call graph for this function:

double CMTTensor::GetSigma (  )  const [inline]

Definition at line 144 of file CMTTensor.h.

References GetD1(), GetD2(), and GetS2().

Referenced by main().

00144 {return (gsl_pow_2(abs(GetD1()))+gsl_pow_2(abs(GetS2())))/gsl_pow_2(abs(GetD2()));}

Here is the call graph for this function:

double CMTTensor::GetEta (  )  const [inline]

Bahr's skew.

Definition at line 146 of file CMTTensor.h.

References Commute(), GetD1(), GetD2(), GetS1(), and GetS2().

Referenced by main().

00146                           {
00147                 return sqrt(fabs(Commute(GetD1(),GetS2())-Commute(GetS1(),GetD2())))/abs(GetD2());}

Here is the call graph for this function:

double CMTTensor::GetAlpha (  )  const [inline]

Definition at line 149 of file CMTTensor.h.

References Commute(), GetD1(), GetD2(), GetS1(), and GetS2().

Referenced by GetAlphaHigh(), GetMaxPhiDiff(), main(), and SetupMTFitParameters().

00149                            {
00150                 double denominator = Commute(GetS1(),GetD1())-Commute(GetS2(),GetD2());
00151                 if (gsl_fcmp(denominator,0.0,GSL_DBL_EPSILON) !=0)
00152                         return 0.5 * atan((Commute(GetS1(),GetS2()) - Commute(GetD1(),GetD2()))/
00153                                         (denominator));
00154                 else
00155                         return 0.0;}

Here is the call graph for this function:

double CMTTensor::GetAlphaHigh (  )  const [inline]

Calculate strike angle, so it points to high conductivity direction (Phixy > Phiyx).

Definition at line 157 of file CMTTensor.h.

References GetAlpha(), GetPhixy(), GetPhiyx(), and Rotate().

00157                                    {
00158                 double regalpha = GetAlpha(); // calculate strike angle
00159                 CMTTensor tmp(*this); //create local copy
00160                 tmp.Rotate(regalpha); //rotate to new coordinate system
00161                 if (tmp.GetPhiyx() > tmp.GetPhixy())
00162                         regalpha += PI/2.0;
00163                 return regalpha;
00164         }

Here is the call graph for this function:

double CMTTensor::GetMaxPhiDiff (  )  const [inline]

Maximum phase difference.

Definition at line 166 of file CMTTensor.h.

References GetAlpha(), GetPhixy(), GetPhiyx(), and Rotate().

00166                                     {
00167                 CMTTensor tmp(*this); //create local copy
00168                 tmp.Rotate(GetAlpha());
00169                 return fabs(tmp.GetPhixy() - tmp.GetPhiyx());
00170         }

Here is the call graph for this function:

double CMTTensor::GetPhi11 (  )  const [inline]

All the following quantities are defined in Caldwell GJI 158, 457-469, the phase tensor elements.

Definition at line 172 of file CMTTensor.h.

References GetDetreal().

Referenced by GetAlpha_phi(), GetBeta_phi(), GetdetPhi(), GetPi1(), GetPi2(), GettrPhi(), main(), PTensorMTStation::operator=(), PTensor1DMTObjective::SafeParallel(), and SetupMTFitParameters().

00172                             {
00173                 const double dr = GetDetreal();
00174                 if (gsl_fcmp(dr,0.0,GSL_DBL_EPSILON) !=0)
00175                         return ((Zyy.real() * Zxx.imag() - Zxy.real()*Zyx.imag())/dr);
00176                 else 
00177                         return 0.0;}

Here is the call graph for this function:

double CMTTensor::GetPhi12 (  )  const [inline]

Definition at line 178 of file CMTTensor.h.

References GetDetreal().

Referenced by GetAlpha_phi(), GetBeta_phi(), GetdetPhi(), GetPi1(), GetPi2(), GetskPhi(), main(), PTensorMTStation::operator=(), PTensor1DMTObjective::SafeParallel(), and SetupMTFitParameters().

00178                                 {
00179                         const double dr = GetDetreal();
00180                     if (gsl_fcmp(dr,0.0,GSL_DBL_EPSILON) !=0)
00181                         return ((Zyy.real() * Zxy.imag() - Zxy.real()*Zyy.imag())/dr); 
00182                     else 
00183                         return 0.0;}

Here is the call graph for this function:

double CMTTensor::GetPhi21 (  )  const [inline]

Definition at line 184 of file CMTTensor.h.

References GetDetreal().

Referenced by GetAlpha_phi(), GetBeta_phi(), GetdetPhi(), GetPi1(), GetPi2(), GetskPhi(), main(), PTensorMTStation::operator=(), PTensor1DMTObjective::SafeParallel(), and SetupMTFitParameters().

00184                                 {
00185                         const double dr = GetDetreal();
00186                     if (gsl_fcmp(dr,0.0,GSL_DBL_EPSILON) !=0)
00187                         return ((Zxx.real() * Zyx.imag() - Zyx.real()*Zxx.imag())/dr); 
00188                     else 
00189                         return 0.0;}

Here is the call graph for this function:

double CMTTensor::GetPhi22 (  )  const [inline]

Definition at line 190 of file CMTTensor.h.

References GetDetreal().

Referenced by GetAlpha_phi(), GetBeta_phi(), GetdetPhi(), GetPi1(), GetPi2(), GettrPhi(), main(), PTensorMTStation::operator=(), PTensor1DMTObjective::SafeParallel(), and SetupMTFitParameters().

00190                                 {
00191                         const double dr = GetDetreal();
00192                         if (gsl_fcmp(dr,0.0,GSL_DBL_EPSILON) !=0)
00193                                 return ((Zxx.real() * Zyy.imag() - Zyx.real()*Zxy.imag())/dr);
00194                         else 
00195                             return 0.0;}

Here is the call graph for this function:

double CMTTensor::GetAlpha_phi (  )  const [inline]

Definition at line 196 of file CMTTensor.h.

References GetPhi11(), GetPhi12(), GetPhi21(), and GetPhi22().

Referenced by GetPhiStrike(), main(), and SetupMTFitParameters().

00196                                     {
00197                         const double diff = GetPhi11() - GetPhi22();
00198                         if (gsl_fcmp(diff,0.0,GSL_DBL_EPSILON) !=0)
00199                                 return 0.5* atan2((GetPhi12() + GetPhi21()),diff);
00200                         else
00201                                 return 0.0;}

Here is the call graph for this function:

double CMTTensor::GetBeta_phi (  )  const [inline]

Definition at line 202 of file CMTTensor.h.

References GetPhi11(), GetPhi12(), GetPhi21(), and GetPhi22().

Referenced by GetPhiStrike(), main(), and SetupMTFitParameters().

00202                                    {
00203                         return 0.5* atan2((GetPhi12() - GetPhi21()),(GetPhi11() + GetPhi22()));}

Here is the call graph for this function:

double CMTTensor::GetPi1 (  )  const [inline]

Definition at line 204 of file CMTTensor.h.

References GetPhi11(), GetPhi12(), GetPhi21(), and GetPhi22().

Referenced by GetPhiMax(), GetPhiMin(), and main().

00204 { return 0.5 * sqrt( pow(GetPhi11() - GetPhi22(),2) + pow(GetPhi12() + GetPhi21(),2));}

Here is the call graph for this function:

double CMTTensor::GetPi2 (  )  const [inline]

Definition at line 205 of file CMTTensor.h.

References GetPhi11(), GetPhi12(), GetPhi21(), and GetPhi22().

Referenced by GetPhiMax(), GetPhiMin(), and main().

00205 {return 0.5 * sqrt( pow(GetPhi11() + GetPhi22(),2) + pow(GetPhi12() - GetPhi21(),2));}

Here is the call graph for this function:

double CMTTensor::GetPhiStrike (  )  const [inline]

Definition at line 206 of file CMTTensor.h.

References GetAlpha_phi(), and GetBeta_phi().

Referenced by main().

00206 {return GetAlpha_phi() - GetBeta_phi();}

Here is the call graph for this function:

double CMTTensor::GetPhiMax (  )  const [inline]

Definition at line 207 of file CMTTensor.h.

References GetPi1(), and GetPi2().

Referenced by GetPhiEllip(), main(), and SetupMTFitParameters().

00207 {return GetPi2() + GetPi1();}

Here is the call graph for this function:

double CMTTensor::GetPhiMin (  )  const [inline]

Definition at line 208 of file CMTTensor.h.

References GetPi1(), and GetPi2().

Referenced by GetPhiEllip(), main(), and SetupMTFitParameters().

00208 {return GetPi2() - GetPi1();}

Here is the call graph for this function:

double CMTTensor::GettrPhi (  )  const [inline]

Definition at line 209 of file CMTTensor.h.

References GetPhi11(), and GetPhi22().

Referenced by GetPhi1(), and main().

00209 {return GetPhi11() + GetPhi22();}

Here is the call graph for this function:

double CMTTensor::GetskPhi (  )  const [inline]

Definition at line 210 of file CMTTensor.h.

References GetPhi12(), and GetPhi21().

Referenced by GetPhi3(), and main().

00210 {return GetPhi12() - GetPhi21();}

Here is the call graph for this function:

double CMTTensor::GetdetPhi (  )  const [inline]

Definition at line 211 of file CMTTensor.h.

References GetPhi11(), GetPhi12(), GetPhi21(), and GetPhi22().

Referenced by GetPhi2(), GetPhi2Sq(), and main().

00211 {return GetPhi11() * GetPhi22() - GetPhi12()* GetPhi21();}

Here is the call graph for this function:

double CMTTensor::GetPhi1 (  )  const [inline]

Definition at line 212 of file CMTTensor.h.

References GettrPhi().

Referenced by main().

00212 {return GettrPhi()/2.;}

Here is the call graph for this function:

double CMTTensor::GetPhi2 (  )  const [inline]

Definition at line 213 of file CMTTensor.h.

References GetdetPhi().

Referenced by main().

00213 {return sqrt(fabs(GetdetPhi()));}

Here is the call graph for this function:

double CMTTensor::GetPhi2Sq (  )  const [inline]

Definition at line 214 of file CMTTensor.h.

References GetdetPhi().

00214 {return GetdetPhi();}

Here is the call graph for this function:

double CMTTensor::GetPhi3 (  )  const [inline]

Definition at line 215 of file CMTTensor.h.

References GetskPhi().

Referenced by main().

00215 {return GetskPhi()/2.;}

Here is the call graph for this function:

double CMTTensor::GetPhiEllip (  )  const [inline]

Definition at line 216 of file CMTTensor.h.

References GetPhiMax(), and GetPhiMin().

Referenced by main().

00216                                    {
00217                         return (GetPhiMax() - GetPhiMin())/(GetPhiMax()+GetPhiMin()); }

Here is the call graph for this function:

double CMTTensor::GetXi1 (  )  const [inline]

Definition at line 219 of file CMTTensor.h.

Referenced by Getd12(), Getd13(), Getd41(), GetI1(), GetI5(), and GetI6().

00219 {return 0.5*(Zxx.real() + Zyy.real());}

double CMTTensor::GetXi2 (  )  const [inline]

Definition at line 220 of file CMTTensor.h.

Referenced by Getd12(), Getd23(), Getd24(), and GetI3().

00220 {return 0.5*(Zxy.real() + Zyx.real());}

double CMTTensor::GetXi3 (  )  const [inline]

Definition at line 221 of file CMTTensor.h.

Referenced by Getd13(), Getd23(), Getd34(), and GetI3().

00221 {return 0.5*(Zxx.real() - Zyy.real());}

double CMTTensor::GetXi4 (  )  const [inline]

Definition at line 222 of file CMTTensor.h.

Referenced by Getd24(), Getd34(), Getd41(), GetI1(), GetI5(), and GetI6().

00222 {return 0.5*(Zxy.real() - Zyx.real());}

double CMTTensor::GetEta1 (  )  const [inline]

Definition at line 223 of file CMTTensor.h.

Referenced by Getd12(), Getd13(), Getd41(), GetI2(), GetI5(), and GetI6().

00223 {return 0.5*(Zxx.imag() + Zyy.imag());}

double CMTTensor::GetEta2 (  )  const [inline]

Definition at line 224 of file CMTTensor.h.

Referenced by Getd12(), Getd23(), Getd24(), and GetI4().

00224 {return 0.5*(Zxy.imag() + Zyx.imag());}

double CMTTensor::GetEta3 (  )  const [inline]

Definition at line 225 of file CMTTensor.h.

Referenced by Getd13(), Getd23(), Getd34(), and GetI4().

00225 {return 0.5*(Zxx.imag() - Zyy.imag());}

double CMTTensor::GetEta4 (  )  const [inline]

Definition at line 226 of file CMTTensor.h.

Referenced by Getd24(), Getd34(), Getd41(), GetI2(), GetI5(), and GetI6().

00226 {return 0.5*(Zxy.imag() - Zyx.imag());}

double CMTTensor::GetI1 (  )  const [inline]

Definition at line 227 of file CMTTensor.h.

References GetXi1(), and GetXi4().

Referenced by Getd12(), Getd13(), Getd23(), Getd24(), Getd34(), Getd41(), GetI3(), GetI5(), GetI6(), and Getr().

00227 {return sqrt(gsl_pow_2(GetXi1()) + gsl_pow_2(GetXi4()));}

Here is the call graph for this function:

double CMTTensor::GetI2 (  )  const [inline]

Definition at line 228 of file CMTTensor.h.

References GetEta1(), and GetEta4().

Referenced by Getd12(), Getd13(), Getd23(), Getd24(), Getd34(), Getd41(), GetI4(), GetI5(), GetI6(), and Getr().

00228 {return sqrt(gsl_pow_2(GetEta1()) + gsl_pow_2(GetEta4()));}

Here is the call graph for this function:

double CMTTensor::GetI3 (  )  const [inline]

Definition at line 229 of file CMTTensor.h.

References GetI1(), GetXi2(), and GetXi3().

00229 {return sqrt(gsl_pow_2(GetXi2()) + gsl_pow_2(GetXi3()))/GetI1();}

Here is the call graph for this function:

double CMTTensor::GetI4 (  )  const [inline]

Definition at line 230 of file CMTTensor.h.

References GetEta2(), GetEta3(), and GetI2().

00230 {return sqrt(gsl_pow_2(GetEta2()) + gsl_pow_2(GetEta3()))/GetI2();}

Here is the call graph for this function:

double CMTTensor::GetI5 (  )  const [inline]

Definition at line 231 of file CMTTensor.h.

References GetEta1(), GetEta4(), GetI1(), GetI2(), GetXi1(), and GetXi4().

Referenced by Geta(), and Getb().

00231 {return (GetXi4()*GetEta1()+GetXi1()*GetEta4())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::GetI6 (  )  const [inline]

Definition at line 232 of file CMTTensor.h.

References GetEta1(), GetEta4(), GetI1(), GetI2(), GetXi1(), and GetXi4().

Referenced by Geta(), and Getb().

00232 {return (GetXi4()*GetEta1()-GetXi1()*GetEta4())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::Getd13 (  )  const [inline]

Definition at line 233 of file CMTTensor.h.

References GetEta1(), GetEta3(), GetI1(), GetI2(), GetXi1(), and GetXi3().

Referenced by GetQ().

00233 {return (GetXi1()*GetEta3()-GetXi3()*GetEta1())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::Getd12 (  )  const [inline]

Definition at line 234 of file CMTTensor.h.

References GetEta1(), GetEta2(), GetI1(), GetI2(), GetXi1(), and GetXi2().

Referenced by GetQ().

00234 {return (GetXi1()*GetEta2()-GetXi2()*GetEta1())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::Getd24 (  )  const [inline]

Definition at line 235 of file CMTTensor.h.

References GetEta2(), GetEta4(), GetI1(), GetI2(), GetXi2(), and GetXi4().

Referenced by GetQ().

00235 {return (GetXi2()*GetEta4()-GetXi4()*GetEta2())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::Getd34 (  )  const [inline]

Definition at line 236 of file CMTTensor.h.

References GetEta3(), GetEta4(), GetI1(), GetI2(), GetXi3(), and GetXi4().

Referenced by GetQ().

00236 {return (GetXi3()*GetEta4()-GetXi4()*GetEta3())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::Getd41 (  )  const [inline]

Definition at line 237 of file CMTTensor.h.

References GetEta1(), GetEta4(), GetI1(), GetI2(), GetXi1(), and GetXi4().

Referenced by GetI7().

00237 {return (GetXi4()*GetEta1()-GetXi1()*GetEta4())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::Getd23 (  )  const [inline]

Definition at line 238 of file CMTTensor.h.

References GetEta2(), GetEta3(), GetI1(), GetI2(), GetXi2(), and GetXi3().

Referenced by GetI7().

00238 {return (GetXi2()*GetEta3()-GetXi3()*GetEta2())/(GetI1()*GetI2());}

Here is the call graph for this function:

double CMTTensor::GetQ (  )  const [inline]

Definition at line 239 of file CMTTensor.h.

References Getd12(), Getd13(), Getd24(), and Getd34().

Referenced by GetI7(), and main().

00239 {return sqrt(gsl_pow_2(Getd12()-Getd34())+gsl_pow_2(Getd13()+Getd24()));}

Here is the call graph for this function:

double CMTTensor::GetI7 (  )  const [inline]

Definition at line 240 of file CMTTensor.h.

References Getd23(), Getd41(), and GetQ().

00240 {return (Getd41() + Getd23())/GetQ();}

Here is the call graph for this function:

double CMTTensor::Geta (  )  const [inline]

Definition at line 241 of file CMTTensor.h.

References GetI5(), and GetI6().

00241 {return gsl_pow_2(GetI5() - GetI6());}

Here is the call graph for this function:

double CMTTensor::Getb (  )  const [inline]

Definition at line 242 of file CMTTensor.h.

References GetI5(), and GetI6().

00242                             {return 1.0 - GetI5() * GetI6() + sqrt(1.0+gsl_pow_2(GetI5())*gsl_pow_2(GetI6())
00243                                 - gsl_pow_2(GetI5()) - gsl_pow_2(GetI6()));
00244         }

Here is the call graph for this function:

double CMTTensor::Getr (  )  const [inline]

Definition at line 245 of file CMTTensor.h.

References GetI1(), and GetI2().

00245 {return GetI2()/GetI1();}

Here is the call graph for this function:

double CMTTensor::GetRx (  )  const [inline]

Return coherency for the x-direction.

Definition at line 251 of file CMTTensor.h.

00251 {return Rx;}

double CMTTensor::GetRy (  )  const [inline]

Return coherency for the y-direction.

Definition at line 253 of file CMTTensor.h.

00253 {return Ry;}

double CMTTensor::GetNu (  )  const [inline]

The degrees of freedom used for transfer function estimation.

Definition at line 255 of file CMTTensor.h.

00255 {return Nu;}

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

Definition at line 38 of file CMTTensor.cpp.

References dZxx, dZxy, dZyx, dZyy, frequency, Nu, rotangle, Rx, Ry, Zxx, Zxy, Zyx, and Zyy.

00039 {
00040         if (this == &source)
00041                 return *this;
00042         Zxx = source.Zxx;
00043         Zxy = source.Zxy;
00044         Zyx = source.Zyx;
00045         Zyy = source.Zyy;
00046         dZxx = source.dZxx;
00047         dZxy = source.dZxy;
00048         dZyx = source.dZyx;
00049         dZyy = source.dZyy;
00050         frequency = source.frequency;
00051         rotangle = source.rotangle;
00052         Rx = source.Rx;
00053         Ry = source.Ry;
00054         Nu = source.Nu;
00055         return *this;
00056 }


Friends And Related Function Documentation

friend class CMTStation [friend]

Definition at line 256 of file CMTTensor.h.

friend class C1DMTSynthData [friend]

Definition at line 257 of file CMTTensor.h.

friend class JParser [friend]

Definition at line 258 of file CMTTensor.h.

friend class EDIParser [friend]

Definition at line 259 of file CMTTensor.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 22 14:08:12 2007 for GPLIB++ by  doxygen 1.5.1