preCICE Wiki 关键内容翻译(不定期更新)

译者说明

最近在学习使用preCICE,为了督促自己学习并方便今后随时查阅相关信息,计划将preCICE的英文版Wiki翻译成中文。由于能力及精力有限,翻译内容并不能保证完全正确,仅供参考,因使用这份中文译稿带来的相关后果,恕不负责,请您谅解。

相关链接:

preCICE
https://github.com/precice
Home · precice/precice Wiki
https://github.com/precice/precice/wiki
Index of /sgs/precice/docs
https://ipvs.informatik.uni-stuttgart.de/sgs/precice/docs/

preCICE:A Coupling Library for Partitioned Multi-Physics Simulations on Massively Parallel Systems
基于大规模并行系统的分区多物理场模拟耦合库

1.Building preCICE


Building on Linux/macOS

Main Steps

1.安装所需相关组件(dependencies)并确保系统环境设置正确(例如:可打开新的终端)
其中,dependencies包含内容如下:


####Dependencies
***The easy way***
****
在Linux系统环境下(如Ubuntu 18.04)编译和使用preCICIE,可以通过以下操作快速完成相关软件的安装和系统环境的配置:
sudo apt update && \
sudo apt install build-essential scons libeigen3-dev libxml2-dev petsc-dev libboost-all-dev python-dev python-numpy 

同时需要添加环境变量到~/.bashrc文件(根据个人设置习惯不同修改指定路径):

# Eigen
export CPLUS_INCLUDE_PATH="/usr/include/eigen3:$CPLUS_INCLUDE_PATH"

# PETSc
export PETSC_DIR=/usr/lib/petscdir/3.7/
export PETSC_ARCH=x86_64-linux-gnu-real

C++ compiler(with support for C++11, GCC version>=5


编译preCICE需要支持C++11特性的C++编译器。
如果使用GCC编译器,至少需要版本5。
如果使用Debian/Ubuntu,build-essential包可以安装全部所需配置。

SCons


preCICE需要在最新版本的SCons环境下编译。
通常可以用包管理实现(例如:在Debian/Ubuntu中使用scons)。

Eigen


preCICE使用Eigen进行线性代数计算,推荐使用Eigen的最新版本。
选择1: 下载Eigen头文件
Eigen是由头文件组成的库,即他将被编译进入preCICE。你可以下载Eigen源文件并将Eigen/子文件加提取到preCICE的源程序文件路径src/
选择2:使用包管理器安装Eigen
使用包管理器安装Eigen(例如:libeigen3-dev)。
如果Eigen已经安装但是SCons无法找到,可以在编译时设置CPLUS_INCLUDE_PATH环境变量,即:

CPLUS_INCLUDE_PATH="/usr/include/eigen3" scons [...]

Boost


preCICE的许多功能需要Boost支持,至少需要1.60.0或更高的版本。虽然Boost 1.67或者更新的版本也能适配preCICE,但在安装使用yaml-cpp的程序接口时会比较复杂。
为了节省时间和内存,可以仅选择安装以下必要的库:
- boost_log
- boost_log_setup
- boost_thread
- boost_system
- boost_filesystem
- boost_program_options
- boost_unit_test_framework
上述库的正常使用依赖于其他Boost库,应确保这些库也能正确安装。这些仅含头文件的Boost库也需要:vmdgeometrysignals2
选择1:从包管理器安装Boost


如果使用16.10版本及以上的Ubuntu,可以通过以下操作完成安装:

sudo apt update && \
sudo apt install libboost-dev libboost-log-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-test-dev

如果由于某些原因使得Boost自身解析不正确,尝试安装编译修正:“`libboost-all-dev”’。
libxml2


preCICE使用libxml2解析配置文件,推荐使用最新的版本。很有可能libxml2已经安装过,为了确保正确编译preCICE,你需要升级版本。(在Debian/Ubuntu 中:libxml2
PETS(可选)


如果你需要使用并行RBF映射(parallel RBF mappings),则要安装PETSc。如果不需要用这些功能,可以在SCons中设置petsc=off
推荐使用3.6.及以上的版本。
选择1:使用包管理器安装PETSc
在Debian/Ubuntu中安装libpetsc3.6petsc-dev。添加环境变量PETSC_DIRPETSC_ARCH到路径~/.bashrc。例如:

export PETSC_DIR=/usr/lib/petscdir/3.6.2/
export PETSC_ARCH=x86_64-linux-gnu-real

Python(可选)


如果你需要使用Python操作界面(仅用于少数应用),则要安装Python。如果不需要用这些功能,可以在SCons中设置python=off
SCons应该会自动安装Python,然而为了使用Python界面,还需要安装NumPy和用于Python和NumPy的头文件。在Debian/Ubuntu中,安装python-numpypython-dev
注:可以自定义Python和NumPy的工作路径,尽管这不知必须的。即:

export PRECICE_PYTHON_LIB="python2.7"
export PRECICE_PYTHON_INC_PATH="/usr/include/python2.7/"
export PRECICE_NUMPY_INC_PATH="/usr/include/python2.7/numpy/"

MPI(可选)


在没有MPI的情况下,也可编译preCICE,以防与某个求解程序的兼容性问题(例如:使用二进制分布式MPI版本的封闭源码求解器,或者在Windows上运行)。要做到这一点,在使用SCons时指定mpi=off。在这种情况下,您可以使用TCP、IP协议。然而,这可能会导致性能下降,因此,如果不是必须,不推荐这样做。
请注意,OpenMPI并不完全支持MPI端口功能。如果你链接到OpenMPI,你不能使用MPI来进行preCICE库的m2n通信。另外,MPI端口的测试将会失败。请在测试故障诊断中阅读更多内容。
请记住,PETSc应该已经安装了MPI。确保PETSc、preCICE和你的求解器都是用同一个MPI版本编译的!

2.下载并解压最新版的preCICE(在下述语句中将x.y.z替换为实际的版本号):

wget https://github.com/precice/precice/archive/vx.y.z.tar.gz
tar -xzvf vx.y.z.tar.gz
cd precice-x.y.z
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值