24小时热门版块排行榜    

查看: 1336  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

andersonlyw

新虫 (著名写手)

[求助] Fortran程序,如何实现采用矩阵保存单链表表头?

问题是这样,小弟想做三维网格的DSMC稀薄气体模拟,打算:
用N*N*N的三维矩阵存贮N*N*N个单链表表头,这样每个单链表可以用来存贮该网格内所有的气体分子信息(速度,坐标等),但是不知如何用Fortran程序实现?
请高手指教!可否提供几行程序片段供参考?

相应的物理思想见王学德,发表在2007年空气动力学学报上的论文:
http://d.g.wanfangdata.com.hk.ez ... dlxxb200701020.aspx
题名:一类二维非结构网格DSMC方法的实现策略及其应用
回复此楼

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meigudengfei

新虫 (初入文坛)

楼主,我做的是粘性颗粒的碰撞,最近一直在纠结碰撞信息的存储,想问问运用指针线性链表怎么处理的,还有你是怎么搜索分子颗粒碰撞的,判断分子颗粒之间的距离吗?求教。。。
6楼2014-03-23 20:51:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

andersonlyw

新虫 (著名写手)

解决此问题的虫友,另有100金币可领。见:
http://muchong.com/bbs/viewthread.php?tid=6451229
2楼2013-10-12 17:48:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

andersonlyw

新虫 (著名写手)

我似乎已经想到了一种方式。
如下:采用一个指针数组MP(分配三维N×N×N空间),一个单链表P,一个普通矩阵M(三维N×N×N)可完成任务。首先,单链表P记录所有计算区(三维N×N×N Cells)内的分子信息,分子运动一步后,计算碰撞时,先记录每Cell内的分子数量于普通矩阵M内。然后根据矩阵M提供的信息,给指针数组每个点(共N×N×N个)分配(6×X的二维存贮空间,其中3行存分子速度,3行存贮分子坐标)。这类似于动态矩阵,完成后,在计算分子碰撞时,可以直接采用矩阵方式选择碰撞分子对。完成分子碰撞后,再将指针数组内保存的数据全部转存至单链表。如此循环即可。
3楼2013-10-13 12:34:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

andersonlyw

新虫 (著名写手)

请教各位做稀薄气体DSMC模拟的虫友们,你们是怎么存贮分子信息的?互相交流一下,共同提高。有金币送。
4楼2013-10-13 12:36:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见