List of Changes for Multiphase Code Repository by HZDR

[Latest Release]

Baseline

  • Optional clipping of lift coefficient for Hessenkemper

Bugfix

  • Remove chown for files in home directory from entrypoint
  • Fix log file output logic with respect to cluster tracking
  • Ensure correct configuration and for home directory in docker image
  • Restore .env-dev for OpenFOAM-dev builds
  • fix wrong results due to optimisation level with g++11
  • make constantAttachment work independent from phase order
  • make disintegrationToDisperse work independent from phase order
  • funcName --> name

Deployment

  • Use PMI2 interface only for multi-node simulations
  • Remove UCX communication middleware
  • Rely on UCX as communication middleware for Open MPI
  • Make runParallel RunFunction compatible with Singularity
  • Make the sprint cycle version the default in Dockerfile instead of dev
  • Avoid unbound variable warnings when using new runParallel function for Apptainer in bash strict mode, e.g. within a workflow
  • Fix unbound variable error when running Snakemake workflow with Apptainer containers
  • Adjusted RunFunctions to allow for running distributed MPI Jobs with Apptainer and Slurm on the basis of a fully containerized MPI implementation using the runParallel function
  • Merge NVIDIAGL image into our docker image
  • Remove docker compose and user management in docker images
  • Force pseudo-termional allocation in runParallelApptainer function
  • Added specialized run function for starting OpenFOAM MPI jobs with Apptainer
  • Merge Nvidia and Linux Docker images
  • Add bsdmainutils package to Debian package dependencies
  • Revise handling for ccache in docker image
  • Enable caching and slim down dockerfile
  • Moved Python dependencies to new Python repository which provides a the multiphasepy package that is installed in the final stage of the Docker build process
  • Fix application of sprint patches for Hemera cluster installation
  • Lift scipy version 1.9.0 required by testAddon/postProcessing/foamFourierTransform
  • Snakemake 7.25 requires toposort>=1.10
  • Upgrade Docker images to Ubuntu 22.04 LTS Jammy Jellyfish
  • Add new stage for multiphase python module and add compile options to scotch library
  • Remove ThirdParty from docker images
  • Fix bug for kaniko with major version detection
  • Fix Paraview variables and build args for linuxArm64
  • Use hard-coded environment variables for OpenFOAM in docker image
  • Update numpy and scipy version
  • Fix bug in path to foamExec
  • Use foamExec as entry point for docker image
  • Remove arm64 from codemeta as it crashed debian build

Documentation

  • Improved documentation on setting Apptainer as default module upon login on HPC cluster
  • Mark OpenFOAM directories for git as safe directories
  • Add image specification examples to hemeraApptainer template batch script
  • Add mpy prefix to tools from multiphasepy package
  • Minor follow-up for generalized source code header
  • Introduce FILES.md to specify new, modified and copied files from OpenFOAM Foundation Software
  • Introduce new generalized source code header
  • Sorting command with duplicates removal for configuration files
  • Revise some minor left overs from renaming of the repository

Misc

  • Use RunFunctions from $WM_PROJECT_SITE for compatibility with Apptainer
  • Add docker as recommended VS Code extension
  • Add live-server as recommended VS Code extension
  • Add model to control integral mass of selected phases
  • Fix etc/vscode/settings.json with respect to error squiggles
  • Create a default user in docker image
  • Add option to launch jupyter lab server in docker image with foamDockerRun.sh
  • Backport OpenFOAM-dev commit eb8e221f
  • Singularity is now Apptainer
  • Remove setCaseNumberOrDefault from casesFunctions.sh following new convention that default case should be set in a case-level caseSettings.orig file
  • Update VS Code tasks to absolute path
  • Allow foamDockerRun.sh to mount single files
  • Addon code is now compiled into $WM_PROJECT_SITE/$WM_PROJECT_VERSION for all installation options
  • Fix ending of patch file enabling the HZDR header
  • Add helper scripts to reformat dat files and update reference data
  • setCaseNumberOrDefault for templated cases
  • Fix ssh setting in docker-compose for Mac OS
  • Add writeAtFile FO to allow result writing during running simulations
  • use writeTime() rather than deprecated outputTime()

MultiMorph Model

  • Optimize oversizedToContinuous logic for serial processing of multiple cluster tracking pairs
  • Number-conservative conversion of large disperse fluid particles to resolved state
  • Allow continuous phase with actual diameter model

OpenFOAM

  • Fix HZDR banner for case files

Physical Modelling

  • add phaseTransferModel BhutaniBritoParada

