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

#include <CompatDispersion.h>

Inheritance diagram for QGpCompatibility::CompatDispersion:
QGpCompatibility::CompatMultiModalCurves QGpCompatibility::CompatMultiModalFrequency QGpCompatibility::CompatDispersionData

List of all members.

Public Member Functions

bool checkSlopes (double maxSlowness)
void clear ()
 CompatDispersion ()
 CompatDispersion (int modesCount, int omegasCount)
 CompatDispersion (const CompatMultiModalFrequency *o)
 CompatDispersion (const CompatMultiModalFrequency *o, int modesCount)
 CompatDispersion (const CompatMultiModalCurves *o)
 CompatDispersion (const CompatMultiModalCurves *o, int modesCount)
void exportHerrmann (char *fileName)
int omegasCount (int m) const
int omegasCount () const
 Returns the omega count.
void resetValues ()
void setPrecision (double prec)

Constructor & Destructor Documentation

: CompatMultiModalCurves() {_relPrec=1e-7;}
QGpCompatibility::CompatDispersion::CompatDispersion ( int  modesCount,
int  omegasCount 
) [inline]
    : CompatMultiModalCurves(o) {_relPrec=1e-7;}
    : CompatMultiModalCurves(o, modesCount) {_relPrec=1e-7;}
    : CompatMultiModalCurves(o) {_relPrec=1e-7;}
    : CompatMultiModalCurves(o, modesCount,0) {_relPrec=1e-7;}

Member Function Documentation

References QGpCompatibility::CompatMultiModalFrequency::_modesCount, QGpCompatibility::CompatMultiModalFrequency::_omegas, QGpCompatibility::CompatMultiModalFrequency::_omegasCount, QGpCompatibility::CompatMultiModalCurves::_values, mode, and TRACE.

{
  TRACE;
  bool ret=true;
  double smin=1e99;
  for(int mode=0; mode<_modesCount;mode++) {
    double * values=_values[mode];
    int i=0;
    for(; values[i]==0 && i<_omegasCount; i++) {}
    for(i++; i<_omegasCount; i++) {
      // Normally slowness curve is increasing with frequency
      // But some Rayleigh curve can decrease on some small portion
      // with very gentle slopes.
      // It's not easy to define a threshold but we are going to aquire some
      // experience
      if(values[i]<=values[i-1])
      {
        double s=values[i-1]-values[i]/(_omegas[i-1]-_omegas[i]);
        if(s<smin) smin=s;
        ret=false;
      }
    }
  }
  if(!ret)
    printf("*** WARNING ***: slowness decreasing with frequency, max slope=%lg\n",smin);
  return ret;
}

References QGpCompatibility::CompatMultiModalFrequency::_omegasCount, QGpCompatibility::CompatMultiModalCurves::_values, and TRACE.

{
  TRACE;
  int n=0;
  double * values=_values[m];
  for(int i=0;i<_omegasCount;i++) {
    if(values[i]!=0) n++;
  }
  return n;
}
void QGpCompatibility::CompatDispersion::setPrecision ( double  prec) [inline]
{_relPrec=prec;}

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