All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions
QGpCoreWave::AutocorrEngine Class Reference

Brief description of class still missing. More...

#include <AutocorrEngine.h>

Inheritance diagram for QGpCoreWave::AutocorrEngine:
QGpCoreWave::AutocorrDispersion

List of all members.

Public Member Functions

bool initHorizontalThickRing (double omega, const RealValue &dispR, const RealValue &dispL)
bool initHorizontalThinRing (double omega, const RealValue &dispR, const RealValue &dispL)
bool isThinRing ()
RealValue radial (double alphaRayleigh, double alphaLove)
void setHorizontalRing (const AutocorrRing &r)
void setVerticalRing (const AutocorrRing &r)
RealValue transverse (double alphaRayleigh, double alphaLove)
RealValue verticalThickRing (double omega, const RealValue &dispR)
double verticalThickRing (double k)
RealValue verticalThinRing (double omega, const RealValue &dispR)
double verticalThinRing (double k)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Member Function Documentation

bool QGpCoreWave::AutocorrEngine::initHorizontalThickRing ( double  omega,
const RealValue dispR,
const RealValue dispL 
) [inline]

References QGpCoreTools::Value< numberType >::isValid(), and QGpCoreTools::Value< numberType >::value().

{
  if(dispR .isValid() && dispL.isValid()) {
    double omegaR1=omega * _r1;
    double omegaR2=omega * _r2;

    double invKR=1.0/(omega * dispR.value());
    double argR1=omegaR1 * dispR.value();
    double argR2=omegaR2 * dispR.value();
    double j0R1=j0(argR1);
    double j1R1=j1(argR1);
    double j0R2=j0(argR2);
    double j1R2=j1(argR2);

    double invKL=1.0/(omega * dispL.value());
    double argL1=omegaR1 * dispL.value();
    double argL2=omegaR2 * dispL.value();
    double j0L1=j0(argL1);
    double j1L1=j1(argL1);
    double j0L2=j0(argL2);
    double j1L2=j1(argL2);

    _jRR=_rFactor * invKR *(invKR * (j0R2 - j0R1) + _r2 * j1R2 - _r1 * j1R1);
    _jLR=_rFactor * invKL * invKL * (j0L1 - j0L2);
    _jRT=_rFactor * invKR * invKR * (j0R1 - j0R2);
    _jLT=_rFactor * invKL *(invKL * (j0L2 - j0L1) + _r2 * j1L2 - _r1 * j1L1);
    return true;
  } else {
    return false;
  }
}
bool QGpCoreWave::AutocorrEngine::initHorizontalThinRing ( double  omega,
const RealValue dispR,
const RealValue dispL 
) [inline]

References QGpCoreTools::Value< numberType >::isValid(), and QGpCoreTools::Value< numberType >::value().

{
  if(dispR .isValid() && dispL.isValid()) {
    double omegaR=omega * _r0;
    double argR=omegaR * dispR.value();
    double j0R=j0(argR);
    double j2R=jn(2, argR);
    double argL=omegaR * dispL.value();
    double j0L=j0(argL);
    double j2L=jn(2, argL);
    _jRR=j0R - j2R;
    _jLR=j0L + j2L;
    _jRT=j0R + j2R;
    _jLT=j0L - j2L;
    return true;
  } else {
    return false;
  }
}

Referenced by QGpCoreWave::AutocorrDispersion::y().

{return fabs(_dr) < 0.02 * _r0;}
RealValue QGpCoreWave::AutocorrEngine::radial ( double  alphaRayleigh,
double  alphaLove 
) [inline]
{
  return RealValue(alphaRayleigh * _jRR + alphaLove * _jLR);
}

References QGpCoreWave::AutocorrRing::maxRadius(), QGpCoreWave::AutocorrRing::minRadius(), and TRACE.

{
  TRACE;
  _r1=ring.minRadius();
  _r2=ring.maxRadius();
  _r0=0.5 * (_r1 + _r2);
  _dr=_r2 - _r1;
  _rFactor=2.0/(_r0 * _dr);  // 4/(r2^2-r1^2)
}

References QGpCoreWave::AutocorrRing::maxRadius(), QGpCoreWave::AutocorrRing::minRadius(), and TRACE.

{
  TRACE;
  _r1=ring.minRadius();
  _r2=ring.maxRadius();
  _r0=0.5 * (_r1 + _r2);
  _dr=_r2 - _r1;
  _rFactor=_r0 * _dr;  // (r2^2-r1^2)/2
}
RealValue QGpCoreWave::AutocorrEngine::transverse ( double  alphaRayleigh,
double  alphaLove 
) [inline]
{
  return RealValue(alphaRayleigh * _jRT + alphaLove * _jLT);
}
RealValue QGpCoreWave::AutocorrEngine::verticalThickRing ( double  omega,
const RealValue dispR 
) [inline]
double QGpCoreWave::AutocorrEngine::verticalThickRing ( double  k) [inline]
{
  return (_r2 * j1(k * _r2) - _r1 * j1(k * _r1) )/(k * _rFactor);
}
RealValue QGpCoreWave::AutocorrEngine::verticalThinRing ( double  omega,
const RealValue dispR 
) [inline]
double QGpCoreWave::AutocorrEngine::verticalThinRing ( double  k) [inline]
{
  return j0(k * _r0);
}

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines