COOLFluiD安装教程

本文档用于说明开源软件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 = gfortran

OPTS = -funroll-all-loops -O3 -msse2 -mfpmath=sse -ftree-vectorize -g

DRVOPTS = $(OPTS)

NOOPT =

LOADER = gfortran

LOADOPTS =

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

lib: lapacklib tmglib

#lib: blaslib lapacklib tmglib

修改为:

#lib: lapacklib tmglib
 
lib: 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++/data

export PATH=YOUR_DIR/mutation++/install/bin:$PATH

export 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:  Null


P0 => FluctuationSplit: Using SourceTermSplitter:  Null


INIT 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 Mesh

Memory usage before building mesh: 8.64453 MB

Reading 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 MB

0%   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.013361s

Memory 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 MB

Iter: 40      Res: [    -3.8473452 -5.7512014 -6.6598171 -7.8464082 ]  CFL: 1        CPUTime: 0.224883 Mem: 9.88281 MB

Iter: 60      Res: [    -4.1881213 -6.2767579 -6.808248 -8.395345 ]  CFL: 1        CPUTime: 0.350268 Mem: 9.88281 MB

Iter: 80      Res: [    -4.3602481 -6.4704475 -7.0766412 -8.5838773 ]  CFL: 1        CPUTime: 0.478998 Mem: 9.88281 MB

Iter: 100     Res: [    -4.7023077 -6.8215636 -7.3817664 -8.9158359 ]  CFL: 1        CPUTime: 0.608228 Mem: 9.88281 MB

ParCFmeshFileWriter::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 MB

Iter: 140     Res: [    -5.05731 -7.1680797 -7.5732153 -9.2358123 ]  CFL: 1        CPUTime: 0.809654 Mem: 9.88281 MB

Iter: 160     Res: [    -5.4613146 -7.6086338 -7.9982795 -9.6694351 ]  CFL: 1        CPUTime: 0.916393 Mem: 9.88281 MB

Iter: 180     Res: [    -6.0417336 -8.2040166 -8.5826079 -10.260566 ]  CFL: 1        CPUTime: 1.019199 Mem: 9.88281 MB

Iter: 200     Res: [    -6.7894815 -8.9533068 -9.3326214 -11.007785 ]  CFL: 1        CPUTime: 1.136459 Mem: 9.88281 MB

ParCFmeshFileWriter::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 MB

Iter: 240     Res: [    -8.6237992 -10.790782 -11.164604 -12.845767 ]  CFL: 1        CPUTime: 1.3909   Mem: 9.88281 MB

Iter: 260     Res: [    -9.5779296 -11.697274 -12.145081 -13.79724 ]  CFL: 1        CPUTime: 1.505342 Mem: 9.88281 MB

Iter: 280     Res: [    -9.9301191 -11.891791 -12.944978 -14.14156 ]  CFL: 1        CPUTime: 1.606789 Mem: 9.88281 MB

SubSystem 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平台使用者的学习和交流,转载请注明出处。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值