Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            Matrix m             = new Matrix(3, 3);
            Vector v             = new Vector(3);
            int    elementNumber = 0;

            try
            {
                elementNumber = int.Parse(textBox1.Text);
                if (checkBox1.Checked)
                {
                    m += PDESolver.GetStiffnessMatrix(model.K, model.D, model.F, domain, elementNumber);
                    v += PDESolver.GetVector(model.K, model.D, model.F, domain, elementNumber);
                }
                if (checkBox2.Checked)
                {
                    m += PDESolver.GetMassMatrix(model.K, model.D, model.F, domain, elementNumber);
                }
                if (checkBox3.Checked)
                {
                    m += PDESolver.GetBoundaryMatrix(model.K, model.D, model.F, domain, elementNumber);
                    v += PDESolver.GetBoundaryVector(model.K, model.D, model.F, domain, elementNumber);
                }

                PrintMatrix(m);
                PrintVector(v);
            }
            catch
            {
                MessageBox.Show("Write correct element number!!!!");
            }
        }
Example #2
0
 private void btnSolve_Click(object sender, EventArgs e)
 {
     u              = PDESolver.Solve(model.K, model.D, model.F, domain);
     textBox1.Text += "Min : " + u.Min() + "\r\n";
     textBox1.Text += "Max : " + u.Max() + "\r\n";
     ResultMode();
 }
        public void SolveTest()
        {
            Matrix k = new Matrix(2, 2);

            k[0, 0] = 4;
            k[0, 1] = 0;
            k[1, 0] = 0;
            k[1, 1] = 3;
            double d = 0;
            double f = 1;

            List <Node> nodes = new List <Node>();

            nodes.Add(new Node(0, 0));
            nodes.Add(new Node(1, 0));
            nodes.Add(new Node(1, 1));
            nodes.Add(new Node(2, 1));
            nodes.Add(new Node(0, 2));
            nodes.Add(new Node(0, 1));

            List <Segment> segments = new List <Segment>();

            segments.Add(new Segment(nodes[0], nodes[1], ElemType.Boundary, 0, 1, 0));
            segments.Add(new Segment(nodes[1], nodes[2], ElemType.Boundary, 1, 2, 1));
            segments.Add(new Segment(nodes[2], nodes[3], ElemType.Boundary, 2, 3, 1));
            segments.Add(new Segment(nodes[3], nodes[4], ElemType.Boundary, 3, 4, 2));
            segments.Add(new Segment(nodes[4], nodes[5], ElemType.Boundary, 4, 5, 3));
            segments.Add(new Segment(nodes[5], nodes[0], ElemType.Boundary, 5, 0, 3));

            List <Triangle> triangles = new List <Triangle>();

            triangles.Add(new Triangle(0, 1, 2));
            triangles.Add(new Triangle(0, 2, 5));
            triangles.Add(new Triangle(5, 2, 3));
            triangles.Add(new Triangle(5, 3, 4));

            Mesh mesh = new Mesh(nodes, triangles, segments);



            Boundary boundary = new Boundary(4);

            boundary.characteristic[0].Condition = BoundaryCondition.Third;
            boundary.characteristic[1].Condition = BoundaryCondition.Third;
            boundary.characteristic[2].Condition = BoundaryCondition.Third;
            boundary.characteristic[3].Condition = BoundaryCondition.First;

            for (int i = 0; i < 4; i++)
            {
                boundary.characteristic[i].Beta  = 1;
                boundary.characteristic[i].Delta = 1;
                boundary.characteristic[i].UC    = 0;
                boundary.characteristic[i].U0    = 100;
            }



            Domain domain   = new Domain(mesh, boundary); // TODO: Initialize to an appropriate value
            Vector expected = null;                       // TODO: Initialize to an appropriate value
            Vector actual;

            actual = PDESolver.Solve(k, d, f, domain);
            Assert.AreEqual(expected, actual);
            //Assert.Inconclusive("Verify the correctness of this test method.");
        }