Installez OpenFOAM v2006 sur CentOS

Cet article est un mémorandum de la procédure d'installation de la version v2006 d'OpenFOAM, qui est un logiciel open source pour l'analyse des fluides, sur CentOS 6.x.

Télécharger OpenFOAM

Le package binaire OpenFOAM et le code source peuvent être obtenus sur le site suivant.

Le premier site est du groupe ESI. D'autre part, le deuxième site provient de la Fondation OpenFOAM. La version avec la date de sortie, c'est-à-dire v2006 (sortie en juin 2020), peut être obtenue sur l'ancien site ESI.

Type d'installation

Vous pouvez télécharger des binaires Windows, Mac et Linux à partir du site ESI. Sous Windows, vous pouvez également installer à l'aide du sous-système Windows pour Linux (WSL). En ce qui concerne la façon de construire à partir des sources, il a été officiellement confirmé qu'il peut être installé sur Ubuntu 16.04LTS, CentOS 7.4 et OpenSUSE Tumbleweed. Cet article tente de créer OpenFOAM à partir des sources sur CentOS 6.x.

Politique d'installation

Aperçu de la procédure d'installation

  1. Téléchargez et installez le package rpm requis avec les privilèges d'administrateur.
  2. Téléchargez et décompressez le paquet source requis pour l'unité principale d'OpenFOAM et la version tierce.
  3. Modifiez le fichier de paramètres d'environnement et créez le script.
  4. Créez un tiers (outil, bibliothèque).
  5. Créez le corps principal d'OpenFOAM.
  6. Vérifiez le fonctionnement de l'unité principale OpenFOAM intégrée (solveur).
  7. Construisez ParaView pour la visualisation.
  8. Confirmez que le prétraitement (génération de maillage), l'exécution du calcul et le post-traitement (visualisation), qui sont une série de flux d'analyse de fluide, peuvent être effectués.

La construction de ParaView à l'étape 7 échoue souvent, et si cela ne fonctionne pas, abandonnez. ParaView peut être installé séparément en plus du serveur CentOS, vous pouvez donc télécharger les données calculées dans votre environnement et les visualiser.

Installation des packages rpm requis

Les packages requis sont les suivants.

Installez le package ci-dessus en utilisant yum avec les privilèges d'administrateur.

$ yum install gcc gcc-c++ bison flex m4 glibc-devel glibc-devel.i686 zlib-devel

Téléchargez et déployez le package source OpenFOAM

Le package OpenFOAM se compose de deux types: le code source principal et un package tiers. Ici, créez un répertoire appelé / opt / OpenFOAM afin que différentes versions puissent être gérées, puis téléchargez-le et développez-le avec wget en dessous.

$ 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

Si vous ne pouvez pas télécharger HTTPS en raison de l'authentification, ajoutez l'option --no-check-certificate ou .wgetrc settings. Veuillez l'éviter.

La structure du répertoire et du fichier après l'extraction de chaque package est la suivante.

Allwmake         COPYING    README.md     bin  etc      src        wmake
CONTRIBUTORS.md  META-INFO  applications  doc  modules  tutorials
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

