服务器多物理耦合求解系列软件~precice安装

1、安装Precice(确保petsc、preciece和你的求解器都是同一版本mpi版本编译)

1.1安装相关依赖

sudo apt update

sudo apt install build-essential cmake libeigen3-dev libxml2-dev libboost-all-dev python-dev python-numpy

注:起初在本地虚拟机测试安装的系统为ubuntu-20.04.1,但在安装上述库时,很多依赖的系统库版本过高,不兼容。将系统换为ubuntu-18.04便全部都兼容。服务器上有镜像源,上述库都是常用的,一般都有,直接apt install。

1.2手动编译安装OpenMPI2.1.1

./configure --prefix="/home/test653/ltv/software/petsc-3.15.1-install" --with-mpi-dir=/usr/local/ompi/--with-blas-lapack-dir=/YHXX/home/ltv/softwear/lapack/lapack-3.9.0/build/lib

注:--prefix参数为petsc安装路径

make

sudo make install

设置环境变量,"vim ~/.bashrc",在下面添加以下内容,设置环境变量的mpi路径

export PATH=~/software/openmpi/bin:$PATH

export LD_LIBRARY_PATH=~/software/openmpi/lib:$LD_LIBRARY_PATH

1.3手动编译安装依赖库petsc 3.8.4

下载地址:https://www.mcs.anl.gov/petsc/mirror/release-snapshots/

 PETSC_ARCH=arch-linux2-c-debug --download-fblaslapack=1

make PETSC_DIR=/home/ltv/petsc-3.15.1-install PETSC_ARCH=arch-linux2-c-debug all

make PETSC_DIR=/home/ltv/petsc-3.15.1-installPETSC_ARCH=arch-linux2-c-debug install

设置环境变量,打开编辑"vim ~/.bashrc ",在下面添加以下内容

export PETSC_DIR=/home/ltv/software/petsc

export PETSC_ARCH=

export LD_LIBRARY_PATH=/home/ltv/software/petsc/lib:$LD_LIBRARY_PATH

