cd /path/to/OpenFOAM
tar -xvf OpenFOAM-v1906.tgz tar -xvf ThirdParty-v1906.tgz
cd OpenFOAM-v1906
vi List.H.patch
--- ./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
vi IListStream.H.patch
--- ./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;
patch -p0 < List.H.patch patch -p0 < IListStream.H.patch
修改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
source etc/bashrc
./Allwmake -j -k