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

Brief description of class still missing. More...

#include <AutocorrDispersion.h>

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

List of all members.

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)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Member Function Documentation

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

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