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