This commit is contained in:
张壹 2025-01-16 14:28:42 +08:00
parent e67ec1a28d
commit 0fe61943d7

View File

@ -450,7 +450,7 @@ void gkernel_triangle2d_vz2(gctl::matrix<double> &out_kernel, const gctl::array<
{ {
obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc); obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc);
obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc); obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc);
out_kernel[i][j] = obsg.y*sin(obsp[i].arc) + obsg.x*cos(obsp[i].arc); out_kernel[i][j] = obsg.y*sin(obsp[i].arc) - obsg.x*cos(obsp[i].arc);
} }
} }
} }
@ -478,7 +478,7 @@ void gkernel_triangle2d_vx2(gctl::matrix<double> &out_kernel, const gctl::array<
{ {
obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc); obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc);
obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc); obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc);
out_kernel[i][j] = obsg.y*cos(obsp[i].arc) + obsg.x*sin(obsp[i].arc); out_kernel[i][j] = -1.0*obsg.y*cos(obsp[i].arc) + obsg.x*sin(obsp[i].arc);
} }
} }
} }
@ -509,8 +509,8 @@ void gkernel_triangle2d_vxx2(gctl::matrix<double> &out_kernel, const gctl::array
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_kernel[i][j] = cos(obsp[i].arc)*(t[0][0]*cos(obsp[i].arc) + t[1][0]*sin(obsp[i].arc)) out_kernel[i][j] = sin(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) - t[1][0]*cos(obsp[i].arc))
+ sin(obsp[i].arc)*(t[0][1]*cos(obsp[i].arc) + t[1][1]*sin(obsp[i].arc)); - cos(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) - t[1][1]*cos(obsp[i].arc));
} }
} }
} }
@ -541,8 +541,8 @@ void gkernel_triangle2d_vxz2(gctl::matrix<double> &out_kernel, const gctl::array
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_kernel[i][j] = sin(obsp[i].arc)*(t[0][0]*cos(obsp[i].arc) + t[1][0]*sin(obsp[i].arc)) out_kernel[i][j] = -1.0*cos(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) - t[1][0]*cos(obsp[i].arc))
+ cos(obsp[i].arc)*(t[0][1]*cos(obsp[i].arc) + t[1][1]*sin(obsp[i].arc)); + sin(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) - t[1][1]*cos(obsp[i].arc));
} }
} }
} }
@ -573,8 +573,8 @@ void gkernel_triangle2d_vzx2(gctl::matrix<double> &out_kernel, const gctl::array
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_kernel[i][j] = cos(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) + t[1][0]*cos(obsp[i].arc)) out_kernel[i][j] = sin(obsp[i].arc)*(t[1][0]*sin(obsp[i].arc) - t[0][0]*cos(obsp[i].arc))
+ sin(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) + t[1][1]*cos(obsp[i].arc)); - cos(obsp[i].arc)*(t[1][1]*sin(obsp[i].arc) - t[0][1]*cos(obsp[i].arc));
} }
} }
} }
@ -605,8 +605,8 @@ void gkernel_triangle2d_vzz2(gctl::matrix<double> &out_kernel, const gctl::array
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_kernel[i][j] = sin(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) + t[1][0]*cos(obsp[i].arc)) out_kernel[i][j] = -1.0*cos(obsp[i].arc)*(t[1][0]*sin(obsp[i].arc) - t[0][0]*cos(obsp[i].arc))
+ cos(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) + t[1][1]*cos(obsp[i].arc)); + sin(obsp[i].arc)*(t[1][1]*sin(obsp[i].arc) - t[0][1]*cos(obsp[i].arc));
} }
} }
} }
@ -775,9 +775,9 @@ void gobser_triangle2d_vz2(gctl::array<double> &out_obs, const gctl::array<gctl:
for (i = 0; i < o_size; i++) for (i = 0; i < o_size; i++)
{ {
obsc = obsp[i].p2c(); obsc = obsp[i].p2c();
obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc); obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc); // 沿x轴正方向的重力值
obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc); obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc); // 沿z轴负方向的重力值
out_obs[i] += (obsg.y*sin(obsp[i].arc) + obsg.x*cos(obsp[i].arc))*rho[j]; out_obs[i] += (obsg.y*sin(obsp[i].arc) - obsg.x*cos(obsp[i].arc))*rho[j]; // 沿半径负方向的重力值
} }
} }
return; return;
@ -803,9 +803,9 @@ void gobser_triangle2d_vx2(gctl::array<double> &out_obs, const gctl::array<gctl:
for (i = 0; i < o_size; i++) for (i = 0; i < o_size; i++)
{ {
obsc = obsp[i].p2c(); obsc = obsp[i].p2c();
obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc); obsg.x = gkernel_triangle2d_vx_sig(ele.get(j), &obsc); // 沿x轴正方向的重力值
obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc); obsg.y = gkernel_triangle2d_vz_sig(ele.get(j), &obsc); // 沿z轴负方向的重力值
out_obs[i] += (obsg.y*cos(obsp[i].arc) + obsg.x*sin(obsp[i].arc))*rho[j]; out_obs[i] += (-1.0*obsg.y*cos(obsp[i].arc) + obsg.x*sin(obsp[i].arc))*rho[j]; // 沿弧度负方向的重力值
} }
} }
return; return;
@ -836,8 +836,8 @@ void gobser_triangle2d_vxx2(gctl::array<double> &out_obs, const gctl::array<gctl
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_obs[i] += -1.0*(cos(obsp[i].arc)*(t[0][0]*cos(obsp[i].arc) + t[1][0]*sin(obsp[i].arc)) out_obs[i] += (sin(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) - t[1][0]*cos(obsp[i].arc))
+ sin(obsp[i].arc)*(t[0][1]*cos(obsp[i].arc) + t[1][1]*sin(obsp[i].arc)))*rho[j]; - cos(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) - t[1][1]*cos(obsp[i].arc)))*rho[j];
} }
} }
} }
@ -867,8 +867,8 @@ void gobser_triangle2d_vxz2(gctl::array<double> &out_obs, const gctl::array<gctl
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_obs[i] += (sin(obsp[i].arc)*(t[0][0]*cos(obsp[i].arc) + t[1][0]*sin(obsp[i].arc)) out_obs[i] += (-1.0*cos(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) - t[1][0]*cos(obsp[i].arc))
+ cos(obsp[i].arc)*(t[0][1]*cos(obsp[i].arc) + t[1][1]*sin(obsp[i].arc)))*rho[j]; + sin(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) - t[1][1]*cos(obsp[i].arc)))*rho[j];
} }
} }
} }
@ -898,8 +898,8 @@ void gobser_triangle2d_vzx2(gctl::array<double> &out_obs, const gctl::array<gctl
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_obs[i] += (cos(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) + t[1][0]*cos(obsp[i].arc)) out_obs[i] += (sin(obsp[i].arc)*(t[1][0]*sin(obsp[i].arc) - t[0][0]*cos(obsp[i].arc))
+ sin(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) + t[1][1]*cos(obsp[i].arc)))*rho[j]; - cos(obsp[i].arc)*(t[1][1]*sin(obsp[i].arc) - t[0][1]*cos(obsp[i].arc)))*rho[j];
} }
} }
} }
@ -929,8 +929,8 @@ void gobser_triangle2d_vzz2(gctl::array<double> &out_obs, const gctl::array<gctl
t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc); t[1][1] = gkernel_triangle2d_vzz_sig(ele.get(j), &obsc);
t[0][0] = -1.0*t[1][1]; t[0][0] = -1.0*t[1][1];
t[0][1] = t[1][0]; t[0][1] = t[1][0];
out_obs[i] += -1.0*(sin(obsp[i].arc)*(t[0][0]*sin(obsp[i].arc) + t[1][0]*cos(obsp[i].arc)) out_obs[i] += (-1.0*cos(obsp[i].arc)*(t[1][0]*sin(obsp[i].arc) - t[0][0]*cos(obsp[i].arc))
+ cos(obsp[i].arc)*(t[0][1]*sin(obsp[i].arc) + t[1][1]*cos(obsp[i].arc)))*rho[j]; + sin(obsp[i].arc)*(t[1][1]*sin(obsp[i].arc) - t[0][1]*cos(obsp[i].arc)))*rho[j];
} }
} }
} }