3 #ifndef __optimize1d_hpp
4 #define __optimize1d_hpp
6 #include "ikp1ddata.hpp"
7 #include "ikp1dmod.hpp"
14 #define Fortran(x) x##_
17 void Fortran(tmell)(
double*,
double*,
double*,
int*,
int*,
int*,
18 double*,
double*,
double*,
int*,
double*,
int*,
19 double*,
double*,
int*,
int*,
double*);
21 void Fortran(gradtu)(
double*,
double*,
double*,
int*,
int*,
int*,
22 double*,
double*,
double*,
int*,
23 double*,
double*,
double*,
double*);
25 void Fortran(ldikp)(
double*,
double*,
double*,
double*,
double*,
26 int*,
int*,
double*,
double*,
double*,
double*,
double*,
double*,
27 double*,
double*,
double*,
double*,
double*,
double*,
double*,
double*,
47 static const int VP = 1;
48 static const int KP = 2;
49 static const int DIP = 4;
107 IKP1dWaveType wt,
double maxVelocity);
127 double *q0p, *q0s, *q1p, *q1s;
133 std::vector<int*>
Lr, Ls;
135 std::vector<double*>
L0;
232 void q_step(
int n,
double *q0p,
double *q1p,
double alf,
double k_lim);
void setOptimType(int type)
double * hr
Definition: optimize1d.hpp:149
void setDipArea(double min, double max)
void set_dip_az(double dip, double az)
void stopOptim()
Definition: optimize1d.hpp:101
double calc_derivatives()
void inverseProblem(int IterNum)
bool m_optim_continue
Definition: optimize1d.hpp:187
double * dFdqp0
Definition: optimize1d.hpp:153
Definition: optimize1d.hpp:46
void fix_slownes_vel_ranges(int n, double &q0)
IKP1dData * m_data
Definition: optimize1d.hpp:171
void setAnizLim(double lim)
Definition: ikp1dmod.hpp:58
int m_opt_type
Definition: optimize1d.hpp:180
Definition: ikp1ddata.hpp:21
virtual void setProgressValue(int val)
Definition: optimize1d.hpp:205
float m_min_sin
Definition: optimize1d.hpp:184
IKP1dData * getHodsData()
Definition: optimize1d.hpp:82
int N
Definition: optimize1d.hpp:161
int getCurIterVal()
Definition: optimize1d.hpp:96
int * Ln
Definition: optimize1d.hpp:151
Definition: ikp1ddata.hpp:43
double dFdDipFull
Definition: optimize1d.hpp:159
std::vector< double ** > dtdqs1
Definition: optimize1d.hpp:143
Definition: ikp1dhod.hpp:41
double * dFdDip
Definition: optimize1d.hpp:157
void q_step(int n, double *q0p, double *q1p, double alf, double k_lim)
std::vector< double ** > dtdDip
Definition: optimize1d.hpp:145
std::vector< double ** > dtdqs0
Definition: optimize1d.hpp:141
double m_min_sin_fi
Definition: optimize1d.hpp:196
double * ztop
Definition: optimize1d.hpp:147
double cur_der_val
Definition: optimize1d.hpp:190
double m_min_dip_val
Definition: optimize1d.hpp:202
double getCurDerVal()
Definition: optimize1d.hpp:92
void trans_os(IKP1dDataLayer *lay, CMatrix &m)
IKP1dModel * m_mod
Definition: optimize1d.hpp:168
IKP1dData * data
Definition: optimize1d.hpp:163
int cur_iter_val
Definition: optimize1d.hpp:193
Definition: optimize1d.hpp:41
double * q0pcur
Definition: optimize1d.hpp:129
double * dFdqs0
Definition: optimize1d.hpp:155
bool m_compute_dip
Definition: optimize1d.hpp:199
IKP1dModel * getCurrentModel()
Definition: optimize1d.hpp:87
double * q0scur
Definition: optimize1d.hpp:131
std::vector< double ** > dtdqp0
Definition: optimize1d.hpp:137
std::vector< double ** > dtdqp1
Definition: optimize1d.hpp:139
void make_trans_matrix(double dip, double az, CMatrix &m1, CMatrix &m2)
double m_aniz_lim
Definition: optimize1d.hpp:177
Definition: optimize1d.hpp:115
std::vector< double * > L0
Definition: optimize1d.hpp:135
static void calcPolylineHodVels(IKP1dHod *hod, IKP1dModel *mod, IKP1dWaveType wt, double maxVelocity)
double CMatrix[3][3]
Definition: optimize1d.hpp:174
std::vector< int * > Lr
Definition: optimize1d.hpp:133