Comment construire OpenFOAM est décrit dans OpenFOAM® Quick Build Guide, mais développé ʻOpenFOAM-v2006 Lisez attentivement README.md, Bequirements.md, et BUILD.md in et ThirdParty-v2006, et vérifiez SOURCES.txt`.

Configuration système minimale

Les exigences spécifiées sur le site officiel sont les suivantes.

La version de Qt initialement incluse dans CentOS est ancienne et une nouvelle version de Qt est requise pour utiliser la dernière version de ParaView.

Téléchargez et déployez la source requise pour les packages tiers

Les bibliothèques de compilateur requises sous le ThirdPart-v2006 ci-dessus sont les suivantes: (Il y a une description de la destination de téléchargement dans BUILD.md).

Le compilateur peut être un compilateur Intel autre que GCC. Ce n'est pas grave si la version GCC est plus récente que 4.8.5, mais vous devrez modifier les paramètres qui apparaîtront plus tard.

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

** Bibliothèque GNU (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

C'est déjà dans un dictateur tiers.

Scotch

C'est déjà dans un dictateur tiers.

Boost

C'est déjà dans un dictateur tiers.

CGAL

C'est déjà dans un dictateur tiers.

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

C'est déjà dans un dictateur tiers.

libccmio

Construisez uniquement si vous avez besoin du convertisseur de maillage STAR-CCM +. La destination de téléchargement est différente d'avant.

$ wget http://visit.ilight.com/svn/visit/trunk/third_party/libccmio-2.6.1.tar.gz
$ tar zxvf libccmio-2.6.1.tar.gz

Modifier le fichier de paramètres d'environnement et créer un script

Paramètres d'environnement de l'unité principale OpenFOAM

Modifiez les paramètres d'environnement d'OpenFOAM avec un éditeur approprié tel que «vi» ou «emacs». Le shell est expliqué en utilisant bash.

$ vi ../OpenFOAM-v2006/etc/bashrc

** Lieu de modification **

# [WM_COMPILER_TYPE] - Compiler location:
# = system | ThirdParty
export WM_COMPILER_TYPE=ThirdParty

Si vous souhaitez modifier la taille d'étiquette du maillage de 32 bits à 64 bits, changez-la comme suit.

# [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"

En ce qui concerne la spécification du compilateur / bibliothèque GNU, changez la spécification de la bibliothèque GNU.

$ vi ../OpenFOAM-v2006/etc/config.sh/compiler

changements

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

Paramètres de compilation GCC

$ vi makeGcc

** Point de confirmation ** 先ほど編集したconfig.sh/compilerからコンパイラ・GNUライブラリのバージョンを参照するので, Ce qui suit n'est qu'une confirmation.

[ "${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

Paramètres de construction CGAL

Vérifiez le script de construction CGAL de la même manière que ci-dessus.

$ vi makeCGAL

** Point de confirmation **

# 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

Vérifiez les paramètres CGAL sur l'unité principale OpenFOAM.

vi ../OpenFOAM-v2006/etc/config.sh/CGAL

** Point de confirmation **

boost_version=boost_1_66_0
cgal_version=CGAL-4.12.2

Paramètres de construction FFTW

Vérifiez le script de construction FFTW.

vi makeFFTW

** Point de confirmation **

# FFTW version from OpenFOAM etc/config.sh file:
_foamConfig FFTW

fftwPACKAGE=${fftw_version:-fftw-system}

Vérifiez les paramètres FFTW sur l'unité principale OpenFOAM.

vi ../OpenFOAM-v2006/etc/config.sh/FFTW

** Point de confirmation **

fftw_version=fftw-3.3.7
export FFTW_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$fftw_version

Version tierce

Construire GCC

Commencez par charger les paramètres d'environnement OpenFOAM.

$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc

À ce moment, le message suivant est affiché, mais comme GCC n'a pas encore été construit, c'est une erreur naturelle et la construction de GCC continuera.

===============================================================================
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

Rechargez les paramètres de l'environnement OpenFOAM pour activer le Gcc intégré.

$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc

Construire Cmake

Construisez Cmake. Vous devez spécifier la version en option.

./makeCmake cmake-3.8.2

Créer un package tiers

Une fois la compilation de Cmake terminée, compilez le reste des paquets avec ʻAllwmake`. Chargez à nouveau les paramètres de l'environnement OpenFOAM avant de l'exécuter.

$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc 
$ ./Allwmake

J'obtiens l'erreur suivante lors de la construction d'ADIOS2.

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

Il semble que Cmake construit sous un tiers ne soit pas utilisé, alors définissez explicitement le PATH et reconstruisez ADIOS2.

$ ./makeAdios2 -cmake $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/cmake-3.8.2/bin/

Après avoir terminé la construction tierce ci-dessus, vérifiez avec la commande suivante si les conditions de construction de l'unité principale OpenFOAM sont remplies.

