编译和安装
操作步骤
- 使用PuTTY工具,以root用户登录服务器。
- 执行以下命令进入OpenFOAM安装包所在目录。
cd /path/to/OpenFOAM
- 执行以下命令解压OpenFOAM安装包。
tar -xvf OpenFOAM-v1906.tgz tar -xvf ThirdParty-v1906.tgz
- 执行以下命令进入解压后的目录。
cd OpenFOAM-v1906
- 执行以下命令创建并编辑补丁“List.H.patch”文件。
- 创建补丁“List.H.patch”文件。
vi List.H.patch
- 按“i”进入编辑模式,输入如下内容。
--- ./src/OpenFOAM/containers/Lists/List/List.H.bak 2019-11-08 01:12:53.000000000 +0800 +++ ./src/OpenFOAM/containers/Lists/List/List.H 2023-10-08 09:37:32.042542470 +0800 @@ -58,8 +58,7 @@ namespace Foam // Forward declarations -class Istream; -class Ostream; + template<class T> class List; template<class T, unsigned N> class FixedList; @@ -113,6 +112,11 @@ class List public: + //Related types + + //-Declare type of subList + typedef SubList<T> subList; + // Static Member Functions @@ -199,14 +203,6 @@ public: //- Destructor ~List(); - - - // Related types - - //- Declare type of subList - typedef SubList<T> subList; - - // Member Functions // Edit
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 创建补丁“List.H.patch”文件。
- 执行以下命令创建并编辑补丁“IListStream.H.patch”文件。
- 创建补丁“IListStream.H.patch”文件。
vi IListStream.H.patch
- 按“i”进入编辑模式,输入如下内容。
--- ./src/OpenFOAM/db/IOstreams/memory/IListStream.H 2019-11-08 01:12:53.000000000 +0800 +++ ./src/OpenFOAM/db/IOstreams/memory/IListStream.H 2023-10-08 09:30:05.506542470 +0800 @@ -115,7 +115,7 @@ public: reset_gbuffer(); } - //- Transfer contents to other list + //- Transfer contents to other List inline void swap(List<char>& list) { List<char>::swap(list); @@ -128,7 +128,7 @@ public: /*---------------------------------------------------------------------------*\ Class IListStream Declaration -\*----------------------------------------------d-----------------------------*/ +\*---------------------------------------------------------------------------*/ //- An ISstream with internal List storage class IListStream @@ -158,7 +158,7 @@ public: //- Move construct from List IListStream ( - List<char>&& buffer, + ::Foam::List<char>&& buffer, // Fully qualify (issue #1521) streamFormat format=ASCII, versionNumber version=currentVersion, const Foam::string& name="input" @@ -184,7 +184,7 @@ public: {} - // Member functions + // Member Functions //- The current get position in the buffer using allocator_type::size;
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 创建补丁“IListStream.H.patch”文件。
- 执行以下命令应用patch。
patch -p0 < List.H.patch patch -p0 < IListStream.H.patch
- 修改OpenFOAM安装参数文件中编译器、MPI设置。
修改export WM_COMPILER=/path/to/clang为export WM_COMPILER=Clang
“/path/to/clang”应改为毕昇编译器“clang”文件的路径。
- 执行以下命令修改编译参数。
sed -i 's/\-O3/\-O3 \-march=armv8-a/g' /path/to/OpenFOAM/OpenFOAM-v1906/wmake/rules/linuxARM64Clang/c++Opt sed -i 's/\-O3/\-O3 \-march=armv8-a/g' /path/to/OpenFOAM/OpenFOAM-v1906/wmake/rules/linuxARM64Clang/cOpt
- 执行以下命令使OpenFOAM配置文件bashrc生效。
source etc/bashrc
- 执行以下命令进行编译安装。
./Allwmake -j -k