惦记着AMG
好长时间以来,都想着什么时候能够把AMG实现一下,特别是在学习OpenFOAM的时候,该方法是主要算法。
目前还是有部分问题待解决。AMG算法可以肯定至少要三四个视频才能说清楚,这就需要大段的充裕时间。还有是现在精力不足,腰酸背痛,不能长时间坐在电脑前。
看数值线代,发现里面这是一片新天地呀,好东西太多,真的希望自己可以把这些实现一遍。各种开源数值计算包,功能强大。然而要学习难上难,首先,自然语言关;其次,计算机语言关;再有,结构复杂,考虑的因素多,兼容性因素多,对学习者来说,几乎是不可能的事;最后,没有很好的文档。
真的希望同仁中,有能够把几个数值计算包的基本实现解说一下的,让后来者能降低学习难度。很多东西,入门最难,尤其是这种应用性的。当然了,这个需要的水平太高。能到这个层次的肯定不会有时间的,我辈只能期待,sign!
把这种类似算法实现的另一个原因是想做个microFoam,网上有类似的项目。现在网络上有些matlab,python做CFD实现,虽然很好。有一个很重要的问题,就是这种都是lab型的。就像学习建造大楼在学校里用纸和塑料搞个模型,当然很好。然而实际是用钢筋混凝土的,材料不一样,结构不一样,上手更是天差地别。而且人家也明示是lab,仅用于理解方便,不建议深入玩,这也是前面文章劝大家慎用这些语言的原因(前面的坑都已踩过啦)。
现在有一个openfoam,可以说是一个现成的高楼大厦,虽然不能搞个如此规模的,至少也要用近似的材料做个二层小楼吧。个人的想法是要step by step(参考Korea一个高手,目前已有框架),这里有几个难点,一是C++语言,只有这玩意才能搭建,第二就是数值求解线性方程组算法。因为大部分理工科做分析CAE,CFD,专业理论问题不是重点,或者大部分不在话下。
这个只是希望,材料都有了,缺时间和心力。