|  | UNIVERS
    15.3
    UNIVERS base processing software API | 
 
  
 | Public Member Functions | |
| Vel2dModel (double *x, double *z, double *ang, double *vp, double *vs, double *pkz, double *skz, double *den, double *an_kp, double *an_ks, double *R, int n, double xMin, double xMax, double zMin, double zMax, double mod_x, double mod_y, double mod_az, int approx_type=0, double grid_cell_size=RT_GRIDSIZE) | |
| Vel2dModel (BodyInfoAr &bodyInfo, double xMin, double xMax, double zMin, double zMax, double mod_x, double mod_y, double mod_az, int approx_type=0) | |
| Vel2dModel (Vel2dModel *) | |
| int | getApproxType () | 
| void | AddGridPtr (Grid2d *gridPtr) | 
| void | CheckModelStatus () | 
| int | DefineBody (double x, double z) | 
| int | ExactDefineBody (double x, double z) | 
| int | ExactDefineBound (double x, double z, double eps=DEFINE_BOUND_EPS, bool cry=true) | 
| int | GetBoundNum (double x, double z) | 
| double | GetVel (double x, double z, WAVE_TYPE vPS, int bodyNum=-1) | 
| double | GetVel (double x, double z, WAVE_TYPE vPS, double angle, int bodyNum=-1) | 
| void | GetVelGr (double x, double z, double &vk, double &vka, WAVE_TYPE wt) | 
| double | GetVelMax (WAVE_TYPE wt) | 
| double | AnyBound (int bNum, double x, bool &flag, double z=-1) | 
| bool | GetParams (double x, double z, double &vP, double &vS, double &den, double &anKP, double &anKS, double &R) | 
| bool | GetParams (double x, double z, double &vP, double &vS, double &den) | 
| bool | GetParams2 (double x, double z, double &vPx, double &vPz, double &vSx, double &vSz, double &den, double &R) | 
| bool | BoundInt (int bNum, double x1, double z1, double x2, double z2, double &ix, double &iz, double &iAngle, double &curvity, bool ANY=false) | 
| bool | IsOuterBound (int bNum) | 
| int | GetSegNum (int bn, int n) | 
| int | GetSegNum (int bn, double x, double z) | 
| bool | GetLegitimValues (int bn, bool st_end, double &zmin, double &zmax) | 
| void | RebuildModel (int bn, double *x, double *z, bool *flag, int num, double rc=-1, double sp=-1, bool *im_flag=NULL) | 
| void | GenerateGrid (double step=-1) | 
| void | RegenerateGrid (double xmn, double zmn, double xmx, double zmx) | 
| double | GetGridCellSize () | 
| void | AddWellInfo (ObservSys *os) | 
| bool | GetMod1dFlag () | 
| bool | IsInsideOfModelArea (double x, double z) | 
| void | CleanOS () | 
| void | SetModelXYAZ (double m_x, double m_y, double m_az) | 
| void | GetModelXYAZ (double &m_x, double &m_y, double &m_az) | 
| virtual bool | RemoveBound (int boundN) | 
| virtual bool | AddBound (double *x, double *z, bool *flag, int p_num, double rc=-1, double sp=-1) | 
| bool | CombineBounds (Bound *top_b, Bound *bot_b) | 
| Bound * | SplitBounds (Bound *bound, double z) | 
| void | TestModelEntity () | 
| bool | checkInside (double x, double z) | 
| bool | belongPerimeter (double x, double z) | 
| virtual void | SetPBLimits (int n, double lmin, double lmax) | 
| virtual void | SetPBComment (int n, const char *str) | 
| virtual void | SetPBValue (int n, double val) | 
| virtual void | AddPBValue (int n, double val) | 
| double | GetModelAz () | 
| void | GetModelXY (double &x, double &y) | 
| bool | LineInt (int bNum, double p, double coord1, double coord2, bool finiteFlag, bool xzFlag, double &result) | 
| bool | ExportToTextFiles (const char *files_path) | 
| Public Attributes | |
| BodiesAr | Bodies | 
| BoundsAr | Bounds | 
| char | modelName [16] | 
| bool | ready | 
| double | xMin | 
| double | xMax | 
| double | zMin | 
| double | zMax | 
| Grid2d * | pGrid | 
| bool | grid_defined | 
| Protected Member Functions | |
| bool | PrepareModel () | 
| void | DefineBoundPos () | 
| bool | TestLine (int bNum, double p, double coord1, double coord2, bool finiteFlag, bool xzFlag) | 
| void | RebuildOuterBound (int bn, double x0, double z0, double x1, double z1, bool st_end) | 
| void | BoundsSegmentation () | 
| Protected Attributes | |
| bool | Model1dFlag | 
| int | m_approx_type | 
| double | modelAZ | 
| double | modelX | 
| double | modelY | 
| Vel2dModel::Vel2dModel | ( | double * | x, | 
| double * | z, | ||
| double * | ang, | ||
| double * | vp, | ||
| double * | vs, | ||
| double * | pkz, | ||
| double * | skz, | ||
| double * | den, | ||
| double * | an_kp, | ||
| double * | an_ks, | ||
| double * | R, | ||
| int | n, | ||
| double | xMin, | ||
| double | xMax, | ||
| double | zMin, | ||
| double | zMax, | ||
| double | mod_x, | ||
| double | mod_y, | ||
| double | mod_az, | ||
| int | approx_type = 0, | ||
| double | grid_cell_size = RT_GRIDSIZE | ||
| ) | 
Import simple 1d model to Vel2dModel. Default boundary approximation type is ParSpline.
| Vel2dModel::Vel2dModel | ( | BodyInfoAr & | bodyInfo, | 
| double | xMin, | ||
| double | xMax, | ||
| double | zMin, | ||
| double | zMax, | ||
| double | mod_x, | ||
| double | mod_y, | ||
| double | mod_az, | ||
| int | approx_type = 0 | ||
| ) | 
Import layered 2d model to Vel2dModel. Default boundary approximation type is ParSpline.
| 
 | virtual | 
