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!!!!"); } }
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."); }