LBM学习及流体计算开源包问题解答

Q1:默罕默德小红书里的代码问题

答:请移步我的github,看完我写的代码,再问其他问题。

Q2:我看到lbm有很多软件,xflow,powerflow,openlb,palabos,openfoam现在不是很清楚他们之间是什么关系,这个您了解吗?

答:xflow我没有用过,无法评论,powerflow是lb商业包,无法做科研,需要花很多钱,剩下的三个都是需要自己写程序的开源包,openfoam是fvm的包,palabos和openlb是lb的包。

Q3:powerflow,openlb,palabos,openfoam这几个软件之间的区别是什么?哪个软件可以实现像fluent这样的计算,后处理一体化的软件,或者LBM有这样的软件吗?

答:powerflow听说好像能实现计算后处理一体化,但是按照是按照核时收费,价格昂贵。还有一个别人给我推荐的包,我没仔细看,你可以试试waLBerla。剩下的三个都无法实现计算后处理一体化,需要自己编写代码实现。

Q4:“包”是什么意思?提供的是什么?openlb,palabos,openfoam是只提供框架吗?比如状态方程,并行,后处理,我们还要自己编程?那跟我们自己用c语言编程有什么区别呢?优势在哪里?

答:我一般把可以直接调用的别人的库函数文件的集合统称为包,以前写java遗存的叫法,不知道C++是否也这么叫。提供的是一个函数库和类库,可供调用。OpenLB、Palabos、OpenFOAM都只是提供框架,并行框架都是集成在函数内部的,计算以及后处理都需要你自己调用包中所给的函数来实现,如果包中给了相关函数就不需要自己写底层代码,只需要调用即可,当然,调用也是要自己编程的。
调用开源包与自己用C、C++、Fortran从最底层编程的区别,我着重说一下,如果能自己编写从基础串行程序到并行程序再到后处理,并且程序可复用性可拓展性很高,代码鲁棒性强不易出错,那你最好还是自己写,毕竟你能把上面的这几个要求做到,你自己可以做个开源包给别人用。如果你做不到,那请使用现成的开源包,你只需要按照要求调用基础框架中的相应模块,更深层次的,你按照基础框架的相应模块的接口,来写你自己的模块,就可以实现可复用性,可拓展性,以及代码的鲁棒性。当然了,现在用基础语言,直接写,倒是有不少别人的代码可以抄,毕竟组传代码,都捏在人家大组手里,你抄的到就去抄,也是挺快的,但毕竟别人写的,你不知道暗藏着什么坑。

Q5:请问能否提供一下openlb,palabos,和安装包和安装教程,以及简单的使用方法呢?百度云链接之类的?或者有你比较推荐的学习资源和链接有吗?谢谢!

答:你去他们的官网,都有使用手册和源代码包,自己下下来用用就行,palabos的教程首推参与者之一的徐辉大佬的新浪博客,此外,我也会写一写简单的学习心得和教程,可以来看。openlb的相关内容,以后有时间了也会写,敬请期待。

Q6:请问,为什么Codeblocks编译palabos算例总是出现某某未找到路径,比如palabos2D. h:no such file or directory. 我添加此路径,又出现其它文教件有相似的问题,不知道博主有没有用过Codeblocks编译过,如果有时间有兴趣看看,教授一下,不胜感激!

答:请看我Windows上编译计算Palabos案例指南,有写过,放编译文件的位置要放对,Mikefile文件中都有编译时调用源代码目录的相关内容,你可能Makefile没放好,所以导致对应的代码没有被包含在内。

# Leading directory of the Palabos source code
palabosRoot  = ../../..

此为由你当前目录向上回溯三次,回到的位置为palabos根目录(根目录就是那个带src文件夹的目录),从而获得编译所需源代码,两个点是返回上一级目录,出现找不到路径基本都是这个问题。。。

你可能感兴趣的:(LBM源码学习)