Population Balance

  • There is no need for the phaseChange driftModel to read the specie-specific mass transfer rate from the InterfaceCompositionPhaseChangePhaseSystem as the entire mass transfer rate is what drives drift
  • Allow for specie-specific mass transfer between velocity groups triggered e.g. by absorption or desorption processes

Post-Processing

  • add filmThickness functionObject
  • Plot script for Courant number and time step size
  • Introduce new collection for bash functions in cases repository

Test

  • Add test for new runParallel RunFunction to use OpenFOAM with Apptainer in distributed parallel runs
  • tutorials/Allrun now checks success of Gnuplot scripts executed as part of OpenFOAM job scripts
  • Add another heuristic to reference data update script
  • Remove redundant fieldAverage caseDict from repo which was only used to allow single time-step tests of cases with field-averaging, but is not necessary anymore due to improvements of the Alltest script in commit 2042998044aa1e78cd07e739b0b545f79e429c70
  • Remove naming of temporary controlDict file within Alltest script
  • Temporarily deactivate selected LES model tests (wrong results if addon is compiled with g++-11, which is the default in Ubuntu 22.04)
  • Use mktemp instead of tempfile for creating temporary controlDict file, since tempfile is deprecated
  • Enhance robustness of Alltest
  • Expand controlDict and set timeStart to zero

[Multiphase-Code-Repository-10-s.2-hzdr.1] - 2023-06-02

Bugfix

  • Remove unneccessary char

Deployment

  • Remove arm64 from codemeta as it crashed debian build
  • Fix a issue with OpenMPI and shared memory
  • Enable ARM64 images and separate Paraview into own docker stage
  • Build customized OpenMPI and libfabric
  • Enable ccache for clang compiler
  • Update REGISTRY variable in .env
  • Merge cuda and nvidia images

Documentation

  • Rename to Multiphase Code Repository by HZDR for OpenFOAM Foundation Software
  • Minor fix to INSTALLATION.md
  • More straigtforward commands for release management

Misc

  • Further generalization to facilitate maintenance of other addon code repositories
  • Adjust Alltest for cases with time-averaging starting later than time zero
  • Add debugging options to pvserver SLURM script
  • Update list of partitions in SLURM script templates
  • Several modifications and bugfixes

OpenFOAM

  • Sprint Cycle Upgrade 10-s.2

Post-Processing

  • write blending fields, fG, fS, f1D2 and f2D1, on debug
  • Update ParaView server SLURM script
  • ParaView server SLURM script
  • Use pngcairo instead of png terminal for plotting with Gnuplot to enable dashed lines
  • Made profiling functionality use standard C++ such that it can be used outside of OpenFOAM

[HZDR-Multiphase-Addon-10-s.1-hzdr.3] - 2023-03-21

Bugfix

  • Sort out QT dependencies for addon and Paraview
  • fix post processing of dropletEntrainmentByShear test case
  • Fix path to online repository for Doxygen
  • alphaMax moved to phaseProperties for flotation tutorials
  • Allow control dict update when using HZDRCourantNo

Deployment

  • Fix GitLab instance URL in docker-compose.override.yml sample
  • Simplify some header and descriptions for easier sync with RCS
  • Install rsync in Docker container images
  • Simplify dockerfile and reduce layers
  • Make ssh for container deployment optional
  • Free deploy job for OpenFOAM installations on hemera from deploying site directory
  • Fix application of sprint patches to cluster installation for OpenFOAM-versions > 9

Documentation

  • Update QT dependencies
  • More descriptive merge request template for releases
  • Installation instructions for Mac OS
  • Modify command for running megalinter locally such that container is removed upon exit
  • Update domain to GitLab instance
  • beautify shortcut table

Misc

  • Remove configuration files for flotation cases and switch to SchillerNaumann drag model
  • Replaced prefix "HZDR" for libraries and exucutables by the more general "addon"
  • Make display support for docker images optional
  • Correct sprint cycle bash script to make linter happy
  • Fixed formatting of blockMeshDictCylinder template
  • Update Snakemake version for new workflow design
  • Adapt VS Code instructions
  • Provide VS Code settings as files and add instructions to CONTRIBUTING.md
  • Remove checkbox for template repository

MultiMorph Model

  • Rename OpenFOAM-Hybrid to MultiMorph Model

OpenFOAM

  • Remove foamyHexMesh

OpenFOAM-Hybrid

  • add description of addon specific changes to header of ...
  • write shear based under-resolution indicator at start time

Physical Modelling

  • Added drag models of Tomiyama et al. (1998) for pure and slightly contaminated systems
  • Entrainment model revision
  • Remove not working freeSurface mesh motion solver
  • Make degassingPhases fvModel compatible with blending framework

