UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Vel2dModel Class Reference
Inheritance diagram for Vel2dModel:
Vel2dModelLDB

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)
 
BoundSplitBounds (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
 
Grid2dpGrid
 
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
 

Constructor & Destructor Documentation

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.

Member Function Documentation

virtual bool Vel2dModel::AddBound ( double *  x,
double *  z,
bool *  flag,
int  p_num,
double  rc = -1,
double  sp = -1 
)
virtual

Add bound to the model

void Vel2dModel::AddGridPtr ( Grid2d gridPtr)

Add grid pointer to model

virtual void Vel2dModel::AddPBValue ( int  n,
double  val 
)
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)

bool Vel2dModel::CombineBounds ( Bound top_b,
Bound bot_b 
)

Combine two lateral bounds together

int Vel2dModel::DefineBody ( double  x,
double  z 
)

Definition of body number by point

void Vel2dModel::DefineBoundPos ( )
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)

int Vel2dModel::getApproxType ( )
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

double Vel2dModel::GetModelAz ( )
inline

increases progress bar value

void Vel2dModel::GetModelXY ( double &  x,
double &  y 
)
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

bool Vel2dModel::PrepareModel ( )
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 bool Vel2dModel::RemoveBound ( int  boundN)
virtual

Remove bound from model

virtual void Vel2dModel::SetPBComment ( int  n,
const char *  str 
)
inlinevirtual

sets the limits of progress bar values

virtual void Vel2dModel::SetPBValue ( int  n,
double  val 
)
inlinevirtual

sets the comment of progress bar

Bound* Vel2dModel::SplitBounds ( Bound bound,
double  z 
)

Split lateral bound on the level z

void Vel2dModel::TestModelEntity ( )

Perform model bodies and bounds information (debug)

Member Data Documentation

BodiesAr Vel2dModel::Bodies

Body-objects array

BoundsAr Vel2dModel::Bounds

Bound-objects array

int Vel2dModel::m_approx_type
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


The documentation for this class was generated from the following file: