4.1 编写主程序
新建控制台程序,命名为 Main,添加对 Business.dll 的引用,新建类,命名为 ClassPrint,贴入:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Business; namespace Main { class ClassPrint { string StrBarsPath; string StrNodesPath; //取得、构造初始文本路径 public void GetInitPath() { Console.WriteLine("Please press down the path of Bars Information:"); Console.Write(Environment.CurrentDirectory + "/"); StrBarsPath = Environment.CurrentDirectory + "/" + Console.ReadLine(); Console.WriteLine("Please press down the path of Nodes Information:"); Console.Write(Environment.CurrentDirectory + "/"); StrNodesPath = Environment.CurrentDirectory + "/" + Console.ReadLine(); } public void PrintEquation() { //赋初值 ClassGetBasicInfo c = new ClassGetBasicInfo(); c.Initialize(StrBarsPath, StrNodesPath); //取得总刚度矩阵,总荷载列阵,总边界条件 ClassCalculation cc = new ClassCalculation(); cc.GetAll(); //打印有限元法基本方程 for (int i = 0; i < ClassBasicInfo.TatalRestraint.GetLength(0); i++) { for (int j = 0; j < ClassBasicInfo.TatalRestraint.GetLength(0); j++) { Console.Write(ClassBasicInfo.TatalStiffnessMatrix[i, j].ToString() + " "); } Console.Write(ClassBasicInfo.TatalRestraint[i].ToString() + " "); Console.Write(ClassBasicInfo.TatalLoads[i].ToString() + "\n"); } } public void PrintSolution() { //引入边界条件,求得并整合总位移列阵 ClassBoundaryIn ccc = new ClassBoundaryIn(); ccc.GetAll(); //打印总位移列阵 for (int i = 0; i < ClassBasicInfo.TatalDisplacement.GetLength(0); i++) { Console.WriteLine(ClassBasicInfo.TatalDisplacement[i].ToString() + " " + ClassBasicInfo.TatalLoads[i].ToString()); } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Business; namespace Main { class Program { static void Main(string[] args) { ClassPrint c = new ClassPrint(); Console.WriteLine(); c.GetInitPath(); c.PrintEquation(); Console.WriteLine(); c.PrintSolution(); Console.WriteLine(); Console.ReadLine(); } } }
键入 bars.txt ,显示
键入 nodes.txt,显示:
下面一块左列为总位移列阵,右列为总荷载列阵,分别代表节点 x、y 两方向的位移、荷载。
4.3 解决方案一览