Brief description of class still missing. More...
#include <AutocorrEngine.h>
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) |
Brief description of class still missing.
Full description of class still missing
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; } }
bool QGpCoreWave::AutocorrEngine::isThinRing | ( | ) | [inline] |
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); }
void QGpCoreWave::AutocorrEngine::setHorizontalRing | ( | const AutocorrRing & | r | ) | [inline] |
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) }
void QGpCoreWave::AutocorrEngine::setVerticalRing | ( | const AutocorrRing & | r | ) | [inline] |
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] |
References QGpCoreTools::Value< numberType >::isValid(), TRACE, and QGpCoreTools::Value< numberType >::value().
Referenced by QGpCoreWave::AutocorrDispersion::y().
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] |
References QGpCoreTools::Value< numberType >::isValid(), and QGpCoreTools::Value< numberType >::value().
Referenced by QGpCoreWave::AutocorrDispersion::y().
{ if(dispR.isValid()) { return RealValue(verticalThinRing( omega * dispR.value()) ); } else { return RealValue(); } }
double QGpCoreWave::AutocorrEngine::verticalThinRing | ( | double | k | ) | [inline] |
{
return j0(k * _r0);
}