29 double r_plus, r2_plus, r3_plus, r_minus, r2_minus, r3_minus, np_Pp, nm_Pm,
30 Aij, AijAij, n_plus[3], n_minus[3], np_Sp[3], nm_Sm[3];
32 r2_plus = (x -
par_b) * (x -
par_b) + y * y + z * z;
33 r2_minus = (x +
par_b) * (x +
par_b) + y * y + z * z;
34 r_plus = sqrt (r2_plus);
35 r_minus = sqrt (r2_minus);
36 r3_plus = r_plus * r2_plus;
37 r3_minus = r_minus * r2_minus;
39 n_plus[0] = (x -
par_b) / r_plus;
40 n_minus[0] = (x +
par_b) / r_minus;
41 n_plus[1] = y / r_plus;
42 n_minus[1] = y / r_minus;
43 n_plus[2] = z / r_plus;
44 n_minus[2] = z / r_minus;
49 for (i = 0; i < 3; i++)
62 for (i = 0; i < 3; i++)
64 for (j = 0; j < 3; j++)
68 + np_Pp * n_plus[i] * n_plus[j]) / r2_plus
70 + nm_Pm * n_minus[i] * n_minus[j]) / r2_minus
71 - 3.0 * (np_Sp[i] * n_plus[j] + np_Sp[j] * n_plus[i]) / r3_plus
72 - 3.0 * (nm_Sm[i] * n_minus[j] + nm_Sm[j] * n_minus[i]) / r3_minus;
74 Aij -= +1.5 * (np_Pp / r2_plus + nm_Pm / r2_minus);
87 double r_plus, r2_plus, r3_plus, r_minus, r2_minus, r3_minus, np_Pp, nm_Pm,
88 n_plus[3], n_minus[3], np_Sp[3], nm_Sm[3];
91 r2_plus = (x -
par_b) * (x -
par_b) + y * y + z * z;
92 r2_minus = (x +
par_b) * (x +
par_b) + y * y + z * z;
93 r2_plus = sqrt (r2_plus*r2_plus + TP4);
94 r2_minus = sqrt (r2_minus*r2_minus + TP4);
101 r_plus = sqrt (r2_plus);
102 r_minus = sqrt (r2_minus);
103 r3_plus = r_plus * r2_plus;
104 r3_minus = r_minus * r2_minus;
106 n_plus[0] = (x -
par_b) / r_plus;
107 n_minus[0] = (x +
par_b) / r_minus;
108 n_plus[1] = y / r_plus;
109 n_minus[1] = y / r_minus;
110 n_plus[2] = z / r_plus;
111 n_minus[2] = z / r_minus;
116 for (i = 0; i < 3; i++)
128 for (i = 0; i < 3; i++)
130 for (j = 0; j < 3; j++)
134 + np_Pp * n_plus[i] * n_plus[j]) / r2_plus
136 + nm_Pm * n_minus[i] * n_minus[j]) / r2_minus
137 - 3.0 * (np_Sp[i] * n_plus[j] + np_Sp[j] * n_plus[i]) / r3_plus
138 - 3.0 * (nm_Sm[i] * n_minus[j] + nm_Sm[j] * n_minus[i]) / r3_minus;
142 Aij[0][0] -= +1.5 * (np_Pp / r2_plus + nm_Pm / r2_minus);
143 Aij[1][1] -= +1.5 * (np_Pp / r2_plus + nm_Pm / r2_minus);
144 Aij[2][2] -= +1.5 * (np_Pp / r2_plus + nm_Pm / r2_minus);
void NonLinEquations(double rho_adm, double A, double B, double X, double R, double x, double r, double phi, double y, double z, derivs U, double *values)
void LinEquations(double A, double B, double X, double R, double x, double r, double phi, double y, double z, derivs dU, derivs U, double *values)