public static double K(Point3D a, Point3D b, Point3D m, Point3D n) { double res = 2 * Math.PI; res /= (1 / a.Dist(m) - 1 / a.Dist(n) - 1 / b.Dist(m) + 1 / b.Dist(n)); return(res); }
public static double Q(Point3D x, Point3D y) { const double Lamda = 1; double r = x.Dist(y); return(1 / (4 * Math.PI * Lamda * r)); }
public static double F3SemiSpace(Point3D x, Point3D y) { double r = x.Dist(y); var r3 = r * r * r; var d = mult * ((x.X3 - y.X3) / r3 + (x.X3 + y.X3) / RMirrorCube(x, y)); return(d); }
private static double FPart(Point3D x, Point3D y) { double r = x.Dist(y); var r3 = r * r * r; var totalR = 1 / r3 + 1 / RMirrorCube(x, y); return(mult * totalR); }
private string OutputBetweenPoints(Point3D a, Point3D b) { var sb = new StringBuilder(); double step = a.Dist(b) / (N + 1); Point3D m = new Point3D(a); Point3D n = new Point3D(a); m.ShiftToB(b, step); n.ShiftToB(b, 2 * step); for (int i = 0; i < N; i++) { sb.AppendLine(m.X1 + " " + Math.Abs(Tr(m, n))); m.ShiftToB(b, step); n.ShiftToB(b, step); } return(sb.ToString()); }
public static double Q3(Point3D x, Point3D y) { double r = x.Dist(y); return(-(x.X3 - y.X3) / (4 * Math.PI * r * r * r)); }
public double U3(Point3D x, Point3D y) { double r = x.Dist(y); return(mult * (1 / (parameters.Sigma3 * r))); }
public double U1(Point3D x, Point3D y) { double r = x.Dist(y); return(mult * (1 / r + 1 / RMirrored(x, y)) * 1 / parameters.Sigma1); }