PETSc在Windows上的安装与测试
高大上的代数求解库(冰山一角)PETSc在Linux上的安装已经有不少大佬在网上分享了,但在Windows上怎么装却没有较为新进的教程,这里我就分享下近期“摸爬滚打”之后成功安装的经验。

前置环境配置
Visual Studio
2019或2022版的,自己整。

MPI
PETSc支持MPI、OpenMP、异构等不同的并行实现方式,但按照官方说法,其对MPI的支持还是相对更完善的,PETSc并行上手的话也是以MPI并行开始的,所以先配置好MPI环境。这里选择Intel的MPI(而不是MS-MPI,别问,问就是踩过坑)。

把这俩下载了,先安装上面的基础包,再安装下面的高性能计算包,安装路径不要有中文,也(最好)不要有空格。记住你的安装路径。

Cygwin
接下来就是Cygwin了,bing一下到官网下载:

Cygwin的后续配置网上可以找到一大堆,但为了安装PETSc,我们必须确保安装了Python3和make:

下载完后打开一下Cygwin,它会自动配置本地文件,然后关掉。

PETSc的安装
首先去PETSc官网下载压缩包,然后解压。
然后以管理员身份启动Intel oneAPI command prompt for Intel 64 for Visual Studio 2022/2019
命令行输入icl,看看是否识别此命令
上一步icl有反应的话,输入mintty的路径,如D:/Cygwin/Bin/mintty
正常情况下就会有一个窗口弹出来,然后按照这个视频做
注意啦,在configure的时候,这么输入
--prefix=/cygdrive/(你想要的windows路径) --with-cc-std-c99='win32fe icl' --with-fc=ifort --with-cxx-std-c++11='win32fe icl' --download-fblaslapack --with-shared-libraries=0 --with-mpi-include=/cygdrive/(mpi包含路径) --with-mpi-lib=/cygdrive/(mpi库路径) --with-mpiexec=/cygdrive/(mpiexec所在路径)
那么这些路径怎么找呢,在Intel oneAPI command prompt里用命令wheris搜索,比如说mpicc,他就会打印:

那么include、lib、mpiexec路径就是
/cygdrive/d/Intel/oneAPI/mpi/2021.9.0/Include
/cygdrive/d/Intel/oneAPI/mpi/2021.9.0/lib/release/impi.lib
/cygdrive/d/Intel/oneAPI/mpi/2021.9.0/bin/mpiexec
后面就按提示做就行。(顺带一提,这么做最后的PETSc是release版的)

基于Visual Studio的官方算例测试
先配置好环境和指令(也可以生成exe文件再手动输入),看图(petsc的路径取决于你的prefix),编译器要选成Intel的,工程右键菜单有个compiler的选项,看自己喜好选。





另外就是,PETSc是c语言写的,相关文件如果是.cpp后缀的话编译器会不认一些C的东西,所以建议使用.c。(extern "C"应该也成,没试过。)
不出意外的话,就可以运行了。