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);
}