中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

编译和安装

操作步骤

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 执行以下命令进入OpenFOAM安装包所在目录。
    cd /path/to/OpenFOAM
  3. 执行以下命令解压OpenFOAM安装包。
    tar -xvf OpenFOAM-v1906.tgz
    tar -xvf ThirdParty-v1906.tgz
  4. 执行以下命令进入解压后的目录。
    cd OpenFOAM-v1906
  5. 执行以下命令创建并编辑补丁“List.H.patch”文件。
    1. 创建补丁“List.H.patch”文件。
      vi List.H.patch
    2. 按“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
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  6. 执行以下命令创建并编辑补丁“IListStream.H.patch”文件。
    1. 创建补丁“IListStream.H.patch”文件。
      vi IListStream.H.patch
    2. 按“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;
    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  7. 执行以下命令应用patch。
    patch -p0 < List.H.patch
    patch -p0 < IListStream.H.patch
  8. 修改OpenFOAM安装参数文件中编译器、MPI设置。

    修改export WM_COMPILER=/path/to/clangexport WM_COMPILER=Clang

    “/path/to/clang”应改为毕昇编译器“clang”文件的路径。

  9. 执行以下命令修改编译参数。
    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
  10. 执行以下命令使OpenFOAM配置文件bashrc生效。
    source etc/bashrc
  11. 执行以下命令进行编译安装。
    ./Allwmake -j -k