第二节  桁架结构基本信息录入与保存

此节之后会结合一个算例。结构如图,EA = 300000 kN

杆件编号、节点编号、坐标系:

2.1  文本信息

bars.txt

1,1,3,300000
2,2,3,300000
3,4,3,300000
4,2,4,300000

nodes.txt

1,0,3,1,1,0,0
2,0,0,1,1,0,0
3,4,3,0,0,0,-20
4,4,0,0,0,30,0

2.2  静态类 ClassBasicInfo 存放基本结构数据

新建类库,命名为 Business,添加对 PlaceUsingTxt.dll 的引用,新建类,命名为 ClassBasicInfo,贴入以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Business
{public static class ClassBasicInfo{public static int[,] BarsNodes;//杆件节点编号public static Single[] LinearStiffness;//杆件刚度public static Single[,] Coordinate;//节点坐标public static bool[,] Restraint;//节点约束public static Single[,] Loads;//节点荷载public static Single[,] TatalStiffnessMatrix;//总刚度矩阵public static Single[] TatalDisplacement;//总位移列阵public static Single[] TatalLoads;//总荷载列阵public static bool[] TatalRestraint;//总边界条件}
}

2.3  对静态类赋值

新建类,命名为 ClassGetBasicInfo,贴入以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;using PlaceUsingTxt;namespace Business
{public class ClassGetBasicInfo{public int NumBars;//杆件数public int NumNodes;//节点数public void InitBars(string StrBars){//初始化杆件信息ClassReadTxt crt = new ClassReadTxt(StrBars);string[,] tempstr = crt.OutStr2D();crt.close();//取得杆件数NumBars = tempstr.GetLength(0);ClassBasicInfo.BarsNodes = new int[NumBars, 2];ClassBasicInfo.LinearStiffness = new Single[NumBars];for (int i = 0; i < NumBars; i++){ClassBasicInfo.BarsNodes[i, 0] = Convert.ToInt32(tempstr[i, 1]);//杆件起点编号ClassBasicInfo.BarsNodes[i, 1] = Convert.ToInt32(tempstr[i, 2]);//杆件终点编号ClassBasicInfo.LinearStiffness[i] = Convert.ToSingle(tempstr[i, 3]);//杆件刚度}}public void InitNodes(string StrNodes){//初始化节点信息ClassReadTxt crt2 = new ClassReadTxt(StrNodes);string[,] temps = crt2.OutStr2D();crt2.close();//取得节点数NumNodes = temps.GetLength(0);ClassBasicInfo.Coordinate = new Single[NumNodes, 2];ClassBasicInfo.Restraint = new bool[NumNodes, 2];ClassBasicInfo.Loads = new Single[NumNodes, 2];for (int i = 0; i < NumNodes; i++){ClassBasicInfo.Coordinate[i, 0] = Convert.ToSingle(temps[i, 1]);//节点x坐标ClassBasicInfo.Coordinate[i, 1] = Convert.ToSingle(temps[i, 2]);//节点y坐标ClassBasicInfo.Restraint[i, 0] = Convert.ToBoolean(Convert.ToInt32(temps[i, 3]));//节点x方向约束ClassBasicInfo.Restraint[i, 1] = Convert.ToBoolean(Convert.ToInt32(temps[i, 4]));//节点y方向约束ClassBasicInfo.Loads[i, 0] = Convert.ToSingle(temps[i, 5]);//节点x方向荷载ClassBasicInfo.Loads[i, 1] = Convert.ToSingle(temps[i, 6]);//节点y方向荷载}}//初始化有限元法基本方程矩阵public void InitMatrix(){ClassBasicInfo.TatalStiffnessMatrix = new Single[NumNodes * 2,NumNodes * 2];//总刚度矩阵ClassBasicInfo.TatalDisplacement = new Single[NumNodes * 2];//总位移列阵ClassBasicInfo.TatalLoads = new Single[NumNodes * 2];//总荷载列阵ClassBasicInfo.TatalRestraint = new bool[NumNodes * 2];//总边界条件}//接口public void Initialize(string StrBars,string StrNodes){this.InitBars(StrBars);this.InitNodes(StrNodes);this.InitMatrix();}}
}

至此,完成基本信息的存放,以静态数组的方式储存,方便全局范围的访问。

其中,PlaceUsingTxt.dll 的源码参见:http://blog.csdn.net/silyvin/article/details/6758196

转载于:https://www.cnblogs.com/silyvin/archive/2011/10/08/9106923.html

.Net ( c# ) 与 Fortran 混合编程实例(二):杆系结构有限元法——平面桁架解答(2)...相关推荐

  1. .Net ( c# ) 与 Fortran 混合编程实例(二):杆系结构有限元法——平面桁架解答(3)

    第三节  构造有限元法基本方程 3.1  形成未引入边界的总刚度矩阵.总荷载列阵.总边界列阵 新建类,命名为 ClassCalculation,贴入以下代码: using System; using ...

  2. QML和C++混合编程--(二)

    文章目录 QML和C++混合编程--(二)之QML连接C++方法和信号 简介: 一.修改app.qml 文件 二.修改c++中的类 QML和C++混合编程–(二)之QML连接C++方法和信号 简介: ...

  3. MFC编程实例二:进度条的使用

    MFC编程实例二:进度条的使用 (以下蓝色字体为手动添加的代码) (1)   创建一个基于对话框的应用程序. (2)   在对话框界面添加一个文本框.一个进度条控件(Progress控件)和一个按钮. ...

  4. python和C语言混合编程实例

    转载自:http://www.jb51.net/article/50633.htm 这篇文章主要介绍了python和C语言混合编程实例,文中开发了一个tcp端口ping程序来介绍混合编程,需要的朋友可 ...

  5. 平面/空间杆系结构有限元编程计算(MATLAB)

    GitHub链接:MATLAB源码 博主QQ:915339719,有问题可以随时交流 程序简介 本程序可以对绝大多数的平面/空间杆系结构进行静力学计算.自振频率计算,以及平面杆系结构的稳定性计算,具有 ...

  6. python fortran混合编程_python fortran c 混合编程

    背景 因为编程需要使用python和fortran(或者c,c++)混合编程,所以进行了一些资料查询和实验.首先尝试了f2py,但是这个项目已经很久没有更新,为了以后兼容性考虑(后期可能会使用到c++ ...

  7. ESP8266-Arduino编程实例-二维码(QR Code)生成与TFT LCD显示

    二维码(QR Code)生成与TFT LCD显示 QR 码(快速响应码的缩写)是一种矩阵条码(或二维条码,由日本汽车公司 Denso Wave 于 1994 年发明.条形码是一种机器可读的光学标签,可 ...

  8. MPI和OpenMP混合编程实例

    MPI和OpenMP混合编程 计算pi值 大体思路就是先将计算区域划分成100000 份,然后将计算分成进程数nproc(nproc)份,每一份有nbin个计算. 步长为step = 1.0 / NB ...

  9. windows机制下的游戏编程实例二

    通过调用DirectX SDK库实现游戏空间的三维化,也就是我们通常玩的网游,鼠标拖着主角到处跑去完成任务(个人觉得这种游戏超无聊).下面先给出效果图: 还是先给出其文件目录吧,从总体把握实例,也是很 ...

最新文章

  1. insert 语句的选择列表包含的项多于插入列表中的项_如何定义和使用Python列表(Lists)
  2. NLP重大突破?一文读懂XLNet“屠榜”背后的原理
  3. 15_多子图-Subplot、Subplot: 使用多个figures和 axes、替代解决方案:
  4. java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
  5. Datatables参数详解
  6. 计算机网络(9)-----TCP可靠传输的实现
  7. Python还能走多远?
  8. 整理Java基础知识--数组2
  9. 推荐一个强大的串口监控软件(免费)
  10. linux 3t 硬盘无法识别,希捷(3T)硬盘故障处理备忘
  11. 小刘的刷题日记——day1 【CSES】Weird Algorithm
  12. 准确测量模型预测误差
  13. IDEA debug或启动报错:maven-resources-production:XXX:java.lang.NegativeArraySizeException
  14. PAT 乙级 1020  月饼
  15. [网易2017实习生编程题] 魔力手环
  16. LBS的球面距离计算及Geohash方案探讨(LBS之一)
  17. 如何在matlab中表示e,Matlab中表达e的操作方法介绍
  18. SEO优化,外链重要还是友情链接重要?
  19. iOS越狱插件: Icon Tool 可定位文件目录和备份资料等功能
  20. 同态加密Paillier

热门文章

  1. 找资源的网址——总结笔记一
  2. 在深入学习gnuradio之前你需要知道的
  3. Windows Phone8开发工具包简述(转载)
  4. NTP物理机时间同步应用
  5. JVM-XX:NewRatio 、-XX:SurvivorRatio 参数的含义
  6. 程序员北京三年买房的秘密
  7. 海量数据去重,hash、布隆过滤器以及hyperloglog丨c/c++linux服务器开发丨后端开发丨Linux后台开发丨底层原理
  8. 第七届中国项目管理办公室(PMO)发展大会亮点抢先看
  9. 5个超好用的屏幕划词翻译软件,选中文字就能翻译
  10. SIM900G模块之GPRS 通信