COOLFluiD安装教程

  • COOLFluiD介绍
  • 1. 下载COOLFluiD
  • 2. 安装依赖项
    • 2.1 通过yum安装依赖项
    • 2.2 通过脚本安装依赖项
    • 2.3 通过手动方式安装依赖项
      • 2.3.1 安装BLAS
      • 2.3.2 安装CBLAS
      • 2.3.3 安装Mutation++
      • 2.3.4 安装paralution
      • 2.3.5 安装CUDA
  • 3. 配置编译环境
  • 4. 编译安装
  • 5. 运行算例
    • 5.1 建立软链接
    • 5.2 运行算例
    • 5.3 输出
  • 6. 附录

本文档用于说明开源软件COOLFluiD的安装过程,操作系统为CentOS7(Ubuntu需要对源码进行改动)。
阅读本文时应参考官方给出的安装说明:COOLFluiD-HOWTO

COOLFluiD介绍


COOLFluiD(面向对象的流体动力学计算库,Computational Object-Oriented Libraries for Fluid Dynamics)是一个基于组件的框架,用于科学高性能计算、CFD和多物理应用,最初由von Karman流体动力学研究所开发。
COOLFluiD是一个开放式的协作平台,提供了一套功能强大的工具:

  • 用现有的数值求解器解决简单算例或复杂应用;

  • 使用任意数据结构构建全新的或自定义的模型/求解器;

  • 容易定义可重用组件(例如算法、模型、BC、包装器);

  • 建立虚拟原型,容易测试新的算法或模型;

  • 接口或耦合其他库/求解程序,以处理更复杂的问题;

  • 大尺度的模拟。

COOLFluiD平台是一个开源平台,代码可以从Github下载。

1. 下载COOLFluiD

有两种方式可以获得Github上的COOLFluiD源码:

第一种方式是使用版本控制软Subversion,通过命令:
svn co https://github.com/andrealani/COOLFluiD/trunk YOUR_COOLFluiD
可以下载当前版本的COOLFluiD到YOUR_COOLFluiD文件夹,这里的YOUR_COOLFluiD指目标文件夹的绝对地址。

实际上,除trunk以外,还可以选择从tagbranches目录下载COOLFluiD,但需要更大的存储空间,同时,branches文件夹中的COOLFluiD版本可能是被其他使用者修改过的。

第二种方式是直接通过浏览器访问GitHub,并下载所需的*.tar.gz或*.zip文件。

2. 安装依赖项

COOLFluiD基于大量现有的计算库,这些依赖项可以在prepare.pl文件中找到,安装主要通过三种方式进行:

2.1 通过yum安装依赖项

epel
bzip2
wget
blas
lapack
m4
autoconf
libtool
openssl
zlib
cppunit
google-perftools
valgrind
cgnslib
ccache
distcc

以上依赖项可以通过yum(Yellow dog Updater, Modified)软件包管理器进行安装,其安装命令如下:
sudo yum install DEPENDENCY_NAME*
其中DEPENDENCY_NAME为上方列出的依赖项名称,注意这里的 * 不可省略。
epel(EPEL,Extra Packages for Enterprise Linux)EPEL是由Fedora提供的第三方源,cgnslib,discc等库需要通过该源进行安装。
安装完成后,将库文件位置添加到环境变量(以64位CentOS7为例):

export PATH=/usr/lib64:$PATH

2.2 通过脚本安装依赖项

COOLFluiD在YOUR_COOLFluiD/tools/script文件夹下提供了用于安装依赖项的脚本install-coolfluid-deps.pl,通过在脚本中将开关设置为“开”(‘off’->‘on’),并运行脚本,依赖项将被安装到指定位置。

boost (版本 <= 1.66)
cmake (2.8.11 <= 版本 < 3)
curl
MPI (openmpi, mpich, mvapich)
parmetis (版本: 3.1,4.0.3)
petsc (版本:3.3,3.4.2,3.6.3,3.7.3,3.7.6,3.9.0)
trilinos

以上依赖项应通过脚本安装。部分依赖项指定了版本,这意味着错误版本的依赖项可能影响COOLFluiD的安装与运行,以cmake为例,安装2.8以下版本或3以上版本可能导致编译错误。

一个可行的版本配置:

boost (版本:1.66)
cmake (版本:2.8.11.2)
curl (版本:7.19.7)
openmpi (版本:1.6.5)
parmetis (版本:4.0.3)
petsc (版本:3.9.3)
trilinos (版本:10.10.2)

