UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
p_vspogt_model.H
1 /* p_vspogt_model.H */
2 /*
3  Модель, заточенная под ВСП-ОГТ (недомиграцию). Объявления. */ /* $Id: p_vspogt_model.H,v 2.7 2005/07/21 12:28:30 ibadm Exp $ */ #ifndef __p_vspogt_model_H #define __p_vspogt_model_H #include <mod3d/p_raytr_model.H> #include <mod3d/p_raytr_elements.H> #include "p_vspogt_elements.H" #include "pp_stack.H" #include <mix/IntAr.H> class pl_vspogt_model:public pl_raytr_model{ protected: time_depth_lists tdlaMain; // Список глубин-времен по всем телам и приемникам int iTDLStoreRegime; Logic hit_fict_border(int iB,const pl_fict_border&,rays_to_receiver*, double&,point&,ray_to_receiver&,crossing* pCR=NULL); Logic hit_with_initial(int iBody,const pl_fict_border& fbReflect, point pWhere,double& dTime,point& pRes, ray_to_receiver& rtrRes,ray_parameters rpInitial, crossing* pCR=NULL); ray_parameters reflect_fict_border(int,const pl_fict_border&, const rays_to_receiver*,crossing&)const; // По номеру тела - его границы, которые пересекают лучи void get_active_borders(int,const rays_to_receiver*, DoubleAr&,pl_intern_borders&)const; void get_active_rays(int,const rays_to_receiver*,rays_to_receiver&)const; StorageID tispatra(rays_to_receiver* prtr,double dTMax); // Для считывания модели... virtual p_pl_intern_body new_body(geophys_params&g){ return (p_pl_intern_body) new pl_vspogt_body(g); }; rays_to_receiver* copy_rays_to_receiver(int,int)const; Logic has_rays_to_receiver(int,int)const; dbHandle get_tdl(int,int) const; void last_body(int iBody,int iBorder,pl_vspogt_body& bdCurBody, ray* prInitial,double dTLast, const point& pWhere); public: pl_vspogt_model(const dbItem &dbiWhere); pl_vspogt_model(pl_vspogt_model& am); // Конструктор копирования... Не бывает virtual ~pl_vspogt_model(); StorageID tispatra(int,int,const point&,double dTMax); point load_sp() const; Logic has_vspogt(int,int) const; void vspcdp(int N1,int N2,double* daTrace,int iCount,double dT, any_stack& psCube); void get_receiver_vpol(int N1,int N2,int iCount,double dDT,double dT0, DoubleAr &davpolX,DoubleAr &davpolY,DoubleAr &davpolZ); void set_tdl_dbwrite_regime(int); void load_td_lists(); virtual const char* class_id(){return "pl_vspogt_model";}; virtual Logic isDerivedFrom(const char* class_name); }; #define PM_INITIAL_NODES 1 // Функции - люмпены... double interpolate_amplitude(double *daTrace,int i,double dCTime,double dt, double dTime); #endif /* p_vspogt_model.H */ /* Melnikov George Yu. 19-Mar-1999 */ /* ... */ /* Melnikov George Yu. 3-Dec-1999 */
4  */
5 /* $Id: p_vspogt_model.H,v 2.7 2005/07/21 12:28:30 ibadm Exp $ */
6 #ifndef __p_vspogt_model_H
7 #define __p_vspogt_model_H
8 
9 
10 #include <mod3d/p_raytr_model.H>
11 #include <mod3d/p_raytr_elements.H>
12 #include "p_vspogt_elements.H"
13 #include "pp_stack.H"
14 #include <mix/IntAr.H>
15 
17 protected:
18  time_depth_lists tdlaMain; // Список глубин-времен по всем телам и приемникам
19  int iTDLStoreRegime;
20 
21  Logic hit_fict_border(int iB,const pl_fict_border&,rays_to_receiver*,
22  double&,point&,ray_to_receiver&,crossing* pCR=NULL);
23  Logic hit_with_initial(int iBody,const pl_fict_border& fbReflect,
24  point pWhere,double& dTime,point& pRes,
25  ray_to_receiver& rtrRes,ray_parameters rpInitial,
26  crossing* pCR=NULL);
27  ray_parameters reflect_fict_border(int,const pl_fict_border&,
28  const rays_to_receiver*,crossing&)const;
29 
30  // По номеру тела - его границы, которые пересекают лучи
31  void get_active_borders(int,const rays_to_receiver*,
32  DoubleAr&,pl_intern_borders&)const;
33 
34  void get_active_rays(int,const rays_to_receiver*,rays_to_receiver&)const;
35 
36  StorageID tispatra(rays_to_receiver* prtr,double dTMax);
37 
38  // Для считывания модели...
39  virtual p_pl_intern_body new_body(geophys_params&g){
40  return (p_pl_intern_body) new pl_vspogt_body(g);
41  };
42 
43  rays_to_receiver* copy_rays_to_receiver(int,int)const;
44  Logic has_rays_to_receiver(int,int)const;
45  dbHandle get_tdl(int,int) const;
46  void last_body(int iBody,int iBorder,pl_vspogt_body& bdCurBody,
47  ray* prInitial,double dTLast, const point& pWhere);
48 public:
49  pl_vspogt_model(const dbItem &dbiWhere);
50  pl_vspogt_model(pl_vspogt_model& am); // Конструктор копирования... Не бывает
51  virtual ~pl_vspogt_model();
52 
53  StorageID tispatra(int,int,const point&,double dTMax);
54 
55  point load_sp() const;
56  Logic has_vspogt(int,int) const;
57  void vspcdp(int N1,int N2,double* daTrace,int iCount,double dT,
58  any_stack& psCube);
59  void get_receiver_vpol(int N1,int N2,int iCount,double dDT,double dT0,
60  DoubleAr &davpolX,DoubleAr &davpolY,DoubleAr &davpolZ);
61  void set_tdl_dbwrite_regime(int);
62  void load_td_lists();
63 
64  virtual const char* class_id(){return "pl_vspogt_model";};
65 
66  virtual Logic isDerivedFrom(const char* class_name);
67 
68 };
69 #define PM_INITIAL_NODES 1
70 
71 // Функции - люмпены...
72 double interpolate_amplitude(double *daTrace,int i,double dCTime,double dt,
73  double dTime);
74 
75 
76 #endif /* p_vspogt_model.H */
77 /* Melnikov George Yu. 19-Mar-1999 */
78 /* ... */
79 /* Melnikov George Yu. 3-Dec-1999 */
Definition: p_raytr_elements.H:113
Definition: any_elements.H:22
Definition: rays.H:61
Definition: p_elements.H:145
Definition: geometry.H:16
Definition: rays.H:81
Definition: db_container.H:24
Definition: p_vspogt_elements.H:129
Definition: DoubleAr.H:14
Definition: p_elements.H:134
Definition: rays.H:170
Definition: p_vspogt_elements.H:124
Definition: pp_stack.H:25
Definition: dbnamedefs.h:85
Definition: rays.H:132
Definition: p_raytr_model.H:32
Definition: p_vspogt_model.H:16