This commit is contained in:
张壹 2025-01-08 11:33:18 +08:00
parent dcf18f3681
commit cd5b6f26fe
3 changed files with 93 additions and 93 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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;