有限元格式数据文件中点的编号错误,如何修正最有效
时间:2010-08-11
来源:互联网
本帖最后由 hbsld 于 2010-08-11 13:40 编辑
我写了一个程序来实现从一个有限元格式数据文件中读取点和三角单元的信息。但是这个文件的点的编号是乱的,没有任何规律。
有限元数据格式如下:
先是点的信息
p_num x y z
单元的格式如下
e_num p_num1 p_num2 p_num3
这里单元里面记录的是单元编号和组成单元的三个点的编号。点的编号是按逆时针顺序给出的,起点无所谓。
用图形表示如下:
我想要的结果是:
我现在做的思路是用两个循环, 如果单元中点的编号和当前点的编号相等,就把点的编号统一改变。
复制代码
但这种做法效率不高,对4万多个点、8万多个单元的网格来说,这一步要花3分钟左右才能完成。
希望各位指点一下,看有没有比较好的方法来提高转换效率。
ps:楼下说没看懂,看来是我没有表述清楚。
我这里在解释一下:
没有圆圈的数字是点的编号,有圆圈是三角单元的编号。
如第一个图里面三角单元1由点:1、3、17组成。
但是我希望把点的编号改变成连续的一个序列,即变成图2里面的编号。
这样,三角单元1的点就是:1、2、5了。
不知道这样解释清不清楚。
我写了一个程序来实现从一个有限元格式数据文件中读取点和三角单元的信息。但是这个文件的点的编号是乱的,没有任何规律。
有限元数据格式如下:
先是点的信息
p_num x y z
单元的格式如下
e_num p_num1 p_num2 p_num3
这里单元里面记录的是单元编号和组成单元的三个点的编号。点的编号是按逆时针顺序给出的,起点无所谓。
用图形表示如下:

我想要的结果是:

我现在做的思路是用两个循环, 如果单元中点的编号和当前点的编号相等,就把点的编号统一改变。
- for(i=0;i<num_node;i++){
- for(j=0;j<num_ele; j++){
- for(k=0;k<3;k++){
- if(eles(j, k) == nodes(i)){
- eles(j, k) = i
- }
- }
- }
- nodes(i) = i
- }
希望各位指点一下,看有没有比较好的方法来提高转换效率。
ps:楼下说没看懂,看来是我没有表述清楚。
我这里在解释一下:
没有圆圈的数字是点的编号,有圆圈是三角单元的编号。
如第一个图里面三角单元1由点:1、3、17组成。
但是我希望把点的编号改变成连续的一个序列,即变成图2里面的编号。
这样,三角单元1的点就是:1、2、5了。
不知道这样解释清不清楚。
作者: hbsld 发布时间: 2010-08-11
我愚钝,看了两遍竟然没看懂。

作者: lenky0401 发布时间: 2010-08-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28