前面说交叉编译ESI的OpenFOAM 2412版本,但编译过程不太顺利,老是出错,折腾了一番放弃了,以后有时间再弄了。好在ESI官方提供了OpenFOAM的交叉编译版本,我们可以直接在官方版本上进行处理就可以。
ESI官方的交叉编译版本基于MSYS2,其中所有的预置求解器都已经被编译成exe文件,可以将其弄出来处理成可以在Windows下独立运行的程序,这样套壳的时候就方便调用了。
其实只需要处理环境变量就可以了。另外官方没有编译MPI,所以如果想要使用并行计算的话,还得手动安装MPI。下面是处理过程。
下载地址:https://develop.openfoam.com/Development/openfoam/-/wikis/precompiled/windows#native-windows
找到下图所示的链接下载。
安装过程非常简单,双击后一路next即可。需要注意,安装路径不允许有空格,否则后面会提示无法创建环境变量。
安装完毕后可以双击桌面上的快捷方式启动,如下图所示表示安装成功。
拷贝应用程序。本机安装路径为:
C:\ESI-OpenCFD\OpenFOAM\v2412\msys64\home\ofuser\OpenFOAM\OpenFOAM-v2412\platforms\win64MingwDPInt32Opt\bin
也可以在安装路径中搜索icoFoam,所有的预编译程序都放在了这个文件夹下面。
这里将bin文件夹拷贝到一个新建的文件夹中,如C:\OpenFOAM中。
C:\OpenFOAM
拷贝文件夹C:\ESI-OpenCFD\OpenFOAM\v2412\msys64\home\ofuser\OpenFOAM\OpenFOAM-v2412到C:\OpenFOAM中
C:\ESI-OpenCFD\OpenFOAM\v2412\msys64\home\ofuser\OpenFOAM\OpenFOAM-v2412
在C:\OpenFOAM下创建一个批处理文件,命名为of2412.bat,用文本编辑器打开,并输入以下内容
of2412.bat
@echo offchcp 65001set path=%path%;%~dp0binset WM_PROJECT_DIR=%~dp0OpenFOAM-v2412cmd
从tutorials中拷贝一个测试文件(如cavity)用于测试,这里将其放到文件夹C:\OpenFOAM\run中
C:\OpenFOAM\run
这一步不是必须的,只是用来测试。
运行of2412.bat,输入以下命令生成网格
cd run\cavityblockMesh
可以看到能够正常生成网格。
继续输入命令icoFoam可以进行计算,如下图所示。
icoFoam
可以输入命令echo > cavity.foam生成空文件,然后用paraView打开文件进行后处理
echo > cavity.foam
压力分布如下图所示。
速度分布如图所示。
ESI OpenFOAM中并没有编译MPI,若想要使用并行计算的话,需要手动安装MPI,这里可以使用微软的Microsoft MPI。
下载地址:https://learn.microsoft.com/zh-cn/message-passing-interface/microsoft-mpi#ms-mpi-downloads
下载后直接安装即可。安装完毕后将MPI安装路径下的bin文件夹拷贝到文件夹C:\OpenFOAM中,并修改文件夹名称为MS-MPI。
MS-MPI
复 制后的文件夹中的内容如下图所示。
修改of2412.bat的内容,将MS-MPI的路径添加到环境变量path中
@echo offchcp 65001set path=%~dp0MS-MPI;%~dp0bin;%path%;set WM_PROJECT_DIR=%~dp0OpenFOAM-v2412cmd
搜索并拷贝文件decomposeParDict到system路径下。注意这里没法使用foamGetDict,只能手动复 制。修改其内容:
decomposeParDict
system
foamGetDict
numberOfSubdomains 4;method hierarchical;coeffs{ n (221);}
测试并行计算。依次输入下面的命令
blockMeshdecomposePar
执行完毕后如图所示。
执行下面的命令进行并行计算
mpiexec -n 4 icoFoam
执行完毕后如下图所示。
利用命令echo > cavity.foam创建一个空的后处理文件,可使用ParaView进行后处理。
当前的文件夹中的内容过于臃肿,有一大堆用不上的文件,可以删除掉。
环境变量。of2412.bat中设置的是临时变量,仅限于当前命令窗口中使用。想要全局使用的话,可以手工设置环境变量。包括:
设置完毕后重启计算机以使环境变量生效。
C:\OpenFOAM\bin
C:\OpenFOAM\MS-MPI
C:\OpenFOAM\OpenFOAM-v2412
这里需要注意的是,ESI提供的OpenFOAM交叉编译版本的:
全部文件可以在这里下载:https://t.zsxq.com/yVYhB”
全部文件可以在这里下载:https://t.zsxq.com/yVYhB
(完)