Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

OpenFOAM (installation)

Cette section explique l’installation de OpenCFD OpenFOAM v2406 avec un script d’installateur automatique multiplateforme qui compile le programme aux côtés des composants de transport des sédiments et de la limite de sortie ainsi que ParaView et VisIt-DAV pour post-traitement.

ComponentFunction
sediDriftFoamOlsen et al. (2023) fixed-mesh suspended-sediment solver.
sediDriftFoam2Olsen (2025) sediment solver with bed-elevation and free-surface adjustment.
sediDriftFoam2RatingNew experimental extension of sediDriftFoam2 for a stage–discharge relation.
BAW HydBCsForOFBoundary-condition library, including a stage–discharge outlet for water–air simulations with interFoam.

Les résolveurs originaux sont documentés par Nils Reidar Olsen; la condition limite de sortie native est documentée dans BAW’s depositary.

Exigences et fichiers d’installation

L’installateur prend en charge les systèmes x86-64 fonctionnant sous Debian 12, Ubuntu 22.04 ou Ubuntu 24.04. Les dérivés doivent utiliser une distribution de base supportée correspondante. Windows construit fonctionner dans Windows Subsystem pour Linux 2 (WSL2), pas comme des exécutables Windows natifs.

L’installation nécessite une bonne et stable connexion Internet, Python 3.10 ou ultérieure, et un compte utilisateur avec sudo accès pour les paquets système. Permettre environ 20 GiB d’espace disque libre et au moins 8 GiB de RAM; la vérification de la construction source nécessite au moins 15 GiB sans. La compilation peut prendre plusieurs heures. Le post-traitement graphique nécessite un bureau Linux ou WSLg.

L’installateur est maintenu dans le OpenFOAM-installer subfolder du dépôt Ecohydraulics/numerical-software-installers. Avec Git installé, clonez le dépôt et entrez ce sous-dossier:

git clone --depth 1 https://github.com/Ecohydraulics/numerical-software-installers.git
cd numerical-software-installers/OpenFOAM-installer

Ces commandes fonctionnent également dans PowerShell. Pour une commande existante, entrez son répertoire OpenFOAM-installer au lieu de clonage à nouveau. Sinon, utilisez Code → Télécharger ZIP sur la page de dépôt, extraire les archives, et entrer numerical-software-installers-main/OpenFOAM-installer.

Conserver le sous-dossier d’installation complet; install.py seul est insuffisant. Le dépôt contient des fichiers d’installation, et non les distributions logicielles, qui sont téléchargés pendant l’installation. Exécutez les commandes ci-dessous de OpenFOAM-installer, qui contient install.py et install.ps1.

Debian et Ubuntu

Compiler et installer

Si Python est absent, installez-le d’abord :

sudo apt update
sudo apt install python3

Prévisualiser l’installation, puis compiler et installer:

python3 install.py --dry-run
python3 install.py --install-system-packages --examples --smoke-test

Exécutez l’installateur en tant qu’utilisateur normal, sans le préfixer avec sudo. L’option --install-system-packages autorise l’installation de dépendances de construction, de dépendances d’exécution graphique et de ParaView par sudo apt-get. Visit-DAV 3.5.0 est téléchargé sous la forme d’un binaire vérifié par checksum correspondant au système d’exploitation. ParaView suit la version disponible depuis les dépôts de distribution configurés.

L’option --examples télécharge le cas grossier A de Nils Reidar Olsen. L’option --smoke-test exécute une courte série interFoam pour vérifier la bibliothèque BAW. Un essai à sec imprime le plan sans vérifier les prérequis ni compiler le code.

Réutiliser une installation OpenCFD v2406 existante

Au lieu de compiler le noyau OpenFOAM, spécifiez le fichier d’activation v2406 existant. Pour l’installation du paquet Debian à /usr/lib/openfoam/openfoam2406, utilisez :

python3 install.py --install-system-packages \
  --reuse-openfoam /usr/lib/openfoam/openfoam2406/etc/bashrc \
  --examples --smoke-test

C’est une alternative à la commande source-build précédente. Les résolveurs de sédiments et la bibliothèque BAW sont encore compilés dans le nouveau répertoire utilisateur. L’installation existante doit inclure des en-têtes de développement, wmake, et un compilateur de travail. Son API doit être 2406; son niveau de patch peut différer de la version source par défaut.

Windows via WSL2

Dans un administrateur PowerShell, installer Ubuntu 24.04 pour WSL:

wsl --install -d Ubuntu-24.04

Redémarrer Windows si demandé. Lancez Ubuntu une fois et créez un compte utilisateur Linux normal. Confirmer que la distribution utilise WSL2:

wsl --list --verbose

Si sa version est 1, exécutez wsl --set-version Ubuntu-24.04 2. WSLg prend en charge les applications graphiques sur Windows 11 et Windows 10 construire 19044 ou plus tard; voir les exigences d’installation Microsoft.

À partir du répertoire OpenFOAM-installer du dépôt, utilisez un PowerShell ordinaire :

powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -DryRun
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -InstallSystemPackages -Examples -SmokeTest

Le lanceur invoque le même installateur Python dans WSL2. Les fichiers d’installation peuvent rester sur le système de fichiers Windows, mais la compilation et les cas doivent résider sur le système de fichiers Linux, pas sous /mnt/c. ParaView et VisIt fonctionnent comme des applications Linux affichées par WSLg.

Pour une distribution initiale WSL nommée Debian qui fonctionne Debian 12, ajouter -Distro Debian. Vérifiez sa version avant l’installation; une distribution Debian nouvellement téléchargée n’a pas besoin d’être Debian 12. Pour réutiliser OpenCFD v2406, ajoutez -ReuseOpenfoam suivi de son chemin Linux etc/bashrc.

Répertoire d’installation et vérification

Le répertoire d’installation par défaut est ~/.local/openfoam-sediment-v2406 dans le répertoire d’origine de l’utilisateur Linux. Spécifiez un autre chemin Linux dédié avec --prefix /home/USER/path ou Windows -Prefix /home/USER/path; le chemin ne doit pas contenir d’espace blanc. Limiter la concordance de compilation avec --jobs 4 ou -Jobs 4, si nécessaire. La valeur par défaut n’est pas plus de huit processus de compilation, réduits selon le système RAM.

Dans un terminal Linux ou WSL, entrez l’environnement installé :

source ~/.local/openfoam-sediment-v2406/activate.sh

Cette commande ouvre un nouveau shell interactif isolé. Il ne modifie pas .bashrc ou fusionne un environnement OpenFOAM antérieur. Seules les préférences OpenFOAM au niveau du projet sont chargées; les préférences utilisateur/groupe existantes sont exclues. Saisissez exit pour revenir au shell précédent. Pour un répertoire d’installation personnalisé, utilisez plutôt son activate.sh.

Vérifiez l’installation dans ce nouveau shell:

foamEtcFile -show-api
foamEtcFile -show-patch
printf '%s\n' "$WM_PROJECT_DIR" "$WM_OPTIONS"
command -v sediDriftFoam sediDriftFoam2 sediDriftFoam2Rating
sediDriftFoam -help
sediDriftFoam2 -help
sediDriftFoam2Rating -help

La sortie API doit être 2406. L’aide au solvant doit se charger sans erreur de bibliothèque manquante. Le répertoire d’installation contient les registres de compilation et environment-probe.log à logs/, les détails de construction à build-environment.txt et les enregistrements de source et d’installation à receipt.json. La sortie BAW runtime-test est stockée à runs/baw-smoke/.

Si l’installation échoue, inspecter logs/ avant de recommencer. Les builds interrompus conservent les téléchargements et les journaux. Ne supprimez pas une installation OpenFOAM existante pour résoudre un conflit de version. Lors de la modification des pins sources, du code d’installation ou de l’environnement du compilateur, sélectionnez un nouveau répertoire d’installation plutôt que de mélanger des binaires anciens et nouveaux.

Si le répertoire d’installation ou son journal est inopinément absent, localisez le répertoire avant de le reconstruire. Un arbre trouvé dans la corbeille de bureau doit être restauré sur son chemin original enregistré, sans construction active et sans destination existante écrasée. Trouver l’arbre dans la corbeille n’établit pas quand ni pourquoi il a bougé. Les instructions de récupération fournies décrivent l’inspection et la restauration du journal; ne pas compiler dans la corbeille.

Cas de sédiments et sorties étape-décharge

Avec --examples, les fichiers d’entrée d’Olsen sont stockés à cases/olsen-upstream/cylinder9_case_A/ dans le répertoire d’installation. Travaillez sur une copie en écriture. Inspecter le maillage avant d’exécuter le résolveur sélectionné:

cd /path/to/case-copy
checkMesh -constant -allTopology -allGeometry

