Esempio n. 1
0
        private BoundaryElement2DFirstOrder GetElementPlata(Point3D start)
        {
            var firstPoint3D  = start + new Point3D(h1, 0, 0);
            var secondPoint3D = start + new Point3D(h1, 0, -h2);
            var thirdPoint3D  = start + new Point3D(0, 0, -h2);
            var center        = start + new Point3D(h1 / 2, 0, -h2 / 2);
            var element       = new BoundaryElement2DFirstOrder(
                start, firstPoint3D, secondPoint3D, thirdPoint3D, center, null);

            return(element);
        }
Esempio n. 2
0
        private BoundaryElement2DFirstOrder GetElementC(Point3D start, bool isInverted)
        {
            var firstPoint3D  = start + new Point3D(h1, 0, 0);
            var secondPoint3D = start + new Point3D(h1, h2, 0);
            var thirdPoint3D  = start + new Point3D(0, h2, 0);
            var center        = start + new Point3D(h1 / 2, h2 / 2, 0);
            var normal        = new Point3D(0, 0, 1);

            if (isInverted)
            {
                normal *= -1;
            }
            var element = new BoundaryElement2DFirstOrder(
                start, firstPoint3D, secondPoint3D, thirdPoint3D, center, normal);

            return(element);
        }
Esempio n. 3
0
        public void IntegrateTest()
        {
            double a      = 5;
            int    n      = 2;
            var    target = new Integrator <Point3D>(n);
            BoundaryElement2DFirstOrder elem = new BoundaryElement2DFirstOrder(
                new Point3D(),
                new Point3D(0, 0, a),
                new Point3D(0, a, a),
                new Point3D(0, a, 0),
                new Point3D(0, a / 2, a / 2));
            Point3D eta = new Point3D();
            Func <Point3D, Point3D, double> f = (p1, p2) => 1;
            double expected = a * a;
            double actual;

            actual = target.Integrate(elem, eta, f);
            Assert.AreEqual(expected, actual);
        }