Brief description of class still missing. More...
#include <AutocorrDispersion.h>
Public Member Functions | |
| double | derivative (double k) |
| QVector< double > | dispersion (const FactoryPoint &autocorr, double kmin, double kmax) |
| void | setRing (const AutocorrRing &r) |
| double | y (double k) |
Brief description of class still missing.
Full description of class still missing
| double QGpCoreWave::AutocorrDispersion::derivative | ( | double | k | ) |
| QVector< double > QGpCoreWave::AutocorrDispersion::dispersion | ( | const FactoryPoint & | autocorr, |
| double | kmin, | ||
| double | kmax | ||
| ) |
Returns all the dispersion curve solutions for autocorr between kmin and kmax. The returned values are slowness sorted in ascending order.
References QGpCoreTools::RootSolverTemplate< double, FunctionClass >::inversePolarity(), QGpCoreTools::RootSolverTemplate< double, FunctionClass >::lower(), QGpCoreTools::RootSolverTemplate< double, FunctionClass >::neville(), QGpCoreTools::RootSolverTemplate< double, FunctionClass >::searchDownSlope(), QGpCoreTools::RootSolverTemplate< double, FunctionClass >::setPolarity(), QGpCoreTools::RootSolverTemplate< double, FunctionClass >::setPrecision(), QGpCoreTools::RootSolverTemplate< double, FunctionClass >::setRelativeStep(), TRACE, QGpCoreTools::StatisticalPoint< numberType >::x(), and QGpCoreTools::RealStatisticalPoint::y().
Referenced by QGpCoreWave::AutocorrCurves::dispersionCurve(), SpacSelector::inverse(), SpacSelector::inverseAt(), and SpacSelector::selectSamples().
{
TRACE;
QVector<double> results;
RootSolver<AutocorrDispersion> solver(this);
solver.setPrecision(1e-7);
solver.setRelativeStep(0.1);
_autocorrRef=autocorr.y(0);
solver.setPolarity(kmax);
double invOmega=0.5/(M_PI * autocorr.x());
while(solver.searchDownSlope(kmax, kmin, kmax) ) {
solver.neville();
kmax=solver.lower();
results.prepend(kmax*invOmega);
solver.inversePolarity();
}
return results;
}
| void QGpCoreWave::AutocorrDispersion::setRing | ( | const AutocorrRing & | r | ) | [inline] |
| double QGpCoreWave::AutocorrDispersion::y | ( | double | k | ) |
Calculates y(k)=verticalAutocorrelation(k)-autocorrRef.
References QGpCoreWave::AutocorrEngine::isThinRing(), TRACE, QGpCoreWave::AutocorrEngine::verticalThickRing(), and QGpCoreWave::AutocorrEngine::verticalThinRing().
{
TRACE;
if(isThinRing()) {
return verticalThinRing(k)-_autocorrRef;
} else {
return verticalThickRing(k)-_autocorrRef;
}
}