有限元框架FEniCS安装笔记(ubuntu16.04、centos7、win10)
什么是有限元框架 FEniCS
以下这段摘⾃中⽂⼿册(粗读了⼀下貌似是机器翻译,极其不顺,有条件建议去看,作者已经提供免费下载)
FEniCS
项⽬是针对的⼀个研究和软件项⽬创建⾃动计算的数学⽅法和软件数学建模。这意味着创建简单,直观,⾼效,和⽤于求解偏微分⽅程的灵活软件 PDE
使⽤有限元法。 FEniCS 最初创建于 2003 年由研究⼈员合作开发世界各地的⼤学和研究机构数量。对于有关 FEniCS 的更多信息和FEniCS 的最新更新软件和本教程,请访问 FEniCS ⽹页 。 FEniCS
由许多构建块(软件组件)组成,⼀起形成 FEniCS 软件: DOLFIN,FFC , FIAT, UFL,
mshr,和其他⼏个。有关概述,请参阅 [FEniCS]。FENiCS ⽤户很少需要考虑这⼀点 FEniCS
的内部组织,但即使是临时⽤户也可以有时会遇到各种 FEniCS 组件的名称,我们简要地说列出 FEniCS 中的组件及其主要⾓⾊。
DOLFIN是 FEniCS 的计算⾼性能的 C ++ 后端。 DOLFIN
实现数据结构,如⽹格,函数空间和函数,计算密集型算法如有限元组合和⽹格细化,以及与线性代数解算器的接⼝和数据结构如PETSc。 DOLFIN
还实施了 FEniCS C ++ 和 Python 中的解决问题的环境。 FFC
是代码FEniCS(表单编译器)的⼀代引擎,负责从⾼级数学⽣成⾼效的 C ++ 代码抽象。 FIAT 是FEniCS
的有限元后端,负责⽣成有限元基函数, UFL 实现⽤户可以使⽤的抽象数学语⾔表 达变体问题, mshr 提供 FEniCS ⽹格⽣成功能。
典型安装⽅法
已经提供了详细的解释,根据我的实践,从源码编译这条路径⽐较难实现,特别是对于没有linux编程经验的⼈。docker是⽬前最简单的能够⽤上FEniCS的⽅法。
Docker 安装 FEniCS
总共分两步,
第⼀步——安装docker
docker有两个版本,不⽤纠结,我们只需要docker CE即可。docker的另⼀个版本是docker EE,在此我们并不需要EE这个版本。
win系统,没什么可说的,直接下载后缀为exe的安装包即可,
Linux系统需要注意:安装完毕后需要给你的⽤户使⽤docker的权限
sudo usermod -a -G docker $USER
第⼆步——运⾏官⽹提供的命令
Linux 系统
请运⾏如下命令
curl -s | bash
如果上述命令不可⾏,可以运⾏
docker run -ti -p 127.0.0.1:8000:8000 -v $(pwd):/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable:current
Win系统
直接运⾏
docker run -ti -p 127.0.0.1:8000:8000 -v D:/Work/fenics:/home/fenics/shared:z quay.io/fenicsproject/stable:current
亲测win10可以使⽤。
其中D:/Work/fenics是与运⾏fenics的docker共享的⽬录,在docker内,移动到/home/fenics/shared即可看到⾃⼰硬盘上D:/Work/fenics内的⽂件。
FEniCS 安装在 Ubuntu
官⽹提供了这种⽅法,⽅便使⽤Ubuntu的⽤户,在此仅是记录,本⼈并未实践。
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:fenics-packages/fenics
sudo apt-get update
sudo apt-get install --no-install-recommends fenics
sudo apt-get dist-upgrade
FEniCS 安装在 Anacondaflash控件怎么下载
官⽹提供了使⽤conda安装FEniCS的⽅法,本⼈并未尝试。
Anaconda是⼀个⽤python进⾏科学计算的打包程序,包含很多科学计算必须⽤的包,例如“numpy”“pandas”“scipy“等。
⾸先按照提⽰,安装好Anaconda
然后,执⾏下列命令:
conda create -n fenicsproject -c conda-forge fenics
source activate fenicsproject
注意,FEniCS Anaconda代码由社区维护,分布式⼆进制软件包还没有完整的功能集,特别是在稀疏直接求解器和输⼊/输出组件⽅⾯。
更新。 conda-forge上的2017.2.0版本发布了MUMPS直接求解器,但缺少SuperLU_dist和⽀持MPI的HDF5。
从源代码编译FEniCS
官⽹提供了如下命令来进⾏编译
git clone /fenics-project/fiat
git clone /fenics-project/instant
git clone /fenics-project/dijitso
git clone /fenics-project/ufl
git clone /fenics-project/ffc
git clone /fenics-project/dolfin
伽马函数表值
git clone /fenics-project/mshr
cd fiat    && pip3 install .
cd instant && pip3 install .
cd dijitso && pip3 install .
cd ufl    && pip3 install .
cd ffc    && pip3 install .
cd dolfin  && mkdir build && cd build && cmake .. && make install
cd mshr    && mkdir build && cd build && cmake .. && make install
centos7系统需要提前做好下⾯的事,才能编译源代码
配置python3
需要提前安装并配置好python3,可以参考进⾏安装,安装完毕后,将venv虚拟环境配置好。
此时激活虚拟环境后,需要⽤pip install .替换上述命令中的pip3 install .,因为虚拟环境是基于python3的,pip就是pip3,可以⽤ which pip进⾏查看。
如果是在国内进⾏安装,还可以使⽤tsinghua源进⾏加速。那么只需将pip install .替换为
pip install . -i pypi.tuna.tsinghua.edu/simple some-package
具体可参考
配置cmake
cmake是⾃动化编译⼯具,类似make,
个人主页模板百度云资源
下载 CMake:
wget /files/v3.11/cmake-3.11.
编译安装cmake
tar zxvf cmake-3.11. && cd cmake-3.11.0
./bootstrap --prefix=/usr/local
make -j$(nproc)
make install
验证安装是否成功
cmake --version
cmake version 3.11.0
CMake suite maintained and supported by Kitware (kitware/cmake).
配置boost
boost是⼀个强⼤的c++库,刚好FEniCS使⽤了其库,坑啊,官⽹完全没有提到这⼀点,都是实践中看到编译错误才知道的,看来官⽹并没有把编译安装看做是⼀个重要的安装途径。
header2元件封装图从官⽹下载boost: (选择你需要的版本)
wget cfhcable.dl.sourceforge/project/boost/boost/1.54.0/boost_1_54_
wget phoenixnap.dl.sourceforge/project/boost/boost/1.58.0/boost_1_58_
wget dl.bintray/boostorg/release/1.64.0/source/boost_1_64_
wget dl.bintray/boostorg/release/1.65.1/source/boost_1_65_
解压缩
tar -xzf boost_1_*
centos和ubuntu
cd boost_1_*
引导和安装
./bootstrap.sh--prefix=/opt/boost
./b2install--prefix=/opt/boost--with=all
之后,就可以顺利编译安装了。
集安装探索
集安装,最好是从源码安装,但是,源码安装的坑太多,难以实现,最好还是从docker想办法。
docker集的解决⽅案之⼀是shifter,提供了解决⽅案,但本⼈并未实践,仅供参考。
辅助发卡网源码总结
从官⽹的配置来看,似乎docker安装是最可⾏的⼀条路(⽂档最全),建议新⼿从docker开始接触FEniCS。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。