Résoudre les erreurs de maillage avant la simulation. Pour le cas A fourni, invoquer sediDriftFoam2 explicitement à partir du répertoire des cas; le nom controlDict publié peut toujours être simpleFoam. La méthode fixe sediDriftFoam nécessite un cas compatible préparé séparément parce que ses entrées sédimentaires sont différentes. Exécutez les résolveurs Olsen en série. Les algorithmes de mailles et de sorties mobiles ne conviennent pas à la décomposition des MPI. sediDriftFoam2 et sediDriftFoam2Rating écraser scour.txt lors du lancement; l’archiver avant de redémarrer.

Sortie BAW pour interFoam

The installer prepares cases/baw-interFoam/ and compiles the shared library lib_BAW_public_BCs_v2412_20260813.so against the selected v2406 installation. The v2412 text is part of the upstream filename, not the build’s OpenFOAM version. This library is loaded by the case through the libs entry in system/controlDict; it does not require recompiling interFoam.

Pour une courbe de notation propre au site, configurer les entrées de sortie appariées waterLevel_alpha_prgh p_rgh et alpha.water, en utilisant le mode ratingCurveTable décrit dans la documentation de BAW](https://github.com/baw-de/HydBCsForOF). Utiliser le boîtier préparé comme exemple de configuration, et non comme données hydrauliques étalonnées.

Sortie expérimentale pour le résolveur à lit mobile d’Olsen

Dans une copie jetable, placer le fichier examples/ratingCurveProperties à constant/ratingCurveProperties. Remplacer le tableau illustratif par un débit extérieur spécifique au site en m3/s et une élévation de la surface de l’eau en m, exprimée dans le repère vertical du maillage. Les valeurs de décharge doivent augmenter strictement, et les élévations ne doivent pas diminuer. Réglez outletPatch à la sortie réelle, vérifiez les limites de profondeur et d’altitude et changez enabled false à enabled true. Exécutez sediDriftFoam2Rating explicitement. Sans cette configuration, l’extension est inactive.

Complétez les tests dans les instructions de validation de la courbe de notation](OpenFOAM-installer/docs/RATING_CURVE.md) avant d’utiliser l’extension pour la recherche ou la conception.

Services publics (pré- et post-processeurs)

ParaView

Activez l’environnement installé, puis ouvrez le boîtier de simulation avec le lecteur OpenFOAM intégré de ParaView :

cd /path/to/case-copy
touch case.foam
paraview case.foam

Sélectionnez internalMesh et les correctifs de limites pertinents, y compris bedWall et freeSurface où présents. Activer Conc, U et p, puis sélectionner Appliquer. Choisissez le champ affiché et utilisez les commandes d’animation pour inspecter les séries chronologiques. Pour les cas d’eau-air BAW, inspecter alpha.water et p_rgh. Aucun plugin de ParaView lié à OpenFOAM n’est requis; voir la Documentation du lecteur OpenFOAM.

Visit-DAV

Exporter le cas vers VTK et générer des manifestes de séries chronologiques dans le shell activé:

python3 ~/.local/openfoam-sediment-v2406/postprocess.py /path/to/case-copy
visit

Pour un répertoire d’installation personnalisé, ajustez le chemin de script. Dans VisIt, ouvrez l’un des fichiers imprimés .visit, ajoutez un emplacement Pseudocolor de Conc ou un autre scalar disponible, sélectionnez Draw, et utilisez les contrôles d’animation. Le volume ouvert, le lit et la surface libre se manifestent séparément. L’exportateur conserve les coordonnées de mailles dépendantes du temps et enregistre les valeurs de temps OpenFOAM à partir des métadonnées plutôt que de déduire le temps à partir des noms de fichiers; voir la VisIt file-series documentation.

Conserver tous les fichiers de timestep exportés. Les valeurs de temps OpenFOAM n’ont pas besoin d’égaler le temps morphodynamique accéléré enregistré par le solveur d’Olsen. Reconstruire parallèle interFoam champs et mesh avant l’exportation série. Pour régénérer les manifestes après des pas de temps supplémentaires, déplacer plus tôt .visit fichiers mis de côté; différents manifestes existants ne sont pas écrasés.

SALOME

SALOME n’est pas installé par ce script. Son installation est décrite dans les instructions TELEMAC: SALOME.

FreeCAD

FreeCAD n’est pas installé par ce script. Les paquets Windows, Linux et macOS et les instructions d’installation sont disponibles dans le Projet FreeCAD.