38 #define TF_WNINTEGRATION_CC_VERSION \ 39 "TF_WNINTEGRATION_CC V1.0" 45 double retval=1.1/
Mm.
Vs;
53 TFourier::Tcoeff retval;
54 TFourier::Tcoeff pq=p*p;
55 TFourier::Tcoeff aq=(1./
Malphaq)-pq;
56 TFourier::Tcoeff bq=(1./
Mbetaq)-pq;
57 retval=std::sqrt(aq)+pq/std::sqrt(bq);
65 TFourier::Tcoeff retval;
79 TFourier::Tcoeff retval;
89 TFourier::Tcoeff retval;
114 TFourier::Tspectrum(0,par.nsteps-1), Mdp(ec.maxp()*par.edge/par.nsteps)
117 for (
int i=0; i<par.
nsteps; ++i)
120 this->operator()(i)=ec.
coeff(p)*
Mdp;
123 double arg=M_PI*(i-ltap)/
double(par.
nsteps);
124 this->operator()(i) *= 0.5*(std::cos(arg)+1.);
127 this->operator()(0) *= 0.5;
134 const double& offset,
137 TFourier::Tcoeff retval=0.;
138 double dpxw=M_PI*2.*f*offset*ec.
dp();
141 cout <<
" frequency: " << f <<
" Hz\n" 142 <<
" offset: " << offset <<
" m\n" 143 <<
" slowness stepsize: " << ec.
dp() <<
" s/m\n" 144 <<
" argument stepsize: " << dpxw << std::endl;
146 TFXX_assert((4.*dpxw <= M_PI),
147 "argument increase in each trapezoid step is too large; " 148 "increase number of steps");
152 for (
unsigned int i=0; i< ec.size(); ++i)
153 { retval += ec(i)*ec.
dp()*double(i)*gsl_sf_bessel_J0(i*dpxw); }
156 for (
unsigned int i=0; i< ec.size(); ++i)
157 { retval += ec(i)*double(i)*ec.
dp()*gsl_sf_bessel_J1(i*dpxw); }
160 for (
unsigned int i=0; i< ec.size(); ++i)
161 { retval += ec(i)*sin(i*dpxw); }
164 for (
unsigned int i=0; i< ec.size(); ++i)
165 { retval += ec(i)*cos(i*dpxw); }
Bessel function of order 1.
TFourier::Tcoeff Ma
derived values
TFourier::Tcoeff Mbetaq
square of complex S-wave velocity
virtual TFourier::Tcoeff coeff(const double &p) const
return expansion coefficient for given phase slowness
virtual TFourier::Tcoeff coeff(const double &p) const =0
return expansion coefficient for given phase slowness
int nsteps
number of steps
Bessel function of order 0.
double dp() const
return slowness interval
virtual TFourier::Tcoeff coeff(const double &p) const
return expansion coefficient for given phase slowness
double Vs
S-wave propagation velocity.
double Mdp
slowness stepsize
Model Mm
parameters for propagation model
TFourier::Tcoeff Malphaq
square of complex P-wave velocity
TFourier::Tcoeff wnintegration(const Exco &ec, const double &f, const double &offset, const Ebasis &fb)
Fourier coefficients obtained by wavenumber integration (prototypes)
double maxp() const
return desired minimum upper limit for integration
TFourier::Tcoeff rayleigh(const double &p) const
return value of Rayleigh determinant
fourier::fft::DRFFTWAFF TFourier
double taper
taper fraction at upper limit of wavenumber range
virtual TFourier::Tcoeff coeff(const double &p) const
return expansion coefficient for given phase slowness
virtual ~ExpCoefficients()