Exemple #1
0
        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);
        }
Exemple #2
0
        public static double Q(Point3D x, Point3D y)
        {
            const double Lamda = 1;
            double       r     = x.Dist(y);

            return(1 / (4 * Math.PI * Lamda * r));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        public static double Q3(Point3D x, Point3D y)
        {
            double r = x.Dist(y);

            return(-(x.X3 - y.X3) / (4 * Math.PI * r * r * r));
        }
Exemple #7
0
        public double U3(Point3D x, Point3D y)
        {
            double r = x.Dist(y);

            return(mult * (1 / (parameters.Sigma3 * r)));
        }
Exemple #8
0
        public double U1(Point3D x, Point3D y)
        {
            double r = x.Dist(y);

            return(mult * (1 / r + 1 / RMirrored(x, y)) * 1 / parameters.Sigma1);
        }