基于python的计算机辅助设计、曲线网格生成、线性和非线性分析及耦合多物理问题的有限元和边界元综合计算框架
Florence的Python项目详细描述
fastor:数据并行(simd)fem汇编程序
以下软件包是可选(但推荐)依赖项
- postmesh:高阶曲线网格生成器
- Pyevtk
- matplotlib
- 梅亚维
- scikit umfpack
- Pyamg
- psutil
- h5py
此外,建议在您的计算机上安装并配置优化的BLAS库,如OpenBLAS或MKL。
安装
简单的方法
使用pip
pip install Florence
要使pip安装工作,您需要安装fastor
。您可以通过
cd ~
git clone https://github.com/romeric/Fastor
mv Fastor/ /usr/local/include/Fastor/
在pip安装florence之前设置编译器也是一个很好的实践
export CC=/path/to/c/compiler
export CXX=/path/to/c++/compiler
从源构建
查看travis.yml
文件,了解有关安装Florence核心库的说明。首先安装cython、numpy和scipy。下载fastor
标题并将其放在默认位置/usr/local/include/fastor
cd ~
git clone https://github.com/romeric/Fastor
mv Fastor/ /usr/local/include/Fastor/
然后,安装Core Library非常简单
git clone https://github.com/romeric/florence
cd florence
python setup.py build
export PYTHONPATH="/path/to/florence:$PYTHONPATH"
这会造成很多-提前升级cython模块。例如,可以为setup.py
提供选项
python setup.py build BLAS=mkl CXX=/usr/local/bin/g++ CC=~/LLVM/clang
默认情况下,florence使用机器的所有cpu内核并行构建。要将生成过程限制为特定数量的核心,请使用np
标记,例如,对于串行生成,可以触发生成过程为
python setup.py build np=1
配置腮腺炎直接稀疏解算器
Florence可以自动切换到腮腺炎
稀疏直接解算器(如果可用)。要安装
腮腺炎
,最简单的方法是在MacOS上使用自制
,在Linux上使用linuxbrew
:
brew install mumps --without-mpi --with-openblas
git clone https://github.com/romeric/MUMPS.py
cd MUMPS.py
python setup.py build
python setup.py install
每当需要"解算器"时,只要打开一个新的终端窗口/选项卡并执行(这是linuxbrew的默认设置)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/linuxbrew/.linuxbrew/lib
配置PARDISO直接稀疏解算器
如果mkl
,pardiso
可用,则可以使用mkl
附带的直接稀疏解算器。anaconda和intel的python发行版都提供了这些。
如果安装了mkl
,则在编译期间,只要向setup.py
发出"blas=mkl
"标志,佛罗伦萨的低级fem汇编程序也会自动链接到它。
pip install Florence
0
我们通常不建议在您的路径中添加anaconda/bin
。因此,每当需要mkl
功能或pardiso
解算器时,只需打开一个新的终端窗口/选项卡并键入
pip install Florence
1
哲学
Florence遵循了Scipy的哲学,即为偏微分方程的有限元分析提供一个高水平的蟒蛇界面。它是一个轻量级的库,只依赖于最普遍的python包,即numpy、scipy和cython。然而,它的目标是在一系列现代建筑上提供高性能的数值计算。它的后端设计为可配置,用于插入新的解算器,如Petsc和Hypre的并行解算器。
文档
文档可在wiki页面中找到。此外,示例文件夹中还提供了一系列解释良好的示例,涵盖了佛罗伦萨的大部分功能。
为了快速体验佛罗伦萨,让我们以拉普拉斯为例。在立方体上使用四阶六面体拉格朗日形函数建立和求解拉普拉斯方程非常简单
pip install Florence
2