应注意,脚本中可以安装的依赖项远大于以上提到的7项,安装依赖项前应首先确保YOUR_COOLFluiD/packages文件夹中有该软件安装包(例如:若通过svn下载COOLFluiD,YOUR_COOLFluiD/package文件夹中将缺少boost安装包),并且以规范的方式命名(例如:后缀为.tgz 的文件将不会被脚本识别,重命名为.tar.gz即可)。

完成准备工作后,进入YOUR_COOLFluiD/tools/script文件夹,找到脚本install-coolfluid-deps.pl,将需要安装的依赖项对应的default参数由off改为on,保存并运行命令:
./install-coolfluid-deps.pl --install-dir=/INSTALL_DIR --install-mpi-dir=/ INSTALL_DIR --tmp-dir=/ INSTALL_DIR /tmp
即可通过脚本安装以上依赖项,其中INSTALL_DIR为安装文件夹的绝对路径。

安装完成后,将INSTALL_DIR/lib添加到环境变量

export LIBRARY_PATH=/INSTALL_DIR/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/INSTALL_DIR/lib:$LD_LIBRARY_PATH

安装Petsc的过程中,应注意连接网络,但f2cblaslapack-3.4.2.q3.tar.gz仍有可能下载失败,提前将安装包放到YOUR_COOLFluiD/packages文件夹可以解决此问题。

2.3 通过手动方式安装依赖项

部分依赖项通过yum和脚本均不能正确安装,需要手动安装并设置文件路径。

blas
cblas
mutation++
paralution
tvmet

blas可通过yum命令安装,这里手动安装blas是为了给cblas提供文件。
通过运行prepare.pl脚本,可以看到依赖项是否被正确检索。

2.3.1 安装BLAS

首先下载源码,解压并进入软件根目录。
编译:
gfortran -c -O3 *.f # 编译所有的 .f 文件,生成 .o 文件
ar rv libblas.a *.o # 链接所有的 .o 文件,生成 .a 文件
将文件夹绝对路径写入prepare.pl文件的对应位置,或记录在coolfluild.conf中。

2.3.2 安装CBLAS

下载源码,解压并进入软件根目录。
根据平台类型,将对应的Makeflie.XX重命名为Makeflie.in(对于CentOS平台,选择Makeflie.LINUX)。
复制BLAS库文件到软件根目录:(可手动复制)
cp ../BLAS-3.8.0/libblas.a testing # 将编译成功的 libblas.a 复制到 CBLAS目录下的testing子目录
编译:
make
重命名:
sudo mv lib/cblas_LINUX.a lib/libcblas.a
将文件夹绝对路径写入prepare.pl文件的对应位置,或记录在coolfluild.conf中。
#####2.3.3 安装LAPACK
LAPACK对于Trilinos的运行来说是必要的,尽管可以通过yum命令安装,但配置编译环境时脚本无法正确检索,故仍需手动安装LAPACK。
首先下载源码并解压,进入软件根目录。
对于gfortran编译器,LAPACK-3.8.0需要对安装包做以下调整:
根目录下默认的make.inc文件为gfortran编译,故无需更换,但其中部分语句需要修改:

FORTRAN = gfortranOPTS = -funroll-all-loops -O3 -msse2 -mfpmath=sse -ftree-vectorize -gDRVOPTS = $(OPTS)NOOPT =LOADER = gfortranLOADOPTS =

将对应的编译选项修改为如上形式(注意,对于旧版的LAPACK,需要从INSTALL文件夹复制make.inc.gfortran到软件根目录,并重命名为make.inc)。
然后修改Makefile,将

lib: lapacklib tmglib#lib: blaslib lapacklib tmglib

修改为:

#lib: lapacklib tmgliblib: blaslib lapacklib tmglib

即编译LAPACK时编译BLAS库,由于yum安装的BLAS库与LAPACK可能版本不符,建议直接在LAPACK中编译对应的BLAS。

为防止吐核,运行命令:
ulimit -s 102400
改变堆栈大小。

开始编译:
make

