public Vector GetResultAtPoint(Point point, double t)
        {
            IFiniteElement element = getElementForPoint(point);
            Vector         result  = null;

            if (element != null)
            {
                FiniteElementRectangle elementKsiTeta = new FiniteElementRectangle()
                {
                    Node1 = new FiniteElementNode(-1, -1),
                    Node3 = new FiniteElementNode(1, 1)
                };
                Point  pointKsiTeta = ResultHelper.TransformCoordinates(point, element, elementKsiTeta);
                Matrix finiteElementApproximationMatrix = getFiniteElementApproximationMatrix(pointKsiTeta);
                result = GetUByElement(element) * (finiteElementApproximationMatrix * Math.Cos(_frequency * t));
            }
            return(result);
        }
 public void TransformCoordinatesTest()
 {
     Point pointForm = new Point(1,1); // TODO: Initialize to an appropriate value
     FiniteElementRectangle elementFrom = new FiniteElementRectangle()
         {
             Node1 = new FiniteElementNode(1,1),
             Node3 = new FiniteElementNode(1.5,1.5)
         };
     FiniteElementRectangle elementTo = new FiniteElementRectangle()
     {
         Node1 = new FiniteElementNode(-1, -1),
         Node3 = new FiniteElementNode(1, 1)
     }; // TODO: Initialize to an appropriate value
     Point expected = new Point(-1,-1); // TODO: Initialize to an appropriate value
     Point actual;
     actual = ResultHelper.TransformCoordinates(pointForm, elementFrom, elementTo);
     Assert.AreEqual(expected, actual);
 }
Example #3
0
        public void TransformCoordinatesTest()
        {
            Point pointForm = new Point(1, 1); // TODO: Initialize to an appropriate value
            FiniteElementRectangle elementFrom = new FiniteElementRectangle()
            {
                Node1 = new FiniteElementNode(1, 1),
                Node3 = new FiniteElementNode(1.5, 1.5)
            };
            FiniteElementRectangle elementTo = new FiniteElementRectangle()
            {
                Node1 = new FiniteElementNode(-1, -1),
                Node3 = new FiniteElementNode(1, 1)
            };                                  // TODO: Initialize to an appropriate value
            Point expected = new Point(-1, -1); // TODO: Initialize to an appropriate value
            Point actual;

            actual = ResultHelper.TransformCoordinates(pointForm, elementFrom, elementTo);
            Assert.AreEqual(expected, actual);
        }
        public Vector GetResultAtPoint(Point point, double t)
        {
            IFiniteElement element = getElementForPoint(point);
            Vector         result  = null;

            if (element != null)
            {
                int time = (int)(cutTime(t) / _deltaTime);

                FiniteElementRectangle elementKsiTeta = new FiniteElementRectangle()
                {
                    Node1 = new FiniteElementNode(-1, -1),
                    Node3 = new FiniteElementNode(1, 1)
                };
                Point  pointKsiTeta = ResultHelper.TransformCoordinates(point, element, elementKsiTeta);
                Matrix finiteElementApproximationMatrix = getFiniteElementApproximationMatrix(pointKsiTeta);
                result = GetUByElement(element, U[time]) * finiteElementApproximationMatrix;
            }
            return(result);
        }
Example #5
0
        private void GenerateFiniteElements(int LElements, int HElements)
        {
            Elements.Clear();

            int LNodes = LElements + 1;
            int finiteElementsCount = Nodes.Count - LNodes;

            for (int i = 0; i < finiteElementsCount; i++)
            {
                if ((i + 1) % LNodes != 0)
                {
                    FiniteElementRectangle element = new FiniteElementRectangle();
                    element.Node4 = Nodes[i];
                    element.Node3 = Nodes[i + 1];
                    element.Node1 = Nodes[i + LNodes];
                    element.Node2 = Nodes[i + LNodes + 1];

                    Elements.Add(element);
                }
            }
        }
        private Shape ConvertFiniteElementToShape(FiniteElementRectangle fe)
        {
            Rectangle rectangle = new Rectangle(fe.Node1.Point.X, fe.Node1.Point.Y, fe.Node3.Point.Y - fe.Node1.Point.Y, fe.Node3.Point.X - fe.Node1.Point.X);

            return(rectangle);
        }