$ foamSystemCheck
System check: PASS
==================
Can continue OpenFOAM installation.

Lorsque PASS est affiché, passez à la construction du corps principal d'OpenFOAM.

Construire le corps principal d'OpenFOAM

Chargez à nouveau les paramètres d'environnement OpenFOAM, puis compilez. Le script «Allwmake» est utilisé, mais le nombre de processeurs pour la compilation parallèle peut être spécifié avec l'option «-j», donc définissez-le en fonction de l'environnement. Vous pouvez également utiliser la commande alias foam pour vous déplacer vers le répertoire du projet OpenFOAM (répertoire d'installation) $ WM_PROJECT_DIR.

$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
$ foam
$ ./Allwmake –j4

Si une erreur se produit et qu'elle ne se termine pas normalement, vérifiez le message d'erreur pour voir s'il manque des bibliothèques.

Vérification de la construction du corps principal d'OpenFOAM

Une fois la construction d'OpenFOAM terminée normalement, relisez les paramètres d'environnement et exécutez le programme de test.

$ . /opt/OpenFOAM/OpenFOAM-v2006j/etc/bashrc 
$ foamInstallationTest

C'est OK si le résultat de la confirmation, tel que le chemin de la bibliothèque, est sorti et le résumé suivant est sorti à la fin.

Summary
-------------------------------------------------------------------------------
Base configuration ok.
Critical systems ok.

Done

Si le japonais est inclus dans la sortie de la version de gcc -v, le foamInstallationTest ci-dessus entraînera une erreur, donc avant cela

export LANG=C

Veuillez ne pas utiliser le japonais en tant que tel.

Construire ParaView

Construire Qt

Vérifiez comment spécifier le package de version dans makeQt.

$ more makeQt

** Point de confirmation **

# 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

Dans les versions précédentes d'OpenFOAM, l'utilisateur pouvait le spécifier dans makeQt, mais le paramètre ne peut pas être modifié ici. Pour le moment, je vais vous aider pour makeQt.

$ ./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

Il semble que vous puissiez spécifier la version et l'exécuter, alors compilons 5.9.3.

$ ./makeQt 5.6.3

La compilation prend un peu de temps et échoue avec l'erreur suivante.

/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

Si vous recherchez le message d'erreur sur Google, la solution de contournement est répertoriée dans [stack overflow](https://stackoverflow.com/questions/8402479/error- while-compiling-thrift-server), donc la source est la suivante. Faites des corrections.

$ vi qt-everwhere-opensource-src-5.6.3/qtconnectivity/src/tools/sdpscanner/main.cpp

** Pièce supplémentaire **

#include <arpa/inet.h>

Si vous le compilez à nouveau et qu'il n'y a pas d'erreur, il réussit.

$ ./makeQt 5.6.3

Construire ParaView

Ensuite, construisez ParaView. Puisque les chemins pour qmake (Qt) et Cmake ne sont pas définis, spécifiez-les dans les options de script. Aussi, exécutez-le avec l'option de ne pas utiliser les fonctions de la bibliothèque OpenGL 2.x ou supérieur (-no-gl2) (car le pilote CentOS 6 ne le prend pas en charge).

$ ./makeParaView -no-gl2 -qmake platforms/linux64Gcc/qt-5.6.3/bin -cmake platforms/linux64Gcc/cmake-3.8.2/bin

Le module paraview est créé et la construction est terminée.

$ ls platforms/linux64Gcc/ParaView-5.6.0/bin/paraview
platforms/linux64Gcc/ParaView-5.6.0/bin/paraview

Ceci termine l'installation de ParaView. Dans les versions précédentes, il était nécessaire de construire ParaView Reader afin d'utiliser la commande paraFoam après cela, mais il semble que ce ne soit pas nécessaire car le PVReader correspondant n'est pas trouvé.

Confirmation de l'opération de prétraitement, exécution de calcul et post-traitement dans OpenFOAM