Add bound to the model
| void Vel2dModel::AddGridPtr | ( | Grid2d * | gridPtr | ) | 
Add grid pointer to model
| 
 | inlinevirtual | 
sets the progress bar value
| double Vel2dModel::AnyBound | ( | int | bNum, | 
| double | x, | ||
| bool & | flag, | ||
| double | z = -1 | ||
| ) | 
defines any bound of the body as function f(x)
| bool Vel2dModel::BoundInt | ( | int | bNum, | 
| double | x1, | ||
| double | z1, | ||
| double | x2, | ||
| double | z2, | ||
| double & | ix, | ||
| double & | iz, | ||
| double & | iAngle, | ||
| double & | curvity, | ||
| bool | ANY = false | ||
| ) | 
the main procedure of ray-bounds intersection (bounds localization grid is necessary)
| int Vel2dModel::DefineBody | ( | double | x, | 
| double | z | ||
| ) | 
Definition of body number by point
| 
 | protected | 
bodies bounds location definition
| int Vel2dModel::ExactDefineBody | ( | double | x, | 
| double | z | ||
| ) | 
if the point is inside the body - function returns number of this body; if the point belongs to the bound (any) - function returns (-1)
| int Vel2dModel::ExactDefineBound | ( | double | x, | 
| double | z, | ||
| double | eps = DEFINE_BOUND_EPS, | ||
| bool | cry = true | ||
| ) | 
if the point belongs to the bound - function returns number of this bound; if the point is inside the body - function returns (-1)
| bool Vel2dModel::ExportToTextFiles | ( | const char * | files_path | ) | 
Export model to text files (yet only for GE)
| 
 | inline | 
Get type of boundaries approximation. 0-ParSplines, 1-BaseSplines.
| bool Vel2dModel::GetLegitimValues | ( | int | bn, | 
| bool | st_end, | ||
| double & | zmin, | ||
| double & | zmax | ||
| ) | 
returns Z-coordinate variation for the current bound
| 
 | inline | 
increases progress bar value
| 
 | inline | 
returns modelAz value (depth section azimuth)
| bool Vel2dModel::GetParams | ( | double | x, | 
| double | z, | ||
| double & | vP, | ||
| double & | vS, | ||
| double & | den, | ||
| double & | anKP, | ||
| double & | anKS, | ||
| double & | R | ||
| ) | 
returns values of pressure- and shear-wave velocities, and density in the point (x,z)
| double Vel2dModel::GetVel | ( | double | x, | 
| double | z, | ||
| WAVE_TYPE | vPS, | ||
| int | bodyNum = -1 | ||
| ) | 
returns wave velocity in the point (x,z)
| void Vel2dModel::GetVelGr | ( | double | x, | 
| double | z, | ||
| double & | vk, | ||
| double & | vka, | ||
| WAVE_TYPE | wt | ||
| ) | 
returns wave velocity gradient value and direction in the point (x,z)
| bool Vel2dModel::IsOuterBound | ( | int | bNum | ) | 
returns true, if the bound #bNum is model-area bound
| bool Vel2dModel::LineInt | ( | int | bNum, | 
| double | p, | ||
| double | coord1, | ||
| double | coord2, | ||
| bool | finiteFlag, | ||
| bool | xzFlag, | ||
| double & | result | ||
| ) | 
returns depth section point of origin in global coordinates
| 
 | protected | 
prepares model for working
| void Vel2dModel::RebuildModel | ( | int | bn, | 
| double * | x, | ||
| double * | z, | ||
| bool * | flag, | ||
| int | num, | ||
| double | rc = -1, | ||
| double | sp = -1, | ||
| bool * | im_flag = NULL | ||
| ) | 
model reconstruction after inner bound changing (bound reinterpolation, reconstruction of lateral bounds in the case of bound's begin/end points changing, grid recalculation in the current area)
| 
 | virtual | 
Remove bound from model
| 
 | inlinevirtual | 
sets the limits of progress bar values
| 
 | inlinevirtual | 
sets the comment of progress bar
| void Vel2dModel::TestModelEntity | ( | ) | 
Perform model bodies and bounds information (debug)
| BodiesAr Vel2dModel::Bodies | 
Body-objects array
| BoundsAr Vel2dModel::Bounds | 
Bound-objects array
| 
 | protected | 
Type of boundaries approximation, 0-ParSplines , 1-BaseSplines
| Grid2d* Vel2dModel::pGrid | 
pointer to the grid object
| bool Vel2dModel::ready | 
flag of model state (TRUE - model is ready to work)
| double Vel2dModel::xMin | 
model area coordinates limits
 1.8.5
 1.8.5