生活总是离不开远行,所有的相遇与告别都是那么的奇妙。每次离开归家和离家的旅途总是有点伤感,我改变不了什么,人是要长大的啊,可何时才是真正的长大。
我又在追逐什么?我热爱着什么?我需要做些什么?我在面对什么?社会父母的期许?自己内心的渴望?我把我过得越来越虚无。我需要一步一步好好走下去,我不知道最后的最后在哪,或许什么都没有,但是我需要走下去,一步步的走下去。
人总是需要面对虚无的希望的,人总要学会把这朵虚妄之花掰开成一朵朵明艳柔软的花瓣的。
重新划分边界进行积力
Fortran应用及常见问题
Fortran出现stack overflow
stack就是堆栈,Heap就是堆。每个线程都有自己的stack用来保存局部变量和函数调用信息,根据编译器不同,通常大小1~4MB之间,如果用完了就会出现stack overflow exception。 一般Fortran编译器默认情况是allocatable array放在堆里, Automatic Array放在栈里。 栈的缺省设置一般为1048576 Byte = 1MB。
如果采用的是Microsoft Visual Studio和Intel Fortran编译器,可以在项目属性->Linker->System中Stack Reserve Size
中设置栈的大小。1
2
3
4
5
6 1MB: 1048576 Byte
10MB: 10485760 Byte
64MB: 67108864 Byte
100MB: 104857600 Byte
128MB: 134217728 Byte
256MB: 268435456 Byte (MAX)
cfl3d在Windows上编译
很久没有用过cfl3d了,之前也直接用的程序,没有自己编译,现在需要自己编译配置了。下面是在VS2013和Intel Fortran2015环境下,项目属性的配置。
为了方便下次配置的方便,下面直接给出
*.vfproj
的内容,以后只要将代码放置到正确的相对路径下,直接双击*.vfproj
即可。1 | <?xml version="1.0" encoding="UTF-8"?> |
空腔网格自动生成
背景
背景其实很简单,需求就是需要一个给定长宽高可以自动生成空腔结构化网格的程序。
实现
在最初是有想过全都自己编程来生成这个结构化网格,虽然是多块网格,但几何相对比较简单,在保持拓扑不变的情形下还是有可能在短时间内完成这项工作的。可是网格生成是一方面,最后还要采用结构化网格的求解器,这里采用的是cfl3d开源代码,意味着要准备cfl3d.inp。此外,网格拓扑边线上的点也需要自己编写函数去实现。虽说,如果全都自己编最后封装在一起,程序比较独立,使用起来比较灵活,但这部分工作感觉不是工作的中心。所以,在最后决定采用ICEM录宏的方程实现几何和网格的自动生成,然后利用Matlab对宏文件进行相关参数的修改。在生成导出网格时,还可以对cfl3d.inp文件中马赫数、雷诺数等参数进行调整,但目前就进行到这为止,不想要给自己增加额外的工作量了。