FEniCS安装教程官方网站:https://fenicsproject.org/download/
对于初入Linux的小白,可以根据本教程快速完成对fenics有限元框架的安装
第一步:创建root账户
## Ubuntu首次为root账户设置密码
sudo passwd root
然后会让你输入当前账户的密码,以及创建root账户的密码,并且确认。
第二步:Ubuntu更换国内镜像站的源,这里推荐阿里源或者中科大源
# 备份/etc/apt/sources.list文件
su
mv /etc/apt/sources.list /etc/apt/sourses.list.backup
此时,sources.list文件已经变为空白
#修改sources.list文件
sudo gedit /etc/apt/sources.list
此时会自动弹出空白的sources.list文件。选择下面两个源中的一个,粘贴进入sources.list中保存即可
#中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
#阿里云源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
如果遇到:无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
尝试如下命令:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
此时,已经换源完成。
第三步:安装anaconda
前往anaconda官网download页面:https://www.anaconda.com/distribution/
下载最新版的anaconda安装文件,Linux对应的文件后缀名是.sh,复制进入自己现账户的根目录(~/home/username/)
然后打开终端,在其中输入如下命令:
bash Anaconda3-2020.02-Linux-x86_64.sh
安装完成后在终端输入:
sudo gedit ~/.bashrc
在弹出的文件最后添加:
export PATH="/home/xupp/anaconda3/bin:$PATH"
保存文件,关闭文件后在终端输入
source ~/.bashrc
此时可以在终端中输入python检查是否安装成功,如果出现如下所示的anaconda字样说明安装成功
username@computername:~$ python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
如果不懂得如何安装,可以参考https://blog.csdn.net/qq_15192373/article/details/81091098
重启终端后,用户名前会出现(base)字样,这是因为anaconda的base环境自启动了,可以通过如下命令关闭base环境自启动
## 永远关闭base环境自启动
conda config --set auto_activate_base false
## 只关闭本次自启动的base环境(事实上可以关闭任何已经进入的环境)
conda deactivate
此时,anaconda安装完成。
第四步:安装FEniCS有限元框架主体(请看完这一部分再动手安装)
执行如下命令:
conda create -n fenicsproject -c conda-forge fenics
等待安装完成后,可以尝试启动该环境:
source activate fenicsproject
或
conda activate fenicsproject
每一次当你需要调用fenics时,都需要执行conda activate fenicsproject命令。
或者将fenics安装进入base环境(优先推荐)
直接将fenics框架安装进入base环境中可以免去许多麻烦,例如:
- spyder安装进其他环境报错的问题
- 应用conda install安装库函数时可能出现的不兼容问题(如下方第五步所讲)
采用如下命令
## 关闭任何已经打开的环境
conda deactivate
## 打开base环境
conda base activate
## base环境下安装fenics
conda install -c conda-forge fenics
第五步:安装fenics所需要的库函数
## 安装python的各种库函数 numpy matplotlib pandas等
conda install numpy
conda install matplotlib
conda install pandas
一般情况下,anaconda新创建的fenicsproject环境会内置numpy库函数,采用如下命令检查是否已经内置
conda list
如果内置则只需要安装matplotlib和pandas,如果应用上述命令报错说不兼容或有冲突的话,更改为如下方式安装
## 安装python的各种库函数 numpy matplotlib pandas等
pip install numpy
pip install matplotlib
pip install pandas
如果是将fenics直接安装进入base环境,那么则需要全部安装三个库函数。
第六步:安装paraview后处理工具
sudo apt install paraview
第七步:安装mshr包
注意此时应该在自己创建的fenicsproject环境中或者是在base环境中
## 进入anaconda3目录
cd anaconda3
## 从GitHub上克隆mshr包的源代码
git clone https://bitbucket.org/fenics-project/mshr
## 检查cmake版本
cmake --version
## 编译安装mshr包
cd mshr
mkdir build
cd build
cmake ..
make install
其中cmake ..这一步容易出现问题,假如出现projram killed error,不要灰心,重新执行cmake ..命令即可
如果不是在root用户下安装的anaconda,那么make install这一步一定会报错,报错大致如下
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libmshr.so.2019.2.0.dev0
CMake Error at cmake_install.cmake:60 (file):
file INSTALL cannot copy file
"/home/username/anaconda3/mshr/build/libmshr.so.2019.2.0.dev0" to
"/usr/local/lib/libmshr.so.2019.2.0.dev0".
这是因为make安装时需要管理员权限,可以采用在make install前面加sudo解决。
但是这也同时产生了问题,那就是sudo创建的文件,在本用户下是无法访问的,这也就导致build目录下的install_manifest.txt无法被访问,所以当调用的时候会报找不到模组的错误。解决方案如下(虽然看起来很低端,但是确实有效):
打开这个文件,将里面的内容复制出来到一个新的txt文件中,然后删除原本带锁的文件,将你新创建的文件重命名为install_manifest.txt即可,此时文件已经不带锁了,在命令行中输入如下命令:
python
from mshr import *
如果没有报错,说明mshr包已经安装完成。
第八步:安装Python IDE:jupyterLab / spyder
安装IDE时需要在激活的fenics环境中安装,否则即使安装成功也没有办法调用fenics
## 激活fenics环境
conda activate fenicsproject
## 安装jupyterLab
conda install jupyterLab
## 如果使用conda安装报错的话,尝试如下
pip install jupyterLab
## 安装完成后,尝试运行
jupyter lab
如果浏览器正常打开并且弹出jupyterlab的页面的话,说明安装成功
要注意jupyterlab可运行文件后缀名不是.py。如果需要运行Python程序,可能需要将代码复制到用jupyterlab创建的文件中。
这也是jupyterlab不如spyder的地方,但是题主目前安装Spyder进入fenics环境中仍然有问题,所以不在此处展示
如果是在base环境中,可以安装spyder,代码如下
## 激活base环境
conda activate base
## 安装spyder
conda install spyder
或者进入 anaconda-navigator在图形化界面安装。
最后,感谢章肖阳师兄的帮助!
祝参考了本文的同学们/老师们都能够顺利的完成fenics框架的安装。