⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bend.h

📁 二维射线追踪地震层析成像
💻 H
字号:
/* * bend.h - ray-bending solver interface * * Jun Korenaga, MIT/WHOI * January 1999 */#ifndef _TOMO_BEND_H_#define _TOMO_BEND_H_#include <array.h> // from mconv#include <geom.h>#include "smesh.h"#include "betaspline.h"#include "interface.h"class BendingSolver2d {public:    BendingSolver2d(const SlownessMesh2d& s, const BetaSpline2d& bs,		    double tol1=1e-4, double tol2=1e-7);    int refine(Array1d<Point2d>& path, double& orig_time, double& new_time);    int refine(Array1d<Point2d>& path, double& orig_time, double& new_time, int nfac);    int refine(Array1d<Point2d>& path, double& orig_time, double& new_time,	       const Array1d<int>& start_i, const Array1d<int>& end_i,	       const Array1d<const Interface2d*>& interf);    double tolerance() const { return cg_tol; }    private:    typedef double (BendingSolver2d::*PF1DIM)(double);    int check_path_size(Array1d<Point2d>& path);    int check_path_size(Array1d<Point2d>& path,			const Array1d<int>& start_i,			const Array1d<int>& end_i,			const Array1d<const Interface2d*>& interf);    void adjust_dTdV(Array1d<Point2d>& dTdV,		     const Array1d<Point2d>& path,		     const Array1d<int>& start_i,		     const Array1d<int>& end_i,		     const Array1d<const Interface2d*>& interf);    double line_min(Array1d<Point2d>& path, const Array1d<Point2d>& direc);    double line_min(Array1d<Point2d>& path, const Array1d<Point2d>& direc,		    const Array1d<int>& start_i, const Array1d<int>& end_i,		    const Array1d<const Interface2d*>& interf);    void mnbrak(double *ax, double *bx, double *cx,		double *fa, double *fb, double *fc, PF1DIM);    double brent(double ax, double bx, double cx, double *xmin, PF1DIM);    double f1dim(double x);    double f1dim_interf(double x);		        const SlownessMesh2d& smesh;    const BetaSpline2d& bs;    const int nintp;    const double cg_tol, brent_tol, eps;    Array1d<Point2d> Q, dQdu;    Array1d<const Point2d*> pp, new_pp;    const Array1d<Point2d> *point_p, *direc_p;    const Array1d<int> *start_i_p, *end_i_p;    const Array1d<const Interface2d*> *interf_p;    Array1d<Point2d> new_point;    Array1d<Point2d> dTdV, new_dTdV, direc;};#endif /* _TOMO_BEND_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -