UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
u3d_rtmod_defines.hpp
1 /* u3d_rtmod_defines.hpp */
2 /* $Id: u3d_rtmod_defines.hpp,v 1.36 2008/04/25 11:37:42 guser1 Exp $ */
3 #ifndef __u3d_rtmod_defines_hpp
4 #define __u3d_rtmod_defines_hpp
5 
6 #include <u3d_defines.hpp>
7 #include <u3d_point.hpp>
8 #include <u3d_model_defines.hpp>
9 #include <u3d_raytr_defines.hpp>
10 
11 #include <map>
12 
13 /* DEFAULT this line must be straight */
14 
15 //#define WF_DEBUG /* DEFAULT - OFF */ /* | */
16 //#define WH_DEBUG /* DEFAULT - OFF */ /* | */
17 //#define WF_DEBUG_SP_NUM 0 /* DEFAULT - OFF */ /* | */
18 //#define U3D_DYN_DEBUG /* DEFAULT - OFF */ /* | */
19 //#define U3D_WF_FOR_MIGR /* DEFAULT - OFF */ /* | */
20 
21 //#define U3D_SS_CODE_DEBUG /* DEFAULT - ON */ /* | */ /* DOES NOT WORK YET - assetion from broadcast stage appears */
22 
23 #define U3D_SHEAR_ANGLES_RECALC /* DEFAULT - ON */ /* | */
24 
25 #define U3D_NEW_RAY_STEP /* DEFAULT - ON */ /* | */
26 #define U3D_EXCLUDE_PERIMETER /* DEFAULT - ?? */ /* | */
27 
28 #ifndef U3D_WF_FOR_MIGR
29 #define CALC_DYN /* DEFAULT - ON */ /* | */
30 #define CALC_GEOM_DIV /* DEFAULT - ON */ /* | */
31 #endif
32 
33 //#define SAVE_HODS /* DEFAULT - ON */ /* | */
34 
35 
36 
37 
38 
39 #ifdef WF_DEBUG
40 #define U3D_RTMOD_BOUND_0 1
41 #define U3D_RTMOD_BOUND_NUM 2
42 #endif
43 
44 
45 
46 
47 
48 
49 //---------------------------------------------------------------------
50 #define U3D_RTMOD_STEP_LEN 10.
51 
52 #define U3D_RTMOD_F_EPS 10. /* For initial (rough) selection of incident cells (during two surface sources comparison) */
53 
54 #define U3D_RTMOD_MIN_ANGLE_STEP 1.e-6 /* Minimal angle step (during direct wave upper part calculation) */
55 
56 #define U3D_RTMOD_INIT_ANGLE_STEP 1.e-3 /* Initial angle step value (during direct wave upper part calculation) */
57 
58 #define U3D_RTMOD_MAX_DIST 50. /* Maximal distance between the last point of the dyn.ray and receiver
59  (to detect the evident error) */
60 
61 #define U3D_RTMOD_LENGTH_EPS 5. /* Final precision of receivers shooting (probably must be equal to the SS cell size) */
62 
63 #define U3D_RTMOD_SS_SHADOW_CELLS_PART 0.05 /* Allowed part of the shadowed cells on surface source */
64 
65 #define U3D_FACE_ACTIVE_ZONES_NUMBER 10 /* Number of zones on surface in current direction (for surface source calculation) */
66 
67 //===============================================================================
68 struct SSPQCell {
69  double st_f;
70  double st_az;
71  double t;
72  double f;
73  double az;
75  double n_f;
76  double n_az;
77 };
78 
79 
80 //===============================================================================
82 enum U3dWaveletType {
83  RICKER,
84  MIN_PHASE,
85  VSP_DATA
86 };
87 
88 
89 //===============================================================================
90 struct U3dWaveInfoCell {
91  double st_f;
92  double st_az;
93  double t;
94  double f;
95  double az;
97  int recId;
98  double ampl;
99 };
100 typedef vector<U3dWaveInfoCell> U3dWaveInfo;
101 
102 
103 
104 typedef vector<U3dPoint> U3dPoints;
105 
106 //===============================================================================
107 struct U3dWaveHodoCell {
109  U3dCodeAr code;
110  U3dPoints rp_ar;
111 };
112 typedef vector<U3dWaveHodoCell> U3dWaveDynHodo;
113 
114 
115 
116 
117 
118 
119 //===============================================================================
120 struct U3dWaveHodItem {
121  int recId;
122  U3dPoint recp;
123  double t;
124  U3dPoints ray_path;
126  U3dWaveHodItem() {}
127 
128  U3dWaveHodItem(int rec_id, U3dPoint p, double time, std::vector<U3dPoint> *rp = NULL) :
129  recId(rec_id),
130  recp(p),
131  t(time)
132  { if (rp) ray_path = *rp; }
133 
134  //U3dWaveHodItem(const U3dWaveHodItem &item) :
135  //recId(item.recId),
136  //recp(item.recp),
137  //t(item.t),
138  //ray_path(item.ray_path)
139  //{}
140 
141  ~U3dWaveHodItem() {}
142 
143 };
144 typedef std::map<int,U3dWaveHodItem> U3dWaveHod;
145 
146 //---------------------------------------------------------------------
147 struct U3dComplexWaveHod {
148  U3dWaveHod hod;
149  U3dCodeAr code;
150 };
151 typedef vector<U3dComplexWaveHod> U3dComplexWaveHodsAr;
152 
153 //---------------------------------------------------------------------
154 struct U3dSPHods {
155  int spId;
156  U3dPoint sp;
157  U3D_WAVE_TYPE dir_w_type;
158  U3dWaveHod direct_hod;
159  U3dComplexWaveHodsAr single_refl_hods;
160  U3dComplexWaveHodsAr single_refl_conv_hods;
161  U3dComplexWaveHodsAr single_trans_conv_hods;
162 };
163 typedef vector<U3dSPHods> U3dSPHodsAr;
164 
165 
166 
167 struct U3dRayPathItem {
168  int spId; /* Shot point identifier */
169  int recId; /* Receiver point identifier */
170  int ray_type; /* Type of ray path (see u3d_raytr_defines.hpp) */
171  int boundId; /* Incident bound identifier */
172  U3dPoint rp; /* Ray path point */
173  int ray_pathId; /* Ray path identifier (unique among all ray paths) */
174  int pointId; /* Sequential index of the point in the ray path. */
175 };
176 typedef vector<U3dRayPathItem> U3dRayPath;
177 
178 
179 //---------------------------------------------------------------------
180 #endif /* u3d_migr_defines.hpp */
181 
Definition: u3d_rtmod_defines.hpp:153
double az
Definition: u3d_rtmod_defines.hpp:72
Definition: u3d_rtmod_defines.hpp:106
Definition: u3d_rtmod_defines.hpp:166
U3dComplexWaveHodsAr single_trans_conv_hods
Definition: u3d_rtmod_defines.hpp:160
double az
Definition: u3d_rtmod_defines.hpp:94
double st_f
Definition: u3d_rtmod_defines.hpp:68
U3dPoints rp_ar
Definition: u3d_rtmod_defines.hpp:109
double st_f
Definition: u3d_rtmod_defines.hpp:90
double t
Definition: u3d_rtmod_defines.hpp:70
Definition: u3d_rtmod_defines.hpp:89
U3dWaveHod hod
Definition: u3d_rtmod_defines.hpp:147
U3dComplexWaveHodsAr single_refl_conv_hods
Definition: u3d_rtmod_defines.hpp:159
Definition: u3d_rtmod_defines.hpp:119
int recId
Definition: u3d_rtmod_defines.hpp:96
U3dWaveHod direct_hod
Definition: u3d_rtmod_defines.hpp:157
Definition: u3d_point.hpp:16
Definition: u3d_rtmod_defines.hpp:67
int recId
Definition: u3d_rtmod_defines.hpp:120
double t
Definition: u3d_rtmod_defines.hpp:92
double t
Definition: u3d_rtmod_defines.hpp:122
double f
Definition: u3d_rtmod_defines.hpp:71
U3dComplexWaveHodsAr single_refl_hods
Definition: u3d_rtmod_defines.hpp:158
U3dPoint recp
Definition: u3d_rtmod_defines.hpp:121
double st_az
Definition: u3d_rtmod_defines.hpp:91
U3dCodeAr code
Definition: u3d_rtmod_defines.hpp:148
double ampl
Definition: u3d_rtmod_defines.hpp:97
U3dPoints ray_path
Definition: u3d_rtmod_defines.hpp:123
U3dCodeAr code
Definition: u3d_rtmod_defines.hpp:108
Definition: u3d_rtmod_defines.hpp:146
U3dWaveInfoCell wi_cell
Definition: u3d_rtmod_defines.hpp:107
double f
Definition: u3d_rtmod_defines.hpp:93
double st_az
Definition: u3d_rtmod_defines.hpp:69