tmp
This commit is contained in:
parent
dcf18f3681
commit
cd5b6f26fe
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
using namespace gctl::geometry3d;
|
using namespace gctl::geometry3d;
|
||||||
|
|
||||||
void gctl::callink_gravity_para(array<grav_tri_cone> &in_cone, array<gravcone_para> &out_para)
|
void gctl::callink_gravity_para(array<gravcone> &in_cone, array<gravcone_para> &out_para)
|
||||||
{
|
{
|
||||||
point3dc v1, v2, v3, nf;
|
point3dc v1, v2, v3, nf;
|
||||||
|
|
||||||
@ -63,21 +63,21 @@ void gctl::callink_gravity_para(array<grav_tri_cone> &in_cone, array<gravcone_pa
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef void (*gkernel_tri_cone)(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
typedef void (*gkernel_tri_cone)(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gkernel_tricone_pot(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_pot(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
||||||
void gkernel_tricone_vr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
||||||
void gkernel_tricone_vrp(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vrp(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
||||||
void gkernel_tricone_vrt(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vrt(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
||||||
void gkernel_tricone_vrr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vrr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gctl::gkernel(matrix<double> &out_kernel, const array<grav_tri_cone> &ele,
|
void gctl::gkernel(matrix<double> &out_kernel, const array<gravcone> &ele,
|
||||||
const array<point3ds> &ops, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
const array<point3ds> &ops, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
gkernel_tri_cone tricone_kernel;
|
gkernel_tri_cone tricone_kernel;
|
||||||
@ -106,21 +106,21 @@ void gctl::gkernel(matrix<double> &out_kernel, const array<grav_tri_cone> &ele,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
typedef void (*gobser_tri_cone)(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
typedef void (*gobser_tri_cone)(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gobser_tricone_pot(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_pot(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_vr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gctl::gobser(array<double> &out_obs, const array<grav_tri_cone> &ele, const array<point3ds> &ops,
|
void gctl::gobser(array<double> &out_obs, const array<gravcone> &ele, const array<point3ds> &ops,
|
||||||
const array<double> &rho, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
const array<double> &rho, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
gobser_tri_cone tricone_obser;
|
gobser_tri_cone tricone_obser;
|
||||||
@ -149,9 +149,9 @@ void gctl::gobser(array<double> &out_obs, const array<grav_tri_cone> &ele, const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 前置声明
|
// 前置声明
|
||||||
gctl::point3dc gkernel_tricone_v_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3dc &a_op);
|
gctl::point3dc gkernel_tricone_v_sig(const gctl::gravcone &a_ele, const gctl::point3dc &a_op);
|
||||||
|
|
||||||
void gctl::gobser(array<point3dc> &out_obs, const array<grav_tri_cone> &ele, const array<point3dc> &obsp,
|
void gctl::gobser(array<point3dc> &out_obs, const array<gravcone> &ele, const array<point3dc> &obsp,
|
||||||
const array<double> &rho, verbose_type_e verbose)
|
const array<double> &rho, verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -176,13 +176,13 @@ void gctl::gobser(array<point3dc> &out_obs, const array<grav_tri_cone> &ele, con
|
|||||||
|
|
||||||
|
|
||||||
// 以下是具体的实现
|
// 以下是具体的实现
|
||||||
double gkernel_tricone_pot_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_pot_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_vr_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_vr_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_vrp_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_vrp_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_vrt_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_vrt_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_vrr_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_vrr_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op);
|
||||||
|
|
||||||
void gkernel_tricone_pot(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_pot(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -205,7 +205,7 @@ void gkernel_tricone_pot(gctl::matrix<double> &out_kernel, const gctl::array<gct
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gkernel_tricone_vr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -228,7 +228,7 @@ void gkernel_tricone_vr(gctl::matrix<double> &out_kernel, const gctl::array<gctl
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gkernel_tricone_vrp(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vrp(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -251,7 +251,7 @@ void gkernel_tricone_vrp(gctl::matrix<double> &out_kernel, const gctl::array<gct
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gkernel_tricone_vrt(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vrt(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -274,7 +274,7 @@ void gkernel_tricone_vrt(gctl::matrix<double> &out_kernel, const gctl::array<gct
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gkernel_tricone_vrr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gkernel_tricone_vrr(gctl::matrix<double> &out_kernel, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -298,7 +298,7 @@ void gkernel_tricone_vrr(gctl::matrix<double> &out_kernel, const gctl::array<gct
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gobser_tricone_pot(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_pot(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -321,7 +321,7 @@ void gobser_tricone_pot(gctl::array<double> &out_obs, const gctl::array<gctl::gr
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_vr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -344,7 +344,7 @@ void gobser_tricone_vr(gctl::array<double> &out_obs, const gctl::array<gctl::gra
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -367,7 +367,7 @@ void gobser_tricone_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::gr
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -390,7 +390,7 @@ void gobser_tricone_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::gr
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone> &ele,
|
void gobser_tricone_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -416,7 +416,7 @@ void gobser_tricone_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::gr
|
|||||||
|
|
||||||
// 以下是具体的实现
|
// 以下是具体的实现
|
||||||
|
|
||||||
double gkernel_tricone_pot_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_pot_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -468,7 +468,7 @@ double gkernel_tricone_pot_sig(const gctl::grav_tri_cone &a_ele, const gctl::poi
|
|||||||
return -0.5*GCTL_G0*(face_sum - edge_sum);
|
return -0.5*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
gctl::point3dc gkernel_tricone_v_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3dc &a_op)
|
gctl::point3dc gkernel_tricone_v_sig(const gctl::gravcone &a_ele, const gctl::point3dc &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -511,7 +511,7 @@ gctl::point3dc gkernel_tricone_v_sig(const gctl::grav_tri_cone &a_ele, const gct
|
|||||||
return GCTL_G0*(face_sum - edge_sum);
|
return GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_vr_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_vr_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -568,7 +568,7 @@ double gkernel_tricone_vr_sig(const gctl::grav_tri_cone &a_ele, const gctl::poin
|
|||||||
return -1.0*GCTL_G0*(face_sum - edge_sum);
|
return -1.0*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_vrp_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_vrp_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -637,7 +637,7 @@ double gkernel_tricone_vrp_sig(const gctl::grav_tri_cone &a_ele, const gctl::poi
|
|||||||
return 1.0*GCTL_G0*(face_sum - edge_sum);
|
return 1.0*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_vrt_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_vrt_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -706,7 +706,7 @@ double gkernel_tricone_vrt_sig(const gctl::grav_tri_cone &a_ele, const gctl::poi
|
|||||||
return 1.0*GCTL_G0*(face_sum - edge_sum);
|
return 1.0*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_vrr_sig(const gctl::grav_tri_cone &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_vrr_sig(const gctl::gravcone &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
|
@ -39,7 +39,7 @@ namespace gctl
|
|||||||
double edglen[12]; ///< edge lengths of six edges
|
double edglen[12]; ///< edge lengths of six edges
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef type_tricone<gravcone_para> grav_tri_cone; ///< 带gravcone_para属性的三角锥结构体
|
typedef type_tricone<gravcone_para> gravcone; ///< 带gravcone_para属性的三角锥结构体
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 基于球面三角剖分的界面反演所使用的三棱锥对象 参考GJI的文章
|
* @brief 基于球面三角剖分的界面反演所使用的三棱锥对象 参考GJI的文章
|
||||||
@ -58,7 +58,7 @@ namespace gctl
|
|||||||
point3dc n23_rj[3];
|
point3dc n23_rj[3];
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef type_tricone<gravcone_para_gji> grav_tri_cone_gji; ///< 带gravcone_para_gji属性的三角锥结构体
|
typedef type_tricone<gravcone_para_gji> gravcone_gji; ///< 带gravcone_para_gji属性的三角锥结构体
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief calculate the gravity parameters of given element type.
|
* @brief calculate the gravity parameters of given element type.
|
||||||
@ -66,7 +66,7 @@ namespace gctl
|
|||||||
* @param in_tri Input elements
|
* @param in_tri Input elements
|
||||||
* @param out_para The output parameter array
|
* @param out_para The output parameter array
|
||||||
*/
|
*/
|
||||||
void callink_gravity_para(array<grav_tri_cone> &in_cone, array<gravcone_para> &out_para);
|
void callink_gravity_para(array<gravcone> &in_cone, array<gravcone_para> &out_para);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief calculate the gravity parameters of given element type.
|
* @brief calculate the gravity parameters of given element type.
|
||||||
@ -74,7 +74,7 @@ namespace gctl
|
|||||||
* @param in_tri Input elements
|
* @param in_tri Input elements
|
||||||
* @param out_para The output parameter array
|
* @param out_para The output parameter array
|
||||||
*/
|
*/
|
||||||
void callink_gravity_para(array<grav_tri_cone_gji> &in_cone, array<gravcone_para_gji> &out_para);
|
void callink_gravity_para(array<gravcone_gji> &in_cone, array<gravcone_para_gji> &out_para);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 计算球坐标下的三棱锥单元体正演核矩阵
|
* @brief 计算球坐标下的三棱锥单元体正演核矩阵
|
||||||
@ -87,7 +87,7 @@ namespace gctl
|
|||||||
* @param[in] comp_id 待计算的重力场分量 默认为重力值
|
* @param[in] comp_id 待计算的重力场分量 默认为重力值
|
||||||
* @param[in] show_progress 是否在终端显示进度条 默认为真
|
* @param[in] show_progress 是否在终端显示进度条 默认为真
|
||||||
*/
|
*/
|
||||||
void gkernel(matrix<double> &out_kernel, const array<grav_tri_cone> &ele, const array<point3ds> &obsp,
|
void gkernel(matrix<double> &out_kernel, const array<gravcone> &ele, const array<point3ds> &obsp,
|
||||||
gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -102,7 +102,7 @@ namespace gctl
|
|||||||
* @param[in] comp_id 待计算的重力场分量 默认为重力值
|
* @param[in] comp_id 待计算的重力场分量 默认为重力值
|
||||||
* @param[in] verbose 返回信息层级
|
* @param[in] verbose 返回信息层级
|
||||||
*/
|
*/
|
||||||
void gobser(array<double> &out_obs, const array<grav_tri_cone> &ele, const array<point3ds> &obsp,
|
void gobser(array<double> &out_obs, const array<gravcone> &ele, const array<point3ds> &obsp,
|
||||||
const array<double> &rho, gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
const array<double> &rho, gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -114,7 +114,7 @@ namespace gctl
|
|||||||
* @param[in] rho 单元体密度数组,单位为kg/m^3
|
* @param[in] rho 单元体密度数组,单位为kg/m^3
|
||||||
* @param[in] verbose 返回信息层级
|
* @param[in] verbose 返回信息层级
|
||||||
*/
|
*/
|
||||||
void gobser(array<point3dc> &out_obs, const array<grav_tri_cone> &ele, const array<point3dc> &obsp,
|
void gobser(array<point3dc> &out_obs, const array<gravcone> &ele, const array<point3dc> &obsp,
|
||||||
const array<double> &rho, verbose_type_e verbose = FullMsg);
|
const array<double> &rho, verbose_type_e verbose = FullMsg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -129,7 +129,7 @@ namespace gctl
|
|||||||
* @param[in] comp_id 待计算的重力场分量 默认为重力值
|
* @param[in] comp_id 待计算的重力场分量 默认为重力值
|
||||||
* @param[in] verbose 返回信息层级
|
* @param[in] verbose 返回信息层级
|
||||||
*/
|
*/
|
||||||
void gobser(array<double> &out_obs, const array<grav_tri_cone_gji> &ele, const array<point3ds> &obsp,
|
void gobser(array<double> &out_obs, const array<gravcone_gji> &ele, const array<point3ds> &obsp,
|
||||||
const array<double> &rho, gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
const array<double> &rho, gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,7 +144,7 @@ namespace gctl
|
|||||||
* @param[in] comp_id 重力观测值的分量类型 默认为重力值
|
* @param[in] comp_id 重力观测值的分量类型 默认为重力值
|
||||||
* @param[in] verbose 返回信息层级
|
* @param[in] verbose 返回信息层级
|
||||||
*/
|
*/
|
||||||
void gobser_model_gradient(array<double> &out_mGrad, const array<std::vector<grav_tri_cone_gji*> > &vert_neighList,
|
void gobser_model_gradient(array<double> &out_mGrad, const array<std::vector<gravcone_gji*> > &vert_neighList,
|
||||||
const array<double> &obs_diff, const array<point3ds> &obsp, const array<double> &rho,
|
const array<double> &obs_diff, const array<point3ds> &obsp, const array<double> &rho,
|
||||||
const array<vertex3dc> *verts_ptr = nullptr, double ang_limit = -1.0,
|
const array<vertex3dc> *verts_ptr = nullptr, double ang_limit = -1.0,
|
||||||
gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
gravitational_field_type_e comp_id = Vz, verbose_type_e verbose = FullMsg);
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
using namespace gctl::geometry3d;
|
using namespace gctl::geometry3d;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void gctl::grav_tri_cone_gji::initialize_tensors()
|
void gctl::gravcone_gji::initialize_tensors()
|
||||||
{
|
{
|
||||||
point3dc v1, v2, v3, nf, ne;
|
point3dc v1, v2, v3, nf, ne;
|
||||||
point3dc faceVec, faceVec_rj;
|
point3dc faceVec, faceVec_rj;
|
||||||
@ -111,7 +111,7 @@ void gctl::grav_tri_cone_gji::initialize_tensors()
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void gctl::callink_gravity_para(array<grav_tri_cone_gji> &in_cone, array<gravcone_para_gji> &out_para)
|
void gctl::callink_gravity_para(array<gravcone_gji> &in_cone, array<gravcone_para_gji> &out_para)
|
||||||
{
|
{
|
||||||
point3dc v1, v2, v3, ne, nf;
|
point3dc v1, v2, v3, ne, nf;
|
||||||
point3dc faceVec, faceVec_rj;
|
point3dc faceVec, faceVec_rj;
|
||||||
@ -198,34 +198,34 @@ void gctl::callink_gravity_para(array<grav_tri_cone_gji> &in_cone, array<gravcon
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedef void (*gobser_mGrad_tricone)(gctl::array<double> &out_mGrad,
|
typedef void (*gobser_mGrad_tricone)(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose);
|
double ang_limit, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gobser_mGrad_tricone_vr(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vr(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose);
|
double ang_limit, gctl::verbose_type_e verbose);
|
||||||
void gobser_mGrad_tricone_vrp(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vrp(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose);
|
double ang_limit, gctl::verbose_type_e verbose);
|
||||||
void gobser_mGrad_tricone_vrt(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vrt(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose);
|
double ang_limit, gctl::verbose_type_e verbose);
|
||||||
void gobser_mGrad_tricone_vrr(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vrr(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose);
|
double ang_limit, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gctl::gobser_model_gradient(array<double> &out_mGrad,
|
void gctl::gobser_model_gradient(array<double> &out_mGrad,
|
||||||
const array<std::vector<grav_tri_cone_gji*> > &vert_neighList,
|
const array<std::vector<gravcone_gji*> > &vert_neighList,
|
||||||
const array<double> &obs_diff, const array<point3ds> &ops,
|
const array<double> &obs_diff, const array<point3ds> &ops,
|
||||||
const array<double> &rho, const array<vertex3dc> *verts_ptr,
|
const array<double> &rho, const array<vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
double ang_limit, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
||||||
@ -252,31 +252,31 @@ void gctl::gobser_model_gradient(array<double> &out_mGrad,
|
|||||||
return gobser_mGrad(out_mGrad, vert_neighList, obs_diff, ops, rho, verts_ptr, ang_limit, verbose);
|
return gobser_mGrad(out_mGrad, vert_neighList, obs_diff, ops, rho, verts_ptr, ang_limit, verbose);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gobser_mGrad_tricone_vr_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vr_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
||||||
double gobser_mGrad_tricone_vrp_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vrp_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
||||||
double gobser_mGrad_tricone_vrt_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vrt_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
||||||
double gobser_mGrad_tricone_vrr_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vrr_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho);
|
||||||
|
|
||||||
|
|
||||||
typedef void (*gobser_tri_cone_gji)(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
typedef void (*gobser_tri_cone_gji)(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gobser_tricone_gji_pot(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_pot(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_gji_vr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_gji_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_gji_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
void gobser_tricone_gji_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose);
|
||||||
|
|
||||||
void gctl::gobser(array<double> &out_obs, const array<grav_tri_cone_gji> &ele, const array<point3ds> &ops,
|
void gctl::gobser(array<double> &out_obs, const array<gravcone_gji> &ele, const array<point3ds> &ops,
|
||||||
const array<double> &rho, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
const array<double> &rho, gravitational_field_type_e comp_id, verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
gobser_tri_cone_gji tricone_obser;
|
gobser_tri_cone_gji tricone_obser;
|
||||||
@ -303,16 +303,16 @@ void gctl::gobser(array<double> &out_obs, const array<grav_tri_cone_gji> &ele, c
|
|||||||
return tricone_obser(out_obs, ele, ops, rho, verbose);
|
return tricone_obser(out_obs, ele, ops, rho, verbose);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_gji_pot_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_gji_pot_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_gji_vr_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_gji_vr_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_gji_vrp_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_gji_vrp_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_gji_vrt_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_gji_vrt_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op);
|
||||||
double gkernel_tricone_gji_vrr_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op);
|
double gkernel_tricone_gji_vrr_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op);
|
||||||
|
|
||||||
// 以下是具体的实现
|
// 以下是具体的实现
|
||||||
|
|
||||||
void gobser_mGrad_tricone_vr(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vr(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose)
|
double ang_limit, gctl::verbose_type_e verbose)
|
||||||
@ -357,7 +357,7 @@ void gobser_mGrad_tricone_vr(gctl::array<double> &out_mGrad,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void gobser_mGrad_tricone_vrp(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vrp(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose)
|
double ang_limit, gctl::verbose_type_e verbose)
|
||||||
@ -402,7 +402,7 @@ void gobser_mGrad_tricone_vrp(gctl::array<double> &out_mGrad,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void gobser_mGrad_tricone_vrt(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vrt(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose)
|
double ang_limit, gctl::verbose_type_e verbose)
|
||||||
@ -447,7 +447,7 @@ void gobser_mGrad_tricone_vrt(gctl::array<double> &out_mGrad,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void gobser_mGrad_tricone_vrr(gctl::array<double> &out_mGrad,
|
void gobser_mGrad_tricone_vrr(gctl::array<double> &out_mGrad,
|
||||||
const gctl::array<std::vector<gctl::grav_tri_cone_gji*> > &vert_neighList,
|
const gctl::array<std::vector<gctl::gravcone_gji*> > &vert_neighList,
|
||||||
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
const gctl::array<double> &obs_diff, const gctl::array<gctl::point3ds> &ops,
|
||||||
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
const gctl::array<double> &rho, const gctl::array<gctl::vertex3dc> *verts_ptr,
|
||||||
double ang_limit, gctl::verbose_type_e verbose)
|
double ang_limit, gctl::verbose_type_e verbose)
|
||||||
@ -492,7 +492,7 @@ void gobser_mGrad_tricone_vrr(gctl::array<double> &out_mGrad,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gobser_tricone_gji_pot(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_pot(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -515,7 +515,7 @@ void gobser_tricone_gji_pot(gctl::array<double> &out_obs, const gctl::array<gctl
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_gji_vr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -538,7 +538,7 @@ void gobser_tricone_gji_vr(gctl::array<double> &out_obs, const gctl::array<gctl:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_gji_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vrp(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -561,7 +561,7 @@ void gobser_tricone_gji_vrp(gctl::array<double> &out_obs, const gctl::array<gctl
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_gji_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vrt(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -584,7 +584,7 @@ void gobser_tricone_gji_vrt(gctl::array<double> &out_obs, const gctl::array<gctl
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gobser_tricone_gji_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::grav_tri_cone_gji> &ele,
|
void gobser_tricone_gji_vrr(gctl::array<double> &out_obs, const gctl::array<gctl::gravcone_gji> &ele,
|
||||||
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
const gctl::array<gctl::point3ds> &ops, const gctl::array<double> &rho, gctl::verbose_type_e verbose)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
@ -608,7 +608,7 @@ void gobser_tricone_gji_vrr(gctl::array<double> &out_obs, const gctl::array<gctl
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double gobser_mGrad_tricone_vr_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vr_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
||||||
{
|
{
|
||||||
int local_id;
|
int local_id;
|
||||||
@ -624,7 +624,7 @@ double gobser_mGrad_tricone_vr_sig(const std::vector<gctl::grav_tri_cone_gji*> &
|
|||||||
gctl::point3dc R;
|
gctl::point3dc R;
|
||||||
gctl::point3dc face_temp, edge_temp;
|
gctl::point3dc face_temp, edge_temp;
|
||||||
gctl::point3dc re;
|
gctl::point3dc re;
|
||||||
gctl::grav_tri_cone_gji* curr_tri;
|
gctl::gravcone_gji* curr_tri;
|
||||||
gctl::gravcone_para_gji* gp;
|
gctl::gravcone_para_gji* gp;
|
||||||
|
|
||||||
R.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
R.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
||||||
@ -816,7 +816,7 @@ double gobser_mGrad_tricone_vr_sig(const std::vector<gctl::grav_tri_cone_gji*> &
|
|||||||
return point_sum;
|
return point_sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
double gobser_mGrad_tricone_vrp_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vrp_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
||||||
{
|
{
|
||||||
int local_id;
|
int local_id;
|
||||||
@ -831,7 +831,7 @@ double gobser_mGrad_tricone_vrp_sig(const std::vector<gctl::grav_tri_cone_gji*>
|
|||||||
gctl::point3dc r_ijk[3];
|
gctl::point3dc r_ijk[3];
|
||||||
gctl::point3dc R, R_1st;
|
gctl::point3dc R, R_1st;
|
||||||
gctl::point3dc face_temp, edge_temp;
|
gctl::point3dc face_temp, edge_temp;
|
||||||
gctl::grav_tri_cone_gji* curr_tri;
|
gctl::gravcone_gji* curr_tri;
|
||||||
gctl::gravcone_para_gji* gp;
|
gctl::gravcone_para_gji* gp;
|
||||||
|
|
||||||
R_1st.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
R_1st.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
||||||
@ -1007,7 +1007,7 @@ double gobser_mGrad_tricone_vrp_sig(const std::vector<gctl::grav_tri_cone_gji*>
|
|||||||
return point_sum;
|
return point_sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
double gobser_mGrad_tricone_vrt_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vrt_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
||||||
{
|
{
|
||||||
int local_id;
|
int local_id;
|
||||||
@ -1022,7 +1022,7 @@ double gobser_mGrad_tricone_vrt_sig(const std::vector<gctl::grav_tri_cone_gji*>
|
|||||||
gctl::point3dc r_ijk[3];
|
gctl::point3dc r_ijk[3];
|
||||||
gctl::point3dc R, R_1st;
|
gctl::point3dc R, R_1st;
|
||||||
gctl::point3dc face_temp, edge_temp;
|
gctl::point3dc face_temp, edge_temp;
|
||||||
gctl::grav_tri_cone_gji* curr_tri;
|
gctl::gravcone_gji* curr_tri;
|
||||||
gctl::gravcone_para_gji* gp;
|
gctl::gravcone_para_gji* gp;
|
||||||
|
|
||||||
R_1st.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
R_1st.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
||||||
@ -1198,7 +1198,7 @@ double gobser_mGrad_tricone_vrt_sig(const std::vector<gctl::grav_tri_cone_gji*>
|
|||||||
return point_sum;
|
return point_sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
double gobser_mGrad_tricone_vrr_sig(const std::vector<gctl::grav_tri_cone_gji*> &a_list,
|
double gobser_mGrad_tricone_vrr_sig(const std::vector<gctl::gravcone_gji*> &a_list,
|
||||||
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
int vert_id, const gctl::point3ds &a_op, const gctl::array<double> &rho)
|
||||||
{
|
{
|
||||||
int local_id;
|
int local_id;
|
||||||
@ -1213,7 +1213,7 @@ double gobser_mGrad_tricone_vrr_sig(const std::vector<gctl::grav_tri_cone_gji*>
|
|||||||
gctl::point3dc r_ijk[3];
|
gctl::point3dc r_ijk[3];
|
||||||
gctl::point3dc R;
|
gctl::point3dc R;
|
||||||
gctl::point3dc face_temp, edge_temp;
|
gctl::point3dc face_temp, edge_temp;
|
||||||
gctl::grav_tri_cone_gji* curr_tri;
|
gctl::gravcone_gji* curr_tri;
|
||||||
gctl::gravcone_para_gji* gp;
|
gctl::gravcone_para_gji* gp;
|
||||||
|
|
||||||
R.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
R.x = sin((0.5-a_op.lat/180.0)*GCTL_Pi)*cos((2.0+a_op.lon/180.0)*GCTL_Pi);
|
||||||
@ -1388,7 +1388,7 @@ double gobser_mGrad_tricone_vrr_sig(const std::vector<gctl::grav_tri_cone_gji*>
|
|||||||
|
|
||||||
// 以下是具体的实现
|
// 以下是具体的实现
|
||||||
|
|
||||||
double gkernel_tricone_gji_pot_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_gji_pot_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -1439,7 +1439,7 @@ double gkernel_tricone_gji_pot_sig(const gctl::grav_tri_cone_gji &a_ele, const g
|
|||||||
return -0.5e+8*GCTL_G0*(face_sum - edge_sum);
|
return -0.5e+8*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_gji_vr_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_gji_vr_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -1496,7 +1496,7 @@ double gkernel_tricone_gji_vr_sig(const gctl::grav_tri_cone_gji &a_ele, const gc
|
|||||||
return -1.0e+8*GCTL_G0*(face_sum - edge_sum);
|
return -1.0e+8*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_gji_vrp_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_gji_vrp_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -1565,7 +1565,7 @@ double gkernel_tricone_gji_vrp_sig(const gctl::grav_tri_cone_gji &a_ele, const g
|
|||||||
return 1.0e+8*GCTL_G0*(face_sum - edge_sum);
|
return 1.0e+8*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_gji_vrt_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_gji_vrt_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
@ -1634,7 +1634,7 @@ double gkernel_tricone_gji_vrt_sig(const gctl::grav_tri_cone_gji &a_ele, const g
|
|||||||
return 1.0e+8*GCTL_G0*(face_sum - edge_sum);
|
return 1.0e+8*GCTL_G0*(face_sum - edge_sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
double gkernel_tricone_gji_vrr_sig(const gctl::grav_tri_cone_gji &a_ele, const gctl::point3ds &a_op)
|
double gkernel_tricone_gji_vrr_sig(const gctl::gravcone_gji &a_ele, const gctl::point3ds &a_op)
|
||||||
{
|
{
|
||||||
int f,e;
|
int f,e;
|
||||||
double Le,wf;
|
double Le,wf;
|
||||||
|
Loading…
Reference in New Issue
Block a user