欢迎您,客人:高级登录 | 注册 | 取回密码 新贴 | 发帖 | 会员 | 搜索 | 帮助

阳光精品论坛 >> 『 CFD 专栏 』 >> 采用C++编制CFD程序时三维数组的建立方法本主题已阅读2049次,回复0

本文章信息
作 者 资 料
作 者 主 页
我 要 收 藏
发 表 主 题
转 发 该 文

采用C++编制CFD程序时三维数组的建立方法

(这条文章已经被阅读了 2049 次) 时间:2010/09/06/07:39   来源:even2004

本人打算用C++编制CFD分析程序,对于三维问题,需要用三维数组来记录每个流场网格上
的流动数据。目前我知道的有三种方法:
其一是用一维数组加偏移地址的方法,每一个三维网格点可以用网格块编号和ijk指标来计算其在一维数组中的偏移地址,但这样太麻烦,随时都要计算偏移地址;

其二是定义三级指针double ***a,然后a=new double**[n],a=new double*[n],a[j]=new double[n],这种方法在建立数组a[][][]的同时建立了二维指针数组a[][](实际上数值计算时用不
到这个数组),个人觉得浪费空间;

第三种方法是采用容器的办法,vector   >   vecInt(m,   vector (n)),这种办法看似方便,实际上对于CFD计算,其效率显著低于数组。请问哪位达人可以提供一种高效的且省内存的操作方便的方法来建立三维数组?



此文章相关评论:(论坛方式查看)
此文章暂时没有评论



本论坛言论纯属发表者个人意见,与 阳光精品论坛 立场无关 联系我们
Powered by BMForum v5.0 Skin by Bob Shen