MantaFlow(http://www.mantaflow.com)是一个流体模拟库,本文大致记录一下安装过程。途中有很多模棱两可的地方,由于不是笔者关心的内容,所以只列出自己的解决方法,不一定是最优方法。
首先强烈推荐在linux下使用,笔者分别测试了Debian 9.6和Windows 10两个平台,在前者中按照mantaflow官方文档的说明安装,数分钟即全部搞定。Windows平台下笔者花了大概一天时间配置了一堆环境才装好,这里大致记录一下途中遇到的问题。
先安装必须的环境,包括Cmake 2.8+、Python 2.7+或3.2+(笔者使用3.7)、Visual Studio(笔者使用2017)、Qt5、MinGW(一般Qt5包中附带,也可以另外安装)。强烈建议使用Qt5,否则cmake会尝试使用Qt4,带来一系列别的问题。大部分的下载地址在MantaFlow的文档http://www.mantaflow.com/install.html中已有给出,其中Qt5可在http://download.qt.io/official_releases/qt/5.9/5.9.5/下载,点Detials可以选择合适的镜像,多试试选最快的,推荐选择清华的镜像。
以上所有下载安装好,建议配置一下Qt5的环境变量(虽然不一定有用)。方法见:https://blog.csdn.net/wwwwxhh/article/details/51517468
接下来可以执行cmake,在下载好的MantaFlow包中新建build文件夹,打开cmake-gui.exe,按下图配置:
先设置好红框的路径,后点Configure,选择你的编译器,进度完成后会出现蓝框的内容。根据官网文档提示,首次使用勾选GUI和OPENMP,其余留空,点Generate,大概率会报Qt相关的错误,此时手动设置黄框中的路径(Generate后是notfound状态)。黄框中的选项并不是一次性出来的,每次设置好后重新Generate,重复几次就好了。最后如无其他问题会提示成功。
接着进vs编译。打开刚才的build文件夹,打开MantaFlow.sln,尝试生成。笔者首先遇到的是python错误,lnk1104:无法打开python37_d.dll。这是由于我们下载的python一般是release版本,这个dll是不存在的。找到python目录,复制python37.dll到同一目录,重命名为python37_d.dll。进入libs目录,复制python37.lib到同一目录,重命名为python37_d.lib。最后按此链接https://www.jianshu.com/p/6498af8ec352修改pyconfig.h。因为笔者并不确定到底哪个操作是最终发挥作用的,建议以上三步均执行。
接下来右击解决方案管理器中的ALL_BUILD项目,属性,左上角配置改为Release(同不知道这步有没有用),确定。右击manta项目,设为启动项目。生成调试。过程中大概率提示找不到Qt5Cored等一系列dll导致无法启动调试。回到上图黄框的bin目录中,把提示找不到的dll复制到上图红框的build/Debug和build/Release目录下。d结尾表示debug,相关dll放在Debug目录,不带d结尾的放在Release目录。重新生成和调试。
若一切顺利,过程中会弹出窗口提示选择scene,也就是我们要模拟的内容,在manta包的scene文件夹下,随意选一个py打开。如果成功,即可得到下图模拟界面。至此安装完成,更详细的操作间mantaflow官方文档。
动手研究吧!