Dieser Artikel erinnert an das Verfahren zur Installation von OpenFOAM Version v2006, einer Open Source-Software für die Flüssigkeitsanalyse, unter CentOS 6.x.
Das OpenFOAM-Binärpaket und der Quellcode können von der folgenden Site bezogen werden.
Der erste Standort stammt von der ESI-Gruppe. Auf der anderen Seite stammt die zweite Site von der OpenFOAM Foundation. Die Version mit dem Veröffentlichungsdatum, dh v2006 (veröffentlicht im Juni 2020), kann von der ehemaligen ESI-Site bezogen werden.
Sie können Windows-, Mac- und Linux-Binärdateien von der ESI-Site herunterladen. Unter Windows können Sie auch mit dem Windows-Subsystem für Linux (WSL) installieren. In Bezug auf das Erstellen aus dem Quellcode wurde offiziell bestätigt, dass es unter Ubuntu 16.04LTS, CentOS 7.4 und OpenSUSE Tumbleweed installiert werden kann. Dieser Artikel versucht, OpenFOAM aus dem Quellcode unter CentOS 6.x zu erstellen.
Die Erstellung von ParaView in Schritt 7 schlägt häufig fehl. Wenn dies nicht funktioniert, geben Sie auf. ParaView kann zusätzlich zum CentOS-Server separat installiert werden, sodass Sie die berechneten Daten in Ihre Umgebung herunterladen und visualisieren können.
Die erforderlichen Pakete sind wie folgt.
Installieren Sie das obige Paket mit yum
mit Administratorrechten.
$ yum install gcc gcc-c++ bison flex m4 glibc-devel glibc-devel.i686 zlib-devel
Das OpenFOAM-Paket besteht aus zwei Typen: dem Hauptquellcode und einem Paket eines Drittanbieters. Erstellen Sie hier ein Verzeichnis mit dem Namen "/ opt / OpenFOAM", damit verschiedene Versionen verwaltet werden können, und laden Sie es herunter und erweitern Sie es mit "wget" darunter.
$ mkdir /opt/OpenFOAM
$ cd /opt/OpenFOAM
$ wget https://sourceforge.net/projects/openfoam/files/v2006/OpenFOAM-v2006.tgz
$ tar zxvf OpenFOAM-v2006.tgz
$ wget https://sourceforge.net/projects/openfoam/files/v2006/ThirdParty-v2006.tgz
$ tar zxvf ThirdParty-v2006.tgz
Wenn Sie HTTPS aufgrund der Authentifizierung nicht herunterladen können, fügen Sie die Option "--no-check-certificate" oder .wgetrc settings hinzu. Bitte vermeiden Sie es.
Die Struktur des Verzeichnisses und der Datei nach dem Extrahieren jedes Pakets ist wie folgt.
OpenFOAM-v2006/
Allwmake COPYING README.md bin etc src wmake
CONTRIBUTORS.md META-INFO applications doc modules tutorials
ThirdParty-v2006/
ADIOS2-2.4.0 etc makeKAHIP makeParaView
Allclean fftw-3.3.7 makeLLVM makeParaView.example
Allwmake kahip-2.12 makeMETIS makeQt
BUILD.md makeAdios2 makeMGridGen makeSCOTCH
CGAL-4.12.2 makeCCMIO makeMPICH makeVTK
COPYING makeCGAL makeMVAPICH makeVTK.example
ParaView-v5.6.3 makeCmake makeMesa minCmake
README.md makeFFTW makeMesa.example openmpi-4.0.3
Requirements.md makeGcc makeOPENMPI scotch_6.0.9
SOURCES.txt makeGperftools makeOPENMPI.example
boost_1_66_0 makeHYPRE makePETSC
Das Erstellen von OpenFOAM wird in OpenFOAM® Quick Build Guide beschrieben, jedoch erweitert `OpenFOAM-v2006 Lesen Sie sorgfältig "README.md", "Bequirements.md" und "BUILD.md" in "und" ThirdParty-v2006 "und überprüfen Sie" SOURCES.txt ".
Auf der offiziellen Website angegebene Anforderungen lauten wie folgt.
Die ursprünglich in CentOS enthaltene Version von Qt ist alt, und eine neue Version von Qt ist erforderlich, um die neueste Version von ParaView zu verwenden.
Die Compiler-Bibliotheken, die unter dem oben genannten "ThirdPart-v2006" erforderlich sind, lauten wie folgt:
(Es gibt eine Beschreibung des Download-Ziels in BUILD.md
).
Der Compiler kann ein anderer Intel-Compiler als GCC sein. Es ist in Ordnung, wenn die GCC-Version neuer als 4.8.5 ist, aber Sie müssen die Einstellungen ändern, die später angezeigt werden.
GCC
$ cd ThirdParty-v2006
$ wget https://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
$ tar zxvf gcc-4.8.5.tar.gz
** GNU-Bibliothek (gmp, mpfr, mpc) **
$ wget ftp://ftp.gnu.org/gnu/gmp/gmp-6.2.0.tar.xz
$ tar Jxvf gmp-6.2.0.tar.xz
$ wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-4.0.2.tar.xz
$ tar Jxvf mpfr-4.0.2.tar.xz
$ wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
$ tar zxvf mpc-1.1.0.tar.gz
OpenMPI
Es ist bereits in einem Diktator eines Drittanbieters.
Scotch
Es ist bereits in einem Diktator eines Drittanbieters.
Boost
Es ist bereits in einem Diktator eines Drittanbieters.
CGAL
Es ist bereits in einem Diktator eines Drittanbieters.
Cmake
$ wget https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz
$ tar zxvf cmake-3.8.2.tar.gz
Qt (qmake)
$ wget http://download.qt.io/new_archive/qt/5.6/5.6.3/single/qt-everywhere-opensource-src-5.6.3.tar.xz
$ tar xvf qt-everywhere-opensource-src-5.6.3.tar.xz
FFTW
Es ist bereits in einem Diktator eines Drittanbieters.
libccmio
Erstellen Sie nur, wenn Sie den STAR-CCM + Mesh-Konverter benötigen. Das Download-Ziel unterscheidet sich von zuvor.
$ wget http://visit.ilight.com/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz
$ tar zxvf libccmio-2.6.1.tar.gz
Bearbeiten Sie die Umgebungseinstellungen von OpenFOAM mit einem geeigneten Editor wie "vi" oder "emacs". Die Shell wird mit "bash" erklärt.
$ vi ../OpenFOAM-v2006/etc/bashrc
** Änderungsort **
# [WM_COMPILER_TYPE] - Compiler location:
# = system | ThirdParty
export WM_COMPILER_TYPE=ThirdParty
Wenn Sie die Beschriftungsgröße des Netzes von 32 Bit auf 64 Bit ändern möchten, ändern Sie sie wie folgt.
# [WM_LABEL_SIZE] - Label size in bits:
# = 32 | 64
export WM_LABEL_SIZE=64
# [WM_MPLIB] - MPI implementation:
# = SYSTEMOPENMPI | OPENMPI | SYSTEMMPI | MPI | MPICH | MPICH-GM |
# HPMPI | CRAY-MPICH | FJMPI | QSMPI | SGIMPI | INTELMPI | USERMPI
# Also possible to use INTELMPI-xyz etc and define your own wmake rule
export WM_MPLIB=OPENMPI
# [projectDir] - directory containing this OpenFOAM version.
# \- When this file is located as $WM_PROJECT_DIR/etc/bashrc, the next lines
# should work when sourced by BASH or ZSH shells. If this however fails,
# set one of the fallback values to an appropriate path.
#
# This can be removed if an absolute path is provided for WM_PROJECT_DIR
# later on in this file
# --
projectDir="${BASH_SOURCE:-${ZSH_NAME:+$0}}";
[ -n "$projectDir" ] && projectDir="$(\cd $(dirname $projectDir)/.. && \pwd -L)" ||\
# projectDir="$HOME/OpenFOAM/OpenFOAM-$WM_PROJECT_VERSION"
projectDir="/opt/OpenFOAM/OpenFOAM-$WM_PROJECT_VERSION"
# projectDir="/usr/local/OpenFOAM/OpenFOAM-$WM_PROJECT_VERSION"
Ändern Sie in Bezug auf die Spezifikation der Compiler- / GNU-Bibliothek die Spezifikation der GNU-Bibliothek.
$ vi ../OpenFOAM-v2006/etc/config.sh/compiler
Änderungen
case "$WM_COMPILER_TYPE" in
ThirdParty)
# Default versions of GMP, MPFR, MPC - override as necessary
gmp_version=gmp-6.2.0
mpfr_version=mpfr-4.0.2
mpc_version=mpc-1.1.0
$ vi makeGcc
** Bestätigungspunkt **
先ほど編集したconfig.sh/compiler
からコンパイラ・GNUライブラリのバージョンを参照するので,
Das Folgende ist nur eine Bestätigung.
[ "${WM_COMPILER#Gcc}" = "$WM_COMPILER" ] && WM_COMPILER=Gcc # Force gcc
WM_COMPILER_TYPE=ThirdParty # Ensure we get the correct settings
# Default GCC, mpfr, gmp and mpc versions from OpenFOAM etc/config.sh file:
_foamConfig compiler
gmpPACKAGE=${gmp_version:-gmp-system}
mpfrPACKAGE=${mpfr_version:-mpfr-system}
mpcPACKAGE=${mpc_version:-mpc-system}
gccPACKAGE=$gcc_version
Überprüfen Sie das CGAL-Build-Skript auf die gleiche Weise wie oben.
$ vi makeCGAL
** Bestätigungspunkt **
# CGAL, boost and gmp/mpfr versions from OpenFOAM etc/config.sh files.
# Get compiler first and let CGAL config override GMP and MPFR
_foamConfig compiler
_foamConfig CGAL
boostPACKAGE=${boost_version:-boost-system}
gmpPACKAGE=${gmp_version:-gmp-system}
mpfrPACKAGE=${mpfr_version:-mpfr-system}
cgalPACKAGE=$cgal_version
Überprüfen Sie die CGAL-Einstellungen am OpenFOAM-Hauptgerät.
vi ../OpenFOAM-v2006/etc/config.sh/CGAL
** Bestätigungspunkt **
boost_version=boost_1_66_0
cgal_version=CGAL-4.12.2
Überprüfen Sie das FFTW-Build-Skript.
vi makeFFTW
** Bestätigungspunkt **
# FFTW version from OpenFOAM etc/config.sh file:
_foamConfig FFTW
fftwPACKAGE=${fftw_version:-fftw-system}
Überprüfen Sie die FFTW-Einstellungen am OpenFOAM-Hauptgerät.
vi ../OpenFOAM-v2006/etc/config.sh/FFTW
** Bestätigungspunkt **
fftw_version=fftw-3.3.7
export FFTW_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version
Laden Sie zunächst die OpenFOAM-Umgebungseinstellungen.
$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
Zu diesem Zeitpunkt wird die folgende Nachricht ausgegeben. Da GCC jedoch noch nicht erstellt wurde, handelt es sich um einen natürlichen Fehler, und der GCC-Build wird fortgesetzt.
===============================================================================
Warning in /opt/OpenFOAM/OpenFOAM-v2006/etc/config.sh/settings:
Cannot find 'Gcc' compiler installation
/opt/OpenFOAM/ThirdParty-v2006/platforms/linux64/gcc-4.8.5
Either install this compiler version, or use the system compiler by setting
WM_COMPILER_TYPE to 'system' in $WM_PROJECT_DIR/etc/bashrc.
===============================================================================
$ ./makeGcc
Laden Sie die OpenFOAM-Umgebungseinstellungen neu, um die erstellte Gcc zu aktivieren.
$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
Baue Cmake. Sie müssen die Version als Option angeben.
./makeCmake cmake-3.8.2
Nachdem der Cmake-Build abgeschlossen ist, erstellen Sie den Rest der Pakete mit "Allwmake". Laden Sie die OpenFOAM-Umgebungseinstellungen erneut, bevor Sie sie ausführen.
$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
$ ./Allwmake
Beim Erstellen von ADIOS2 wird der folgende Fehler angezeigt.
no patch found for ADIOS2-2.4.0
Using cmake=/usr/bin/cmake
CMake Error at CMakeLists.txt:6 (cmake_minimum_required):
CMake 3.6 or higher is required. You are running version 2.6.4
-- Configuring incomplete, errors occurred!
Error building: ADIOS2-2.4.0
---------------------------------------------------
Optional component (ADIOS2) had build issues
OpenFOAM will nonetheless remain largely functional
---------------------------------------------------
Es scheint, dass Cmake, das unter einem Drittanbieter erstellt wurde, nicht verwendet wird. Setzen Sie daher den Pfad explizit und erstellen Sie ADIOS2 neu.
$ ./makeAdios2 -cmake $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/cmake-3.8.2/bin/
Überprüfen Sie nach Abschluss des obigen Builds eines Drittanbieters mit dem folgenden Befehl, ob die Bedingungen für den Aufbau der OpenFOAM-Haupteinheit erfüllt sind.
$ foamSystemCheck
System check: PASS
==================
Can continue OpenFOAM installation.
Wenn PASS
angezeigt wird, fahren Sie mit dem Aufbau des Hauptkörpers von OpenFOAM fort.
Laden Sie die OpenFOAM-Umgebungseinstellungen erneut und erstellen Sie sie dann. Das "Allwmake" -Skript wird verwendet, aber die Anzahl der CPUs für die parallele Kompilierung kann mit der Option "-j" angegeben werden. Stellen Sie sie daher entsprechend der Umgebung ein. Sie können auch den Alias-Befehl foam
verwenden, um in das OpenFOAM-Projektverzeichnis (Installationsverzeichnis) $ WM_PROJECT_DIR
zu wechseln.
$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
$ foam
$ ./Allwmake –j4
Wenn ein Fehler auftritt und nicht normal endet, überprüfen Sie die Fehlermeldung, um festzustellen, ob Bibliotheken fehlen.
Wenn der Build von OpenFOAM selbst normal abgeschlossen ist, lesen Sie die Umgebungseinstellungen erneut und führen Sie das Testprogramm aus.
$ . /opt/OpenFOAM/OpenFOAM-v2006j/etc/bashrc
$ foamInstallationTest
Es ist in Ordnung, wenn das Bestätigungsergebnis wie der Bibliothekspfad ausgegeben wird und die folgende Zusammenfassung am Ende ausgegeben wird.
Summary
-------------------------------------------------------------------------------
Base configuration ok.
Critical systems ok.
Done
Wenn Japanisch in der Versionsausgabe von "gcc -v" enthalten ist, führt der obige "FoamInstallationTest" zu einem Fehler, also vorher
export LANG=C
Bitte verwenden Sie kein Japanisch als solches.
Überprüfen Sie, wie Sie das Versionspaket in makeQt
angeben.
$ more makeQt
** Bestätigungspunkt **
# Description
# Build script for QT (the qt-everywhere-opensource-src package)
#
# ----------------------------------------------
# NO USER-CONFIGURABLE SETTINGS WITHIN THIS FILE
#------------------------------------------------------------------------------
# Run from third-party directory only
cd ${0%/*} && wmakeCheckPwd "$WM_THIRD_PARTY_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_THIRD_PARTY_DIR"
echo " Check your OpenFOAM environment and installation"
exit 1
}
. etc/tools/ThirdPartyFunctions
. etc/tools/QtFunctions
In früheren OpenFOAM-Versionen konnte der Benutzer dies in makeQt
angeben, aber die Einstellung kann hier nicht geändert werden. Vorerst werde ich Ihnen bei makeQt
helfen.
$ ./makeQt -h
usage: makeQt [OPTION] [qt-VERSION] [-- configure-options]
options:
-gcc Force gcc/g++ instead of the values from $WM_CC, $WM_CXX
-help
* build qt-everywhere-opensource-src, version undefined
Es scheint, dass Sie die Version angeben und ausführen können. Kompilieren Sie also 5.9.3.
$ ./makeQt 5.6.3
Das Kompilieren dauert etwas und schlägt mit dem folgenden Fehler fehl.
/opt/OpenFOAM/ThirdParty-v2006/qt-everywhere-opensource-src-5.6.3/qtconnectivity/src/tools/sdpscanner/main.cpp:321:30: error: ‘htonl’ was not declared in this scope
Wenn Sie bei Google nach der Fehlermeldung suchen, wird die Problemumgehung unter Stapelüberlauf aufgeführt, also in der Quelle wie folgt Nehmen Sie Korrekturen vor.
$ vi qt-everwhere-opensource-src-5.6.3/qtconnectivity/src/tools/sdpscanner/main.cpp
** Zusätzlicher Teil **
#include <arpa/inet.h>
Wenn Sie es erneut kompilieren und kein Fehler vorliegt, ist es erfolgreich.
$ ./makeQt 5.6.3
Erstellen Sie als Nächstes ParaView.
Da die Pfade für qmake (Qt) und Cmake nicht festgelegt sind, geben Sie sie in den Skriptoptionen an.
Führen Sie es außerdem mit der Option aus, die Funktionen der OpenGL-Bibliothek 2.x oder höher (-no-gl2
) nicht zu verwenden (da der CentOS 6-Treiber dies nicht unterstützt).
$ ./makeParaView -no-gl2 -qmake platforms/linux64Gcc/qt-5.6.3/bin -cmake platforms/linux64Gcc/cmake-3.8.2/bin
Das Modul paraview
wird erstellt und der Build ist abgeschlossen.
$ ls platforms/linux64Gcc/ParaView-5.6.0/bin/paraview
platforms/linux64Gcc/ParaView-5.6.0/bin/paraview
Damit ist die Installation von ParaView abgeschlossen. In früheren Versionen war es erforderlich, ParaView Reader zu erstellen, um danach den Befehl paraFoam
verwenden zu können. Dies scheint jedoch nicht erforderlich zu sein, da der entsprechende PVReader
nicht gefunden wird.
Nachdem alle oben genannten Installationsarbeiten abgeschlossen sind, prüft der Tutorial-Fall "pitzDaily", ob der Ablauf der Flüssigkeitsanalyse, Vorverarbeitung (Netzerstellung), Berechnungsausführung und Nachbearbeitung (Visualisierung) von OpenFOAM normal ausgeführt werden kann. Überprüfen Sie mit.
$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
$ mkdir –p $FOAM_RUN
$ run
$ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily ./
$ cd pitzDaily
$ blockMesh
$ simpleFoam
$ paraFoam
Die hier angezeigten OpenFOAM-Befehle haben folgende Bedeutung.
run
: Wechselt in das Berechnungsausführungsverzeichnis des Benutzers $ FOAM_RUN
.blockMesh
: Generiert ein Basisnetz.simpleFoam
: Ausführung des stationären AnalyselöserssimpleFoam
zur Berechnung inkompressibler Flüssigkeiten.paraFoam
: Konvertiert die berechnete Ausgabe von OpenFOAM in ein Format, das von ParaView gelesen werden kann, und startet ParaView, um es zu visualisieren.Die hier durchgeführte Funktionsprüfung bestätigt die parallele Berechnung nicht. Da es lange dauert, die Funktionsweise aller Tutorial-Fälle zu überprüfen, die eine parallele Berechnung durchführen, werden wir versuchen, "pipeCyclic" als relativ leichte Berechnung auszuführen (die Anzahl der Parallelen beträgt standardmäßig 5).
$ run
$ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pipeCyclic ./
$ cd pipeCyclic
$ ./Allrun
Allrun
ist ein Skript, das automatisch Analysebedingungen festlegt und Berechnungen aus der Netzgenerierung ausführt. Wenn pitzDaily
und pipeCyclic
die Berechnung fehlerfrei ausführen können, ist die Installation erfolgreich abgeschlossen.
Recommended Posts