UNIVERS
15.3
UNIVERS base processing software API
|
#include <optimize1d.hpp>
Classes | |
struct | IntData |
struct | OptType |
Public Member Functions | |
Optimize1d (IKP1dModel *mod, IKP1dData *data) | |
virtual | ~Optimize1d () |
void | inverseProblem (int IterNum) |
void | directProblem () |
void | setAnizLim (double lim) |
void | setOptimType (int type) |
void | setDipArea (double min, double max) |
void | initData () |
IKP1dData * | getHodsData () |
IKP1dModel * | getCurrentModel () |
double | getCurDerVal () |
int | getCurIterVal () |
void | stopOptim () |
void | set_dip_az (double dip, double az) |
Static Public Member Functions | |
static void | calcPolylineHodVels (IKP1dHod *hod, IKP1dModel *mod, IKP1dWaveType wt, double maxVelocity) |
Protected Types | |
typedef double | CMatrix [3][3] |
Protected Member Functions | |
virtual void | setProgressValue (int val) |
void | init_data () |
void | remove_idata () |
double | calc_f () |
double | calc_derivatives () |
void | trans_os (IKP1dDataLayer *lay, CMatrix &m) |
void | make_trans_matrix (double dip, double az, CMatrix &m1, CMatrix &m2) |
void | set_lr_ls (int n) |
void | q_step (int n, double *q0p, double *q1p, double alf, double k_lim) |
void | fix_slownes_vel_ranges (int n, double &q0) |
void | v2q () |
void | q2v () |
Protected Attributes | |
struct Optimize1d::IntData | iData |
IKP1dModel * | m_mod |
IKP1dData * | m_data |
double | m_aniz_lim |
int | m_opt_type |
float | m_min_sin |
bool | m_optim_continue |
double | cur_der_val |
int | cur_iter_val |
double | m_min_sin_fi |
bool | m_compute_dip |
double | m_min_dip_val |
double | m_max_dip_val |
Optimization for 1D velocity model using several VSP hodographs. This object provides iterative inverse kinematic problem feature for refining velocity model parameters such as velocities and anizotropies of presure and shear waves.
|
protected |
Matrix for coordinates conversion
Optimize1d::Optimize1d | ( | IKP1dModel * | mod, |
IKP1dData * | data | ||
) |
Construct optimize object for provided velocity model and hodographs.
|
virtual |
Destructy object
|
protected |
Calculate derivatives for provided velocity model and hodographs for current optimization type.
|
protected |
Calculate derivative function for provided velocity model and hodographs
|
static |
Calculate layer velocities using polyline hodograph approximation. Maximal velocity value is provided.
void Optimize1d::directProblem | ( | ) |
Calculate model hodograph for provided velocity model with observation system from source hodograph
|
protected |
Fix slownes ranges from ranges of velocity of n-th layer of model
|
inline |
Return current derivation value
|
inline |
Return current iteration value
|
inline |
Get current velocity model
|
inline |
Get current hodographs data
|
protected |
Initialize source data
void Optimize1d::initData | ( | ) |
Initialize internal data for calculations
void Optimize1d::inverseProblem | ( | int | IterNum | ) |
Solve inverse kinematic problem for current velocity model with array of source hodographs. Number of iterations is provided.
Prepare conversion matrix from local to global coordinate system and inverse one
|
protected |
Convert slowness to velocity
|
protected |
Make a step in slowness space
|
protected |
Remove internal data
void Optimize1d::set_dip_az | ( | double | dip, |
double | az | ||
) |
Set provided dip and azimuth for internal ikp data
|
protected |
Calculate horizontal distancies for receivers and observers with current velocity model
void Optimize1d::setAnizLim | ( | double | lim | ) |
Set anizotropy coefficients limits in percentage. Lim will be zero if negative value is provided.
void Optimize1d::setDipArea | ( | double | min, |
double | max | ||
) |
Set dip area in degrees (-90 <= dip <= 90)
void Optimize1d::setOptimType | ( | int | type | ) |
Set type of optimization, see OptType mask
|
inlineprotectedvirtual |
Set value for progress bar if it is defined in any derived class
Nothing to do
|
inline |
Terminate current optimization process using continue optimization flag
|
protected |
Transform observation system coordinate
|
protected |
Convert velocity to slowless
|
protected |
Current derivation value
|
protected |
Current number of iteration
|
protected |
Anizotropy coefficients limit in percentage
|
protected |
Compute or not model dip, false by default
|
protected |
Hodographs data
|
protected |
Minimal and maximal dip values in rad (-PI/2 <= dip <= PI/2)
|
protected |
Monimal sin value for angle when transformation of observation system is provided
|
protected |
Minimal sin of angle when observation system should be converted
|
protected |
Velocity model
|
protected |
Type of optimization
|
protected |
True if optimization process may continue