LBM_Taichi
LBM_Taichi copied to clipboard
请问边界条件的做法
你好!我在Taichi论坛上膜拜了你的Homework以后找到了这里:) 我也从事过一些CFD计算的学习但是对于LBM法不是很熟悉,想请问你在代码中的边界条件的这种做法(apply_bc_core)是有参考什么书或者代码吗?感觉这样的用法真的太好了,也可以适用在不是LBM的求解器中想尝试一下。
谢谢!
你好!我在Taichi论坛上膜拜了你的Homework以后找到了这里:) 我也从事过一些CFD计算的学习但是对于LBM法不是很熟悉,想请问你在代码中的边界条件的这种做法(apply_bc_core)是有参考什么书或者代码吗?感觉这样的用法真的太好了,也可以适用在不是LBM的求解器中想尝试一下。
谢谢!
你好,谢谢关注。这种边界条件的写法就是将一些重复使用的代码封装成函数,增加复用性,并不是只针对LBM。实际上,可以把求解器的边界条件、数值离散、时间推进、网格系统等等都分别封装成类,在CFD程序框架设计方面最佳的参考就是OpenFoam。
复用性的确是我正在关注的问题,自己以前写一些非常naive的计算代码,里面的边界条件往往生硬而重复,比如2D的情况下除了上下左右每个边界进行设置,在每个corner也要手动设置系数等等,如果流场形状稍微复杂就会让代码变得更加冗长。 OpenFOAM我也使用过,不过他里面的类的体系实在是太过于巨大了。。所以没有研究清楚。这方面有什么值得学习的材料吗?
复用性的确是我正在关注的问题,自己以前写一些非常naive的计算代码,里面的边界条件往往生硬而重复,比如2D的情况下除了上下左右每个边界进行设置,在每个corner也要手动设置系数等等,如果流场形状稍微复杂就会让代码变得更加冗长。 OpenFOAM我也使用过,不过他里面的类的体系实在是太过于巨大了。。所以没有研究清楚。这方面有什么值得学习的材料吗?
倒没有见过哪本书具体讲怎么实现CFD的这些细节问题。我个人的经验可能还是多看看别人写的代码,提高这方面的意识。Github站内就有很多优秀和精简的开源CFD代码,值得去看看。另外,如果一定要推荐书的话,很多人会推荐这本: Head First Design Patterns(深入浅出设计模式)。
多谢推荐!这本书有所耳闻但是因为自己并不是软工所以之前就没有去碰,现在看来还是很有必要的。