对于新手来说,如何上手课本理论向计算机程序语言转换?
-
目前一直使用商用软件,但是对于里面的很多内容一知半解。后面根据PPT自学了《数值传热学》1-6章(记得东岳老师说学前6章足够,后面为专题),但是对于如何将里面的公式转化为计算机语言完全一窍不通。
课题组只有一两个做DNS,都是基于fortran。本人之前学的是C语言,所以希望有什么教材或者指导是用C/CPP实现编程讲解的。因为目前没打算使用Openfoam,所以相关内容没有看过。先前看过12 Steps to Navier–Stokes,但是因为python语言原因,很多内容完全也是看的一知半解,还有很大一部分时间花在了IDE上面。
请问各位,如何利用C/CPP语言实现课本理论到计算机程序的转化?谢谢 @东岳 -
@Juanyong 在 对于新手来说,如何上手课本理论向计算机程序语言转换? 中说:
但是对于如何将里面的公式转化为计算机语言完全一窍不通。
不知道你C语言到什么程度,按照道理如果算法明白,编程求解应该不是大问题。就我个人而言,大部分在搞算法,算法搞通了,植入一般不会花费太长时间。
目前对于矩形的结构网格,如果用C求解,基本上几十行代码就能搞定。给你举例子:比如网格长度、宽度,那肯定是这样定义:
double length = 1.0; double height = 2.0;
然后就是定义deltaX和deltaY:
double deltaX = 0.1;//10个网格 double deltaY = 0.1;//20个网格
二维网格的变量定义可以采用数组:
double U[10][20]; double V[10][20];
即使求解方程中,也是按照结构网格标识来做的,比如中心差分:
U[5][6] = 0.5*(U[5+1][6] + U[5-1][6])
结构网格变成求解非常简单。我觉得你唯一可能的就是不能沉下心来,自己动手搞一把?比如数值传热学中94页那个例子,手算都能算出来,这样的话,没有用C写不出来语言的道理啊
我之前曾经想过写一个教程,类似12步求解N-S方程,只不过是用C语言写,但是这种写起来太麻烦了,写的太糙小白看不懂,写的太细很占用时间