Ubuntu20.04下编译安装Elmer和ElmerGUI

安装依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo apt install build-essential \
git \
libblas-dev \
liblapack-dev \
libmumps-dev \
libparmetis-dev \
libhypre-dev \
gfortran \
mpich \
sudo \
cmake \
ca-certificates \
less
1
2
mkdir elmerfem
cd elmerfem

下载源码到 repo目录

1
git clone https://github.com/ElmerCSC/elmerfem.git repo

创建编译目录build并进入

1
2
mkdir build
cd build

编译Elmer:

1
2
3
4
5
6
7
8
#Without MPI:
cmake -DCMAKE_INSTALL_PREFIX=/path/to/inst ../repo

#With MPI:
cmake -DWITH_OpenMP=TRUE -DWITH_MPI=TRUE -DCMAKE_INSTALL_PREFIX=/path/to/inst ../repo

make
make install

其中/path/to/inst是软件的安装目录,下同

编译ElmerGUI:

软件默认使用的还是QT4,在 Ubuntu 20.04 的源中已经移除了QT4相关包,因此换用QT5,首先安装如下依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#With ElmerGUI,USE QT4
#sudo apt install libqt4-dev libqwt-dev
#With ElmerGUI,USE QT5
sudo apt install liboce-modeling-dev \
liboce-foundation-dev \
qtscript5-dev \
libqt5script5 \
libqt5widgets5 \
libqt5core5a \
libqt5gui5 \
libqt5help5 \
libqt5opengl5 \
libqt5opengl5-dev \
libqt5svg5-dev \
libvtk6.3 \
libvtk6-dev \
libvtk6.3-qt \
libvtk6-qt-dev

新建配置文件 elmer.cmake

1
vim ../elmer.cmake

输入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SET(WITH_MPI TRUE CACHE BOOL "")
SET(WITH_LUA TRUE CACHE BOOL "")
SET(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "")
SET(WITH_Mumps TRUE CACHE BOOL "")
SET(WITH_Hypre TRUE CACHE BOOL "")
SET(Hypre_INCLUDE_DIR "/usr/include/hypre" CACHE PATH "")
SET(WITH_ElmerIce TRUE CACHE BOOL "")

SET(ELMER_SOLVER_HOME "/usr/share/elmersolver" CACHE PATH "")

# ElmerGUI related.
SET(WITH_ELMERGUI TRUE CACHE BOOL "")
SET(WITH_OCC TRUE CACHE BOOL "")
SET(WITH_VTK FALSE CACHE BOOL "")
SET(WITH_PARAVIEW TRUE CACHE BOOL "")
SET(WITH_QWT FALSE CACHE BOOL "")
SET(WITH_QT5 TRUE CACHE BOOL "")
SET(QWT_LIBRARY "/usr/lib/libqwt-qt5.so.6" CACHE FILE "qwt library file name")

其中WITH_ElmerIce控制 ElmerICE模块编译,WITH_QT5使用QT5生成界面,QWT_LIBRARY用于手动指定依赖库。

最后,执行编译安装:

1
2
3
cmake -C ../elmer.cmake -DCMAKE_INSTALL_PREFIX=/path/to/inst ../repo
make
make install

运行ElmerGUI:

使用完成路径启动 ElmerGUI

1
/path/to/inst/bin/ElmerGUI

如有必要,可以将/path/to/dist/bin加入到系统PATH变量,之后可以直接使用 ElmerGUI命令启动软件

Ref:

https://github.com/ElmerCSC/elmerfem

https://www.youtube.com/watch?v=OZ2Lvk-hEkc&ab_channel=elmerfem