本文整理汇总了C++中Velocity::getAverageRange方法的典型用法代码示例。如果您正苦于以下问题:C++ Velocity::getAverageRange方法的具体用法?C++ Velocity::getAverageRange怎么用?C++ Velocity::getAverageRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Velocity
的用法示例。
在下文中一共展示了Velocity::getAverageRange方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: start
void Receiver1D::removeDirectArrival(const Source& source,
const Velocity& velocity, float t_width)
{
float dt = this->getDt();
int half_len = t_width / dt;
/// get the velocity average in a range
int z_min = std::min(source.getDepth(), this->getDepth());
int z_max = std::max(source.getDepth(), this->getDepth());
int s[] = {z_min, 0};
int e[] = {z_max, velocity.getNx()};
std::vector<int> start(s, s + 2);
std::vector<int> end(e, e + 2);
float vel_avg = velocity.getAverageRange(start, end);
const int nx = this->getGeometryDim()[0];
for (int ix = 0; ix < nx; ix++) {
std::vector<int> currRcvLoc, sourceLoc;
sourceLoc.push_back(source.getDepth());
sourceLoc.push_back(source.getGeometryOrigin()[0]);
currRcvLoc.push_back(getDepth());
currRcvLoc.push_back(getGeometryOrigin()[0] + getGeometryDelta()[0] * ix);
const float dist2 = variance(sourceLoc, currRcvLoc);
int tstart = std::sqrt(dist2 * vel_avg);
int tend = ((tstart + 2 * half_len) > this->getNt()) ? this->getNt() : (tstart + 2 * half_len);
float *p = &mData[ix * getNt()];
std::fill(p + tstart, p + tend, 0);
}
}