Population Balance

  • Added GPU-accelerated version of the coalescence model of Lehr et al. (2002) that works with the GPU-accelerated source term assembly
  • Enabled runtime selection of GPU-accelerated binary breakup models in combination with CUDApopulationBalance
  • Enabled runtime selection of GPU-accelerated coalescence models in combination with CUDApopulationBalance
  • Introduced automatic assignment of MPI ranks to one or more GPU devices
  • Added GPU-accelerated source term assembly for breakup, binary breakup and drift
  • Some improvements to GPU-accelerated coalescence source term assembly
  • Add test cases for (binary)Breakup and drift for testing the GPU-accelerated source term assembly
  • First working GPU-accelerated coalescence source term assembly
  • Added basic code structure for implementing the GPU-acceleration of the source term assembly using NVIDIA CUDA

Post-Processing

  • add caseDict volAverage

Test

  • revise Ma entrainment test case to be more standard OF-Hybrid
  • Added HZDR header to Alltest script to mark it as an extension of the original script supplied by OpenFOAM
  • Add -configure option to Alltest that only prepares setups to run a single time step but skips execution

Tutorial

  • sync hybrid cases among repositories

[HZDR-Multiphase-Addon-10-s.1-hzdr.2] - 2022-10-19

Documentation

  • Clarify that Debian, Docker and compiling from sources are exclusive installation options
  • Add references to README.md

[HZDR-Multiphase-Addon-10-s.1-hzdr.1] - 2022-10-14

Bugfix

  • use unquoted value to allow for proper command line argumens generation
  • functionObject deviation now properly writes out deviation as field as well as in log file
  • wrong apt command in dockerfile
  • define arguments of foamShellRunner with '--' preventing abbreviations
  • for degassingPhases fvModel add sink terms for transported variables
  • qt5-default package is not available in Ubuntu 21 and newer

Deployment

  • remove unnecessary patch tgz files from OpenFOAM directory
  • Do not commit changes to etc/bashrc or etc/cshrc if there aren't any
  • Adjust regular expressions for detecting sprint cycles to match also beyond one digit, i.e. 10-s.10
  • Check for existence of patch files before applying them
  • Changes to WM_PROJECT_VERSION, _COMPILER and _COMPILE_OPTION in basic are now committed to git
  • Fix updateSprintCycle.sh to also consider the WM_PROJECT_VERSION entry in codemeta.json
  • Add patches for OpenFOAM installation to code publication
  • bin directory in WM_PROJECT_USER_DIR has highest priority in docker images
  • Add Paraview to debian package

Documentation

  • Make sure to remove all hyphens from docker compose commands
  • Source OpenFOAM environment before applying sprint cycle patches
  • Fix typo in installation instructions
  • Re-structure file headers with better information about copyright
  • Modified header with improved copyright
  • Refer to nightly build addon Debian package in installation instructions
  • correct latex formulas and remove problematic extra package to fix Doxygen formula rendering
  • Automatically generate changelog file based on git commits
  • align keywords in Gitlab, Rodare, codemeta.json and HIFIS Software Spotlight
  • Correct Email address of Mazen Draw in codemeta.json
  • add position information to contact details
  • Add milestone information to support request issue template
  • New issue template for internal and external support requests
  • Fix broken links in doxygen
  • correct typo in installation instruction
  • add information to installation instructions that adding the local ssh key to the gitlab account is required for cloning the repository
  • Correct non-compliant file headers
  • Correct statement on supported Ubuntu versions
  • Add Tingting Zhang as contributor

Misc

  • Add words to spell checker list
  • Refine gitignore rules with respect to postProcessing folders
  • Refine gitignore rules related to postProcessing folders
  • Enable various models and utilities for release
  • Adapt VS Code configuration script to meet linter requirements
  • Include recommended VS Code extensions in configuration script
  • Fix typo in VS Code settings
  • Let VS Code classify C and H files as C++ independently from any extension
  • update VS Code settings to disable recommendations and clean-up
  • Do not hide .git* in VS Code file explorer (.git folder is hidden anyway)
  • Remove tar.gz and tgz from gitignore
  • minor corrections in createVSCodeProject.sh
  • writeCellCoords functionObject to print the cell-centre coodinates for a given cell id
  • Removed duplicate category from .gitignore
  • allow tracking of folders with leading digits, only ignore names consisting exclusively of digits and decimal points

OpenFOAM

  • Sprint Cycle Upgrade 10-s.1

OpenFOAM-Hybrid

  • protect dominant continuous phase from disintegration
  • simplify user access to curvature
  • prevent disintegration of dominant continuous phase

