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