对于2023年版本的Fenicsx0.7,官网(https://fenicsproject.org/download/)推荐使用conda命令安装集成好的Python包,因此我们的安装思路是先安装Anaconda,再按照官网步骤安装Fenics
1.安装Anaconda
(1)前往anaconda官网https://www.anaconda.com/distribution/下载最新版的anaconda安装文件,Linux对应的文件后缀名是.sh
(2)下载完成后进入安装文件所在目录(如:/home/hpc/Download),在该目录下打开终端(也可以用cd命令进入该目录)
输入以下命令,安装anaconda:
bash Anaconda3-2023.09-0-Linux-x86_64.sh
安装过程中根据个人需要输入yes或no,其余时候一直按enter即可完成安装。
(3)安装结束后要检查环境变量是否写入
输入以下命令,查看配置文件:
sudo gedit ~/.bashrc
检查文件末尾是否有anaconda的安装路径(如下图所示则直接进行第(4)步)
如果没有则手动添加(地址按需更改):
export PATH="/home/xxxx/anaconda3/bin:$PATH"
更改后保存 关闭文件,在终端输入以下命令使文件生效:
source ~/.bashrc
(4)验证Anaconda安装成功
终端输入conda,无报错,出现下图信息即安装成功
2.安装FeniCS
(1)在终端输入官网代码(请登陆官方网站 https://fenicsproject.org/download/查看最新版本的安装教程):
conda create -n fenicsx-env
conda activate fenicsx-env
conda install -c conda-forge fenics-dolfinx mpich pyvista
第一行代码:创建环境fenicsx-env(一般不会在base环境下装包,正如不会在C盘下安装软件一个道理)
第二行代码:激活(进入)环境fenicsx-env
第三行代码:指定从渠道conda-forge中获取fenics-dolfinx(Fenics正主)、mpich(高性能可移植的MPI实现,用于并行计算)和pyvista(用于3D数据可视化和网格处理的Python库)三个软件包
(2)安装中可能遇到的问题:
(a) 卡在conda solving environment这一步,大概率是conda版本过低,用以下代码解决:
conda update -n base conda
更新base环境下的conda,fenicsx-env环境的conda也会随之更新
(b) 报错
WARNING: No ICDs were found. Either,
- Install a conda package providing a OpenCL implementation (pocl, oclgrind, intel-compute-runtime, beignet) or
- Make your system-wide implementation visible by installing ocl-icd-system conda package.
应该是缺可视化的包,按提示随便选择一个安装即可,以防万一,小白博主按网上教程安装了以下三个包
conda install -c conda-forge pocl
conda install -c conda-forge oclgrind
conda install -c conda-forge ocl-icd-system
(3)安装fenics所需库函数,注意要在fenicsx-env环境下进行安装
终端输入以下代码:
## 安装python的各种库函数 numpy matplotlib pandas等
conda install numpy
conda install matplotlib
conda install pandas
(4)验证Fenics是否安装成功,根据官网的tutorial在终端执行第一个fenics程序https://jsdokken.com/dolfinx-tutorial/
首先在fenicsx-env环境下输入python:
然后在>>>后输入官网tutorial给的python代码:
import dolfinx
print(f"DOLFINx version: {dolfinx.__version__} based on GIT commit: {dolfinx.git_commit_hash} of https://github.com/FEniCS/dolfinx/")
回车得到以下输出:
FEniCSx0.7版本安装成功!(最后可输入exit()退出python~)
PS:Fenics本质是一个python包,如果跟博主一样之前没用过python这门语言,建议在入门fenics前先学习一下python的基础知识,下载pycharm(推荐)或者vscode编辑器便于后续调试python代码