Une fois que tout le travail d'installation ci-dessus est terminé, le cas du didacticiel pitzDaily montrera si OpenFOAM peut normalement effectuer le flux d'analyse de fluide, de prétraitement (création de maillage), d'exécution de calcul et de post-traitement (visualisation). Vérifiez en utilisant.

$ . /opt/OpenFOAM/OpenFOAM-v2006/etc/bashrc
$ mkdir –p $FOAM_RUN
$ run
$ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily ./
$ cd pitzDaily
$ blockMesh
$ simpleFoam
$ paraFoam

Les significations des commandes OpenFOAM qui apparaissent ici sont les suivantes.

Le contrôle de fonctionnement effectué ici ne confirme pas le calcul parallèle. Il n'est pas facile de vérifier le fonctionnement de tous les cas de didacticiel qui effectuent un calcul parallèle car le calcul prend beaucoup de temps, mais exécutons pipeCyclic comme un calcul relativement léger (le nombre de parallèles est de 5 par défaut).

$ run
$ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pipeCyclic ./
$ cd pipeCyclic
$ ./Allrun

ʻAllrunest un script qui définit automatiquement les conditions d'analyse et exécute les calculs à partir de la génération du maillage. SipitzDaily et pipeCyclic` peuvent exécuter le calcul sans aucune erreur, l'installation est terminée avec succès.

Recommended Posts

Installez OpenFOAM v2006 sur CentOS
Installez Golang sur CentOS 8
Installez Neo4j 4.1.3 sur centOS
Tomcat v8 sur CentOS7
Installez PostgreSQL 12 sur Centos8
Installez Python 3 sur CentOS 7
Installez kuromoji sur CentOS7
Jetty v8 sur CentOS7
Installez PostGIS 2.5.5 sur CentOS7
Installez jpndistrict sur CentOS 7
Installez Redmine 4.1.1 sur CentOS 7
Installation de Smokeping sur CentOS7
Installez PostgreSQL 13 sur CentOS 7.5
Installez Jenkins sur CentOS de Docker
Installez Apache sur CentOS sur VirtualBox
Installez Ruby 2.7 sur CentOS 7 (SCL)
Installez Ruby 2.5 sur CentOS 7 en utilisant SCL
Installation de Java Open JDK 8 sur CentOS 7
Comment installer MariaDB 10.4 sur CentOS 8
Installez apache 2.4.46 à partir des sources sur CentOS 7
Étapes pour installer devtoolset-6 sur CentOS 7
Installez Java 9 sur Windows 10 et CentOS 7
Installez MariaDB (CentOS 8)
Installez samba4 à partir du code source sur CentOS8
Personnaliser l'image Docker OpenFOAM v8 sur Mac
Installez le client de messagerie Web Rainloop sur CentOS 8
Comment installer la beta php8.0 sur CentOS8
[CentOS] Installez apache-loggen
Installez CentOS 7 sur Raspberry pi 4 modèle B
Installez NextCloud sur CentOS 7 avec Alibaba Cloud ECS
Commande pour installer nginx / PHP7 / php-fpm sur CentOS7
Installez Gradle sur Mac
Installez Corretto 8 sur Windows
Tutoriel Maven sur CentOS 7
Installez OpenJDK sur macOS
Installez Java sur Mac
Installation de Docker sur CentOS 6
Utiliser perltidy sur CentOS 8
Essayez OpenLiteSpeed sur CentOS8
[CentOS7] Installez aws cli
Installez Docker sur Manjaro
Installation de Zabbix 5 sur CentOS 8
Installez Ruby sur Ubuntu 20.04
Utilisez mod_auth_cas sur CentOS 8
Installez lombok sur SpringToolSuite4
Installation d'OpenJDK sur CentOS7
Installez openjdk11 sur Mac
Installez OpenJDK 8 sur mac
Installer le wiki de documentation BookStack sur Elastic Compute Service sur CentOS 7
Installez le dernier pilote matériel d'ELRepo sur CentOS
Installez MySQL 5.6 sur CentOS6 [Comment spécifier la version]