编译结束后,可并编译LAPACKE:
cd LAPACKE
make
cp include/*.h /usr/include
将头文件复制到系统目录。

将文件夹(脚本中默认的文件夹名称为Tribuild)的绝对路径写入prepare.pl文件的对应位置,或记录在coolfluild.conf中。

2.3.3 安装Mutation++

Github上可以获得最新版本的Mutation++(mutationpp),访问https://github.com/mutationpp/Mutationpp 即可下载所需的Mutation++版本。根据官方说法,Mutation++的旧稳定版本已过时,且无法使用当前版本的COOLFluiD进行编译,故下载时应在branches中选择恰当版本的源码。

Mutation++的编译安装为标准的cmake方式,将源码解压到mutation++文件夹,并进入该文件夹,新建文件夹build并进入:
mkdir build
cd build
执行cmake:
cmake ..
编译(可并行):
makemake -jN
安装:
make install
将文件夹绝对路径写入prepare.pl文件的对应位置,或记录在coolfluild.conf中。

注意:
如果选择使用旧版本的Mutationpp,则需要进行在YOURCOOLFLUID/plugins/MutationppI文件夹下的MutationLibrarypp.cxx中进行以下修改:
m_gasMixture->mixtureHMass(T0)替换为m_gasMixture->mixtureHMass()
m_gasMixture->electricConductivity()替换为m_gasMixture->sigma()

最后,为了让求解器能够正确地检索到数据文件的位置,需要添加环境变量:

export MPP_DATA_DIRECTORY=YOUR_DIR/mutation++/dataexport PATH=YOUR_DIR/mutation++/install/bin:$PATHexport LD_LIBRARY_PATH=YOUR_DIR/mutation++/install/lib:$LD_LIBRARY_PATH

MPP_DATA_DIRECTORY文件夹的位置必须正确。

2.3.4 安装paralution

paralution官网下载地址:http://www.paralution.com/downloads/paralution-1.1.0.tar.gz
下载源码并解压,进入软件根目录。
创建build文件夹并进入:
mkdir build
cd build
编译:
cmake..
make
将文件夹绝对路径写入prepare.pl文件的对应位置,或记录在coolfluild.conf中。
#####2.3.7 安装tvmet
下载tvmet源码并解压,进入软件根目录。
编译:
./configure
make
make check
安装:
sudo make install
将文件夹绝对路径写入prepare.pl文件的对应位置,或记录在coolfluild.conf中。

2.3.5 安装CUDA

需要注意,虚拟机是不能安装CUDA的,因为没有显卡。
在实机上安装时,需要注意显卡和驱动的类型。

3. 配置编译环境

用于配置COOLFluiD编译环境的脚本为prepare.pl,位于软件根目录下,同时配置文件coolfluid.conf的样例位于YOUR_COOLFluiD/tools/conf。需要选择适当的coolfluid.conf.*文件复制到软件根目录,重命名为coolfluid.conf并修改文件中的路径,使之与以上安装的依赖项信息吻合。

应注意,coolfluid.conf文件中记录的信息优先级高于prepare.pl文件。

COOLFluiD可以安装的库超过100个,全部安装这些库需要大概15Gb的空间,但运行一个算例通常不需要安装所有的库。
COOLFluiD算例文件的后缀为*.CFcase,文件中记录了算例运行的相关配置,注意其中的Simulator.Modules.Libs项,该项列出了运行此算例所需的库,在正确安装全部该项列出的所有库后,算例方可运行。

将语句lib_LIBRARY_NAME = on写入coolfluid.conf可安装相应的库,其中LIBRARY_NAME为库的名称。

确保prepare.pl文件与coolfluid.conf文件中的信息正确,然后运行命令:
./prepare.pl --build=optim
即可开始配置编译环境。

通过脚本prepare.pl的输出信息,可以判断各依赖项是否被正确检索。
以下图为例:

图中[1]表示依赖项被正确检索,[0]则表示没有找到该项,可能是安装错误或prepare.plcoolfluid.conf文件中路径错误。

应注意,若输出信息与理想不符,重新运行脚本prepare.pl之前,应删除optim文件夹,否则可能导致错误。

4. 编译安装

若运行prepare.pl脚本的输出信息符合要求,即可开始编译COOLFluiD。
进入文件夹BASEBUILD_DIR/build/optim,此处BASEBUILD_DIR表示coolfluid.conf文件中的构建文件夹。
编译:
makemake -jN(可并行编译)

若中途报错或退出,需要删除optim文件夹并重新运行prepare.pl脚本进行配置。
若编译成功:(如下图)

则可以安装:
sudo make install
安装成功后看到BASEBUILD_DIR/build/optim/apps/Solver文件夹下生成了coolfluid-solver(可执行)和coolfluid-solver.xml

5. 运行算例

5.1 建立软链接

算例文件(*.CFcase)所在的文件夹称为TEST_DIR,为了运行算例,需要在TEST_DIR下建立coolfluid-solver的软链接。
ln -sf BASEBUILDDIR/build/optim/apps/Solver/coolfluid-solver* .

5.2 运行算例

软链接建立后,在TEST_DIR目录下运行命令:
./coolfluid-solver --scase ./TEST_NAME.CFcase
即可运行算例,其中TEST_NAME为算例文件的名称。
若需要并行运算,则使用命令:
mpirun -np N ./coolfluid-solver --scase ./TEST_NAME.CFcase
其中N为并行的线程数。

5.3 输出

这里以算例jets2DFluctSplit.CFcase
(位于YOUR_COOLFluiD/plugins/NavierStokes/testcases/Jets2D/jets2DFluctSplit.CFcase )为例,下面是运行命令:
./coolfluid-solver --scase ./jets2DFluctSplit.CFcase后终端的输出结果。
输出的jets2D-sol.plt文件:

终端输出:

[yangsr@localhost Jets2D]$ ./coolfluid-solver --scase ./jets2DFluctSplit.CFcase
-------------------------------------------------------------
COOLFluiD Environment
-------------------------------------------------------------
COOLFluiD version    : 2013.9 Kernel 2.5.0 ( r, MPI, OPTIM )
Parallel Environment : MPI
Build system         : CMake 2.8.12
Build OS             : Linux-3.10.0-957.el7.x86_64 [64bits]
Build processor      : x86_64
-------------------------------------------------------------
-------------------------------------------------------------
Creating Simulation
-------------------------------------------------------------
Configuration of Simulator
-------------------------------------------------------------
-------------------------------------------------------------
-------------------------------------------------------------
Loading external modules
ModuleLoader: Module libFluctSplitSystem is already loaded.
Initiating environment of loaded modules
-------------------------------------------------------------
-------------------------------------------------------------
#
###### STARTING SUBSYSTEM [SubSystem] ######
#
-------------------------------------------------------------
Building SubSystem
Name : SubSystem
Type : StandardSubSystem
-------------------------------------------------------------
#
###### CONFIG PHASE #################
#
-------------------------------------------------------------
Setting Namespace : Default
MeshData          : Default
PhysicalModelName : Euler2D
PhysicalModelType : Euler2D
SubSysStatus      : SubSystemStatus
-------------------------------------------------------------
-------------------------------------------------------------
Creating MeshCreator : CFmeshFileReader
-------------------------------------------------------------
-------------------------------------------------------------
Creating MeshAdapterMethod : Null1
-------------------------------------------------------------
-------------------------------------------------------------
Creating CouplerMethod : Null2
-------------------------------------------------------------
-------------------------------------------------------------
Creating SpaceMethod : FluctuationSplit
FluctuationSplit: Using Update VarSet: Cons
FluctuationSplit: Using Solution VarSet: Cons
FluctuationSplit: Using Diffusive VarSet: Null
FluctuationSplit: Using Distribution VarSet: Char
FluctuationSplit: Using Linearizer: Euler2DLinearRoe
FluctuationSplit: Using ScalarSplitter: ScalarPSI
FluctuationSplit: Using SystemSplitter: SysB
FluctuationSplit: Using JacobianScalarSplitter: Null
FluctuationSplit: Using JacobianSystemSplitter: Null
FluctuationSplit: Using FluctuationSplitStrategy: RDMulti
FluctuationSplit: Using ArtificialDisffusionStrategy: Null
FluctuationSplit: Using MatrixTransformer Solution to Distribution Vars: Euler2DConsToCharInRef
FluctuationSplit: Using MatrixTransformer Distribution to Solution Vars: Euler2DCharToConsInRef
FluctuationSplit: Using MatrixTransformer Linear to Distribution Vars: Euler2DRoeToCharInRef
FluctuationSplit: Using MatrixTransformer Solution to Linear In Update Vars: Euler2DConsToRoeInCons
FluctuationSplit: Using MatrixTransformer Solution to Linear Vars: Identity
FluctuationSplit: Using Transformer Update to Linear Vars: Euler2DConsToRoe
FluctuationSplit: Using Transformer Update to Solution Vars: Identity
FluctuationSplit: Using Integrator Quadrature: GaussLegendre
FluctuationSplit: Using Integrator Order: P1
P0 => FluctuationSplit: Using ComputeSourceTerm:  NullP0 => FluctuationSplit: Using SourceTermSplitter:  NullINIT type = InitState
INIT name = InField
INIT type = InitState
INIT name = MachStep
BC type = SuperInlet
BC name = Jet1
-------------------------------------------------------------
-------------------------------------------------------------
Creating ErrorEstimatorMethod : Null4
-------------------------------------------------------------
-------------------------------------------------------------
Creating LinearSystemSolver : Null5
-------------------------------------------------------------
-------------------------------------------------------------
Creating ConvergenceMethod : FwdEuler
-------------------------------------------------------------
-------------------------------------------------------------
Creating DataProcessing : Null7
-------------------------------------------------------------
-------------------------------------------------------------
Creating DataProcessing : Null8
-------------------------------------------------------------
-------------------------------------------------------------
Creating OutputFormatter : CFmesh
-------------------------------------------------------------
-------------------------------------------------------------
Creating OutputFormatter : Tecplot
-------------------------------------------------------------
#
###### SOCKETS PLUG PHASE ###########
#
#
###### BUILD PHASE ##################
#
-------------------------------------------------------------
Setting up all PhysicalModel's-------------------------------------------------------------
-------------------------------------------------------------
Setting up Physical Model [Euler2D]
-------------------------------------------------------------
-------------------------------------------------------------
Setting up all MeshCreator's
-------------------------------------------------------------
-------------------------------------------------------------
Building MeshData's
-------------------------------------------------------------
-------------------------------------------------------------
MeshCreator [CFmeshFileReader] Generate or Read MeshMemory usage before building mesh: 8.64453 MBReading THOR2CFmesh took: 0.002174s
Conversion THOR2CFmesh took: 0.003324s
Original NbEquations = 4
Final NbEquations    = 4
Memory Usage before assembling connectivity: 8.67188 MB
ParCFmeshFileReader::moveElementData() => start memory usage: 8.85547 MB
ParCFmeshFileReader::buildOverlapLayers()0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
ParCFmeshFileReader::moveElementData() => end memory usage: 9.34375 MB0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
Reading data from jets2D.CFmesh took 0.010552s
Memory Usage after mesh reading: 9.47266 MB
Building TRS: InnerCells
TRS Name: SuperOutlet
Building TRS: SuperOutlet
Created Boundary TRS 'SuperOutlet' with 120 faces
TRS Name: SuperInlet
Building TRS: SuperInlet
Created Boundary TRS 'SuperInlet' with 40 faces
Building MeshData from /home/yangsr/software/plugins/NavierStokes/testcases/Jets2D/jets2D.CFmesh took 0.012939s
Building the mesh took: 0.013361sMemory usage after building mesh: 9.47266 MB
-------------------------------------------------------------
-------------------------------------------------------------
MeshCreator [CFmeshFileReader] Building Mesh Data
-------------------------------------------------------------
Building TRS info for MeshData in Namespace Default
#
###### SETUP PHASE ##################
#
-------------------------------------------------------------
Setting up DataPreProcessing's
-------------------------------------------------------------
Setting up MeshAdapterMethod's
-------------------------------------------------------------
Setting up ConvergenceMethod's
-------------------------------------------------------------
Setting up LinearSystemSolver's
-------------------------------------------------------------
Setting up SpaceMethod's
WARNING: No ContourIntegratorImpl found for the Interpolator: LagrangeLineP1 - Using NullIntegrator.
-------------------------------------------------------------
Setting up ErrorEstimatorMethod's
-------------------------------------------------------------
Setting up DataPostProcessing's
-------------------------------------------------------------
Setting up CouplerMethod's
-------------------------------------------------------------
CouplerMethod's setup
-------------------------------------------------------------
CouplerMethod's write interface coordinates
-------------------------------------------------------------
CouplerMethod's read interface coordinates
-------------------------------------------------------------
CouplerMethod's match mesh and write
-------------------------------------------------------------
CouplerMethod's read match mesh
-------------------------------------------------------------
Setting up OutputFormatter's-------------------------------------------------------------
Initializing solution
-------------------------------------------------------------
Initializing solution of method [FluctuationSplit]
-------------------------------------------------------------
Writing initial solution ...
ParCFmeshFileWriter::writeToFile() => IO rank is 0
Element written
Nodes written
States written
Writing solution to: ./jets2D-sol.CFmesh
Writing took 0.039231s
Writing solution to ./jets2D-sol.plt
Writing took 0.011032s
-------------------------------------------------------------
#
###### RUN PHASE ####################
#
Iter: 20      Res: [    -3.7835564 -5.6828002 -6.6841785 -7.7569064 ]  CFL: 1        CPUTime: 0.088389 Mem: 9.88281 MBIter: 40      Res: [    -3.8473452 -5.7512014 -6.6598171 -7.8464082 ]  CFL: 1        CPUTime: 0.224883 Mem: 9.88281 MBIter: 60      Res: [    -4.1881213 -6.2767579 -6.808248 -8.395345 ]  CFL: 1        CPUTime: 0.350268 Mem: 9.88281 MBIter: 80      Res: [    -4.3602481 -6.4704475 -7.0766412 -8.5838773 ]  CFL: 1        CPUTime: 0.478998 Mem: 9.88281 MBIter: 100     Res: [    -4.7023077 -6.8215636 -7.3817664 -8.9158359 ]  CFL: 1        CPUTime: 0.608228 Mem: 9.88281 MBParCFmeshFileWriter::writeToFile() => IO rank is 0
Nodes written
States written
Writing solution to: ./jets2D-sol.CFmesh
Writing took 0.016944s
Writing solution to ./jets2D-sol.plt
Writing took 0.007789s
Iter: 120     Res: [    -4.8666441 -6.9438432 -7.4321051 -9.0206404 ]  CFL: 1        CPUTime: 0.718929 Mem: 9.88281 MBIter: 140     Res: [    -5.05731 -7.1680797 -7.5732153 -9.2358123 ]  CFL: 1        CPUTime: 0.809654 Mem: 9.88281 MBIter: 160     Res: [    -5.4613146 -7.6086338 -7.9982795 -9.6694351 ]  CFL: 1        CPUTime: 0.916393 Mem: 9.88281 MBIter: 180     Res: [    -6.0417336 -8.2040166 -8.5826079 -10.260566 ]  CFL: 1        CPUTime: 1.019199 Mem: 9.88281 MBIter: 200     Res: [    -6.7894815 -8.9533068 -9.3326214 -11.007785 ]  CFL: 1        CPUTime: 1.136459 Mem: 9.88281 MBParCFmeshFileWriter::writeToFile() => IO rank is 0
Nodes written
States written
Writing solution to: ./jets2D-sol.CFmesh
Writing took 0.01859s
Writing solution to ./jets2D-sol.plt
Writing took 0.00638s
Iter: 220     Res: [    -7.6702499 -9.8353329 -10.209531 -11.889413 ]  CFL: 1        CPUTime: 1.263554 Mem: 9.88281 MBIter: 240     Res: [    -8.6237992 -10.790782 -11.164604 -12.845767 ]  CFL: 1        CPUTime: 1.3909   Mem: 9.88281 MBIter: 260     Res: [    -9.5779296 -11.697274 -12.145081 -13.79724 ]  CFL: 1        CPUTime: 1.505342 Mem: 9.88281 MBIter: 280     Res: [    -9.9301191 -11.891791 -12.944978 -14.14156 ]  CFL: 1        CPUTime: 1.606789 Mem: 9.88281 MBSubSystem WallTime: 1.8797s
#
###### UNSETUP PHASE ################
#
Total Number Iter: 288 Reached Residual: -10.0011 and took: 1.64402 sec
ParCFmeshFileWriter::writeToFile() => IO rank is 0
Nodes written
States written
Writing solution to: ./jets2D-sol.CFmesh
Writing took 0.019522s
Writing solution to ./jets2D-sol.plt
Writing took 0.007585s
-------------------------------------------------------------
#
###### SOCKETS UNPLUG PHASE #########
#
#
###### DESTRUCTION SUBSYSTEM PHASE #########
#
-------------------------------------------------------------
COOLFluiD Environment Terminated
-------------------------------------------------------------

6. 附录

1.如果使用svn下载COOLFluiD时下载中断的话,需要先运行命令svn cleanup,再继续下载;如果svn版本与所运行脚本不一致,可svn update
2.使用脚本安装的依赖项有可能不能正确安装,重新运行脚本有可能解决这一问题,但需要注意协调各依赖项之间的版本关系,注意不要通过yum安装需使用脚本安装的依赖项;手动安装的依赖项可能需要设置环境变量。
3.由于需要大量空间且存在编译失败的风险,在完整安装所有依赖项之前,应该避免在prepare.pl或者coolfluid.conf文件中设置allactive = 1
4.将INSTALL_DIR/lib添加到环境变量的步骤是必不可少的,否则可能导致运行coolfluid-solver时缺少libmpi_cxx.so.1libboost_thread.so等文件。
5.可编译的COOLFluiD库名单:

ATDModel
AeroCoef
AeroCoefDG
AeroCoefFR
AeroCoefFRNEQ
AeroCoefFS
AeroCoefFVM
AeroCoefFVMNEQ
AeroCoefSpectralFD
AeroCoefSpectralFV
AnalyticalEE
AnalyticalModel
ArcJet
ArcJetSALTE
BackwardEuler
BackwardEulerMHD
Burgers
CFmeshCellSplitter
CFmeshExtruder
CFmeshFileReader
CFmeshFileWriter
CGNS2CFmesh
CH4
Catalycity
Common
ConcurrentCoupler
Config
DataProcessingHeat
DiscontGalerkin
Dpl2CFmesh
EmptyConvergenceMethod
EmptySpaceMethod
Environment
ExplicitFilters
FAST2CFmesh
FiniteElement
FiniteElementChemistry
FiniteElementHeat
FiniteElementStructMech
FiniteElementStructMechHeat
FiniteVolume
FiniteVolumeAdvectionDiffusion
FiniteVolumeArcJet
FiniteVolumeCUDA
FiniteVolumeCUDAParalution
FiniteVolumeCombustion
FiniteVolumeGReKO
FiniteVolumeICP
FiniteVolumeICPNEQ
FiniteVolumeKOmega
FiniteVolumeLES
FiniteVolumeLTE
FiniteVolumeMHD
FiniteVolumeMaxwell
FiniteVolumeMultiFluidMHD
FiniteVolumeNEQ
FiniteVolumeNavierStokes
FiniteVolumePoisson
FiniteVolumeSA
FiniteVolumeTU
FluctSplit
FluctSplitAdvectionDiffusion
FluctSplitCUDA
FluctSplitHO
FluctSplitHONavierStokes
FluctSplitLES
FluctSplitLTE
FluctSplitLinEuler
FluctSplitMHD
FluctSplitMeta
FluctSplitNEQ
FluctSplitNavierStokes
FluctSplitPoisson
FluctSplitRANS
FluctSplitRotationDiffusion
FluctSplitScalar
FluctSplitSpaceTime
FluctSplitSpaceTimeNavierStokes
FluctSplitSystem
FluxReconstructionCUDA
FluxReconstructionKOmega
FluxReconstructionMethod
FluxReconstructionMultiFluidMHD
FluxReconstructionNEQ
FluxReconstructionNavierStokes
FluxReconstructionSA
ForwardEuler
Framework
GETModel
GReKO
Gambit2CFmesh
Gmsh2CFmesh
Heat
HessianEE
ICP
ICPNEQ
KOmega
LES
LESDataProcessing
LESvki
LTE
LUSGSMethod
LagrangianSolver
LinEuler
LinearAdv
LinearAdvSys
MHD
MarcoTest
MathTools
MatrixStabilityMethodWriter
Maxwell
MeshAdapterSpringAnalogy
MeshFEMMove
MeshGenerator1D
MeshLaplacianSmoothing
MeshRigidMove
MeshTools
MeshToolsFVM
MultiFluidMHD
Mutation2I
Mutation2OLDI
MutationI
MutationppI
NEQ
NEQKOmega
NavierStokes
NewtonMethod
NewtonMethodFVM
NewtonMethodFVMNavierStokes
NewtonMethodMHD
NitrogenNASA
NitrogenNASAI
NonLinearAdv
ParMetisBalancer
ParaViewWriter
ParadeI
ParalutionI
Pardiso
PetscI
PhysicalModelDummy
PlatoI
Poisson
RKRD
RadiativeTransfer
RemeshMeandr
RotationAdv
RotationAdvSys
RungeKutta
RungeKutta2
RungeKuttaLS
SA
SALTE
SAMGLSS
ShapeFunctions
SimpleGlobalMeshAdapter
SpectralFD
SpectralFDLES
SpectralFDLinEuler
SpectralFDNavierStokes
SpectralFV
SpectralFVNavierStokes
StructMech
StructMechHeat
SubSystemCoupler
SubSystemCouplerHeat
SubSystemCouplerNavierStokes
THOR2CFmesh
Tecplot2CFmesh
TecplotWriter
TecplotWriterNavierStokes
Trilinos

本文的写作目的在于方便和促进COOLFluiD平台使用者的学习和交流,转载请注明出处。

COOLFluiD安装教程相关推荐

  1. 【网站汇总】安装教程系列

    目录 1.Anaconda 2.Pytorch 3.Tensorflow 4.LaTeX 5.博客搭建 1.Anaconda [CV]Anaconda 安装教程_Fannnnf的博客-CSDN博客 2 ...

  2. oracle 11g完全安装教程(CentOS)

    oracle下载链接:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html oracle ...

  3. vs安装一直在提取文件_Visual Studio 2019下载及安装教程

    宸1分钟前 这可是我珍藏多年的资源啊. Visual Studio 2019 Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.是目前最流行的Windows ...

  4. 这套完美的Java环境安装教程,完整,详细,清晰可观,让你一目了然,简单易懂。⊙﹏⊙...

    JDK下载与安装教程 2017年06月18日 22:53:16 Danishlyy1995 阅读数:349980 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...

  5. iOS7系统iLEX RAT冬青鼠安装教程:无需刷机还原纯净越狱系统

    全网科技 温馨提醒:iLEX RAT和Semi-Restore的作用都是让你的已越狱的设备恢复至越狱的初始状态. 可是要注意无论你是用iLexRAT冬青鼠还是Semi-restore.对于还原来说都存 ...

  6. TensorFlow2.0 系列开篇: Windows下GPU版本详细安装教程

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 [导读]今年三月谷歌在TensorFlow开发者峰会上宣布TensorFlow 2.0 ...

  7. mysql为什么每天0点就装东西_MySQL的详细安装教程

    1.安装之前需要注意的几点 建议不要安装最新版本,一般找mysql5.0系列版本即可: mysq1官网有.zip和.msi两种安装形式: zip是压缩包,直接解压缩以后使用的,需要自己配置各种东西:m ...

  8. Centos7上安装oracle11g/12c的安装教程推荐及注意事项

    Centos7上安装oracle11g的安装教程推荐及注意事项 历时一天半,终于在今天中午安装完oracle11g,成功后喜悦的心情自是溢于言表.总有些疑问,比如为何如此复杂的数据库为何还会有如此之多 ...

  9. ROS 不能再详细的安装教程

    ROS 不能再详细的安装教程 版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5779206.html 关于ROS(Robot OS 机 ...

  10. OSSIM系统的安装教程(超详细)

    OSSIM系统的安装教程(超详细) 一.创建虚拟机 二.安装ossim系统 三.web登录 一.创建虚拟机 首先在网上下载OSSIM系统的镜像,记住自己保存的位置. 打开vm,新建虚拟机. 选择自定义 ...

最新文章

  1. php增删改查前后端分离,前后端分离之前端增删改查
  2. SDN,这一年都经历了什么
  3. 面试官绝杀:系统是如何支撑高并发的?
  4. 解决:fatal: Not a valid object name: ‘master‘问题
  5. 1.1 JAVA集合
  6. (十)HTTP协议【前后端分离的时代,网络请求是前端的生命线】
  7. Centos7 下部署yapi 详细教程
  8. 一起谈.NET技术,使用WCF实现SOA面向服务编程—— 架构设计
  9. java char character_Java char 与 Character
  10. (转)一张图学会Dockerfile
  11. PPI蛋白互作网络构建详细步骤
  12. 三维旋转详细解读(Rodrigues‘ Roatation Formula 罗德里格旋转公式)
  13. ES6 模板字符串基本用法
  14. 数据库MySQL创库、创表基本命令
  15. 超融合服务器系统,超融合服务器|超融合架构|超融合一体机|业务系统一体机
  16. cnblogs!I'm comeing!
  17. css文本行高是哪个属性_css属性行高line-height的用法详解
  18. PS教程:用ps制作梦幻紫色星空文字
  19. 泪目,不枉费挑灯夜战两个月,终于拿到offer了,集合 +Spring+JVM+ 并发 +Redis 总结
  20. One UI 5 升级来了

热门文章

  1. es使用同义词插件注意事项
  2. 研发团队建设几点看法及建议
  3. Alos 12.5米DEM免费下载教程、高精度DEM数据、土地利用数据、植被类型分布数据、建筑轮廓分布数据
  4. 基于51单片机的医院银行排队叫号系统proteus仿真程序原理图设计
  5. Java后台开发精选知识图谱
  6. java图书管理系统的不足_java图书管理系统的问题
  7. 学习笔记-行政区划匹配缺失补全
  8. 技术分享——SSM图书馆预约占座系统
  9. 工程制图与计算机绘图实训任务书及参考资料,水利工程制图与计算机绘图实训探讨...
  10. ch cc 2019Mac(ch cc 2019直装版)2.1中文特别版