注:起初安装的是最新版本petsc3.15.1,但与后续的precice1.6.0版本不兼容(其对应兼容关系是:precice-2.2.1需要petsc>3.12;precice-1.6.0需要3.6

1.4安装precice1.6.0

下载preCICE 1.6.0

cd software

wget https://github.com/precice/precice/archive/v1.6.0.tar.gz

tar -xzvf v1.6.0.tar.gz

cd precice-1.6.0

编译安装preCICE 1.6.0

mkdir build

cd build

cmake -DBUILD_SHARED_LIBS=ON

-D CMAKE_INSTALL_PREFIX=/YHXX/home/ltv/precice  -DCMAKE_BUILD_TYPE=Debug(可省) ..

cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/YHXX/home/ltv/precice ..

make -j $(nproc) 16

make test_base                            (跑测试案例)

sudo make install

export LD_LIBRARY_PATH=/YHXX/home/ltv/softwear/petsc/petsc-3.14.2/arch-linux-c-debug/lib:$LD_LIBRARY_PATH

遇到的问题:(虚拟机上有网络在线安装还算顺利,服务器没有外网,大都靠手动编译,遇到问题较多。)

(1)cmake报错找不到 numpy(服务器上找不到某个python库),本地搜索定位到发现该库的位置“/usr/include/python2.7/numpy”,先装好ccmake,“apt install cmake-curses-gui”,执行“ccmake ..”,将numpy的路径设置为搜索到的位置(也可在CMakeList.txt中set())。

(2)虚拟机上make到38%报错“internal compiler error:”编译器内部错误,原因虚拟机内存不够。将虚拟机系统内存由2G升级到6G(内核由单核提升至四核),最终make通过。

(3)跑测试案例make test_base报错“An error occurred while loading python module "TestAllAction"”

服务器多物理耦合求解系列软件~precice安装_第1张图片

(4)make test_base 报错srun: error: Unable to allocate resources: No partition specified or system default partition。

正常应该是/usr/bin/mpirun,但放到计算节点上应该是srun或yhrun,且需要指定分区->"/usr/bin/yhrun""--mpi=pmix""-M""cab20_29""-p""653""-n""4"

提交到计算节点命令:/usr/bin/srun -M cab20_29 -w cn22977 -p 653 -N 2 -n 4*2 /YHXX/home/ltv/softwcice-2.2.1/build/testprecice

-M机柜  -w节点

(5)make test_base报错“ MPIDI_UCX_mpi_open_port(13): The function is currently not

supported with ucx netmod”,mpi 的端口不支持计算节点上的ucx netmod。

Ucx是软件层的通信协议,自行下载的mpich编译过程也依赖ucx,暂时替换成tcp

另检测当前窗口编译器:which mpicxx gcc

2、安装Calculix(固体求解器)

2.1、安装依赖库spooles2.2

(1)下载地址https://precice.org/adapter-calculix-get-calculix.html#building-spooles-from-source

mkdir SPOOLES.2.2

tar zxvf spooles.2.2.tgz -C spooles.2.2

(注:不要直接解压,不然会散落一地,提前备好SPOOLES.2.2文件夹)

cd spoolesS.2.2

(2)编译前修改Make.inc,将第14-15行修改为

CC = gcc

#CC = /usr/lang-4.0/bin/cc

(3)构建这个库

make lib

2.2、安装arpack和patch

(1)下载Arpack和patch

wget https://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz

wget https://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz

tar xzfv arpack96.tar.gz

tar xzfv patch.tar.gz

cd ARPACK

(2)编译前修改ARmake.inc

#120行

将“SHELL=/bin/sh”换为“SHELL=sh”

#115行

将“MAKE =bin/ make”换为“MAKE = make”

(注:本机情况这两行不换也行,因为“echo $PATH”bin的路径已经包含到$PATH)

#104-105行

FC = gfortran

#FFLAGS = -O -cg89

#提前要用sudo apt install gfortran安装gfortran

#35行

将“PLAT=SUN4”换为“PLAT = INTEL”

#28行

将“ home = $(HOME)/ARPACK”换成ARPACK的解压路径,我的路径为“ home = $(HOME)/myuse/ARPACK”

(3)编辑UTIL/second.f,在第24行前面加* 构建这个库

即“* EXTERNAL ETIME”

make lib

构建成功如图:

服务器多物理耦合求解系列软件~precice安装_第2张图片

2.3 安装依赖yaml-cpp

wget https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-0.5.3.zip

unzip yaml-cpp-0.5.3.zip

cd yaml-cpp-yaml-cpp-0.5.3

mkdir build

cd build

cmake -DBUILD_SHARED_LIBS=ON ..

Make

设置环境变量,打开编辑 vim ~/.bashrc,在下面添加以下内容

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ltv/myuse/yaml-cpp-yaml-cpp-0.5.3/build

source ~/.bashrc

修改Makefile中的SPOOLESCXXARPACK路径

服务器多物理耦合求解系列软件~precice安装_第3张图片

2.4、calculix

官网下载calculix,解压

unzip calculix-adapter-master.zip

cd calculix-adapter-master

求解问题:

Calculix计算结果为flap.frd,需转化为转化为flap.vtk供paraview可视化,注意转换过程的迭代步数必须是500,paraview读取的转换结果是不完整的,奇数迭代步会报错Unsupported point attribute type。只有500才使得转换结果完整。

3、安装OpenFOAM(流体求解器)

3.1 下载OpenFOAM-7-version-7.zip、ThirdParty-7-master.zip、openfoam-adapter-OpenFOAM7.zip

官网要求解压后重命名为:OpenFOAM-7、ThirdParty-7,原文件名编译过程会找不到,修改配置文件中的文件名比较麻烦。

3.2 编译

cd OpenFOAM-7/

source  ~/ltv/software/OpenFOAM/OpenFOAM-7/etc/bashrc

cd ThirdParty-7/

./Allwmake

cd OpenFOAM-7/

./Allwmake

遇到的问题:

(1)关于OpenFOAM版本问题:下载最新版本OpenFOAM-8编译过程发现model中缺少几个模型,因此换为OpenFOAM-7,模型齐全。

(2)配置编译器相关文件:

~/ltv/software/OpenFOAM/OpenFOAM-7/wmake/rules/linuxGcc/c

cc          = gcc  -m32

cFLAGS      = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC

Source project setup files:

/YHXX/home/ltv/software/OpenFOAM/OpenFOAM-7/etc/config.sh/settings

/YHXX/home/ltv/software/OpenFOAM/OpenFOAM-7/etc/config.sh/aliasesw

 source /YHXX/home/ltv/app/openfoam/OpenFOAM-7/etc/bashrc

(3)"cd OpenFOAM/      ./Allwmake"过程报错gcc: error: unrecognized command line option ‘-m32’。删除掉makefile文件中的’-m32’,gcc3.4或者更高的版本已经将其删除,所以会出现错误。

将~/ltv/software/OpenFOAM/OpenFOAM-7/wmake/rules/linuxGcc64(64位)/c、c++中cc= -m32,CC=-m32都去掉。

(4)报错找不到“mpi.h”

将~/ltv/software/OpenFOAM/OpenFOAM-7/wmake/rules/linuxGcc64(64位)/c、c++中

cc=gcc改为cc=mpicc。gcc是c编译器,g++是c++编译器,mpicc才是mpi编译器

(5)cd openfoam-adapter-OpenFOAM7 ./Allwmake 执行编译一部分过程停止报错如下:

输入export PKG_CONFIG_PATH=/YHXX/home/ltv/precice/lib/pkgconfig 解决。

PKG_CONFIG_PATH是一个环境变量,它指定pkg-config在其中搜索其.pc文件的其他路径。

你可能感兴趣的:(linux,服务器,ubuntu,linux)