Physical Modelling

  • add kOmegaSSTSatoIt turbulence model
  • Implement droplet entrainment model
  • Add low-Re correction to Shi wallLubrication model
  • Write mass rate only once for master

Post-Processing

  • Added multiphaseEulerFoam-specific functionObject for extracting dimensionless numbers

Test

  • Counter-current test for resolved interface drag
  • Correct exit code of foamShellRunner.py upon failure
  • add test and demo case for disintegrationToDisperse morphology transfer
  • Simplified commands for obtaining directory basename in Allrun scripts
  • Refactor functionObject deviation

[HZDR-Multiphase-Addon-9-s.1-hzdr.2] - 2022-06-21

Bugfix

  • Add output to doxygen to check sprint version detection
  • correct path for cleaning bot
  • Fix wrong variable name in gitlab deploy job for debian package
  • fix deployment pipeline for openfoam debian packages

Deployment

  • add bot for cleaning up package files
  • enhance fabric for deployment of debian packages on local machines
  • remove custom aliases for FOAM_USER_DIR from docker images
  • create a latest release badge based on releases
  • Add QT dependencies for graphical functionObjects
  • remove cleanup for nightly packages
  • minor fixes due to wrong variable names
  • fix bug in version numbering
  • remove dublicated job for release pipeline
  • Enhance documentation and bug fixes for debian packaging
  • Ensure that sprint related patches of OpenFOAM release are applied for Hemera
  • Enable packaging for Debian nightly and stable packages

Documentation

  • Substituted remaining apt-get in installation instructions
  • added missing QtCharts package to installation instructions
  • fix headers of HZDR dictionary files

Misc

  • replaced m4-based template blockMesh dictionaries using #calc and #codeStream
  • update and unify gitignore

OpenFOAM-Hybrid

  • Write mass transfer rates for all morphology transfer phaseTransfer models
  • re-formulation of turbulent dispersion force to make it consistent and more stable
  • unify default hybrid setups with caseDicts

Physical Modelling

  • Updated SaffmanMei lift model implementation following its contribution to OpenFOAM-dev
  • Updated Kusters breakup model implementation following its contribution to OpenFOAM-dev
  • Updated AdachiStuartFokkink agglomeration model implementation following its contribution to OpenFOAM-dev
  • Added basic infrastructure for an iterative drag and non-drag force correction

Post-Processing

  • generally use CSV as output format

Test

  • added -from and -to options to Alltest
  • Fix and simplify some cases regarding post-processing and plotting

Tutorial

  • Added case simulating solid particle agglomeration and breakage

HZDR-Multiphase-Addon-9-s.1-hzdr.1 - 2022-04-26

Baseline

  • swarm correction model to blend out drag and lift model
  • breakup and coalescence case dictionaries and degassing boundary condition for bubble columns

Bugfix

  • Update sizeDistribution caseDict to British English
  • Cross-project pipeline is now allowed to fail
  • patch does not contain any data

Deployment

  • fix missing environment variable for username
  • add templates from WM_PROJECT_USER_DIR to ~/.OpenFOAM
  • Enable profiling images for docker-compose

Documentation

  • update license information to GPL v3 or later
  • add information about clone for docker compose
  • correct sprint cycle commit sha for OpenFOAM-dev and ThirdParty-dev
  • add links for further information about syntax of Compose files
  • add missing docker login registry.hzdr.de
  • Correct installation instructions with respect to WM_PROJECT_SITE_DIR
  • Added information on git-lfs to installation instructions
  • Add doi to codemeta and openfoam website link to Readme.md
  • Split command line commands into blocks for efficient use of "copy" button from the browser
  • reference to OpenFOAM code quality guide
  • New checklist for merge requests containing a possible release contribution
  • Modify cite us as for processing with pandoc to pdf
  • New installation instructions
  • Centred the Class Declaration comment

OpenFOAM

  • Rationalized the naming of scalar limits

Physical Modelling

  • Shi et al (2021) wall lubrication model for rigid spheres

Population Balance

  • functionObject for computing integral and mean properties of a size distribution
  • Cleanup of unnecessary includes files
  • Prepare coalescence and breakup models of Liao et al. (2015) for contribution
  • Correct Ceff coefficient in Liao coalescence model implementation
  • CUDA CoulaloglouTavlarides kernel
  • Configurable number of CUDA streams
  • add reference solution to test cases
  • Cuda Test for LehrMilliesMewes kernel
  • CUDA LehrMilliesMewes binary breakup model

Post-Processing

  • Python script for calculating time derivative of time series

Test

  • set terminal to color in createGraph scripts of population balance tests

automatically generated with git-chglog