Skip to content

Releases: piclas-framework/piclas

Release 4.1.0

07 Feb 13:55

Choose a tag to compare

Breaking/Parameter Changes

  • Renamed function VECNORM to VECNORM3D because the PETSc library uses the same symbol name [b048051]

Documentation/Tools/Regression Testing

  • Update default/recommended libraries to GCC14, OpenMPI 5.0.8, MPICH 4.3.1, HDF5 1.14.6 [02d740c]
  • Added new script for installing ParaView binaries as environment module [9217e62]
  • Added new script for installing OpenBLAS library files as environment module [4912b12]
  • Split the gitlab runner into two separate runners to build/execute the AppImage and deploy the repository to GitHub separately from running the regression tests [ce01a3b]
  • Automatic code coverage report generation for gitlab regression test pipelines using gcov and downloadable artifacts with html reports [b255b54]
  • Updated docs/requirements.txt package versions for building the user/developer guide [ac84642]
  • Updated std.out file cleaning script cleanUp_stdOut_files.py and replaced method for removing non UTF-8 characters from std.out files by unix function iconv [49a340b]

Features

  • Calculation of torque values at wall boundary and new SurfAnalyze output per user-defined groups [324c981]
  • DVM support for plasma, diatomic species and mixtures [cb9dda9]

Improvements

  • Ignore case when mapping particle to field BCs during initialization [33a1467]
  • FIBGM: Added abort in SinglePointToElement if any of the GEO%FIBGMdeltas is zero to prevent division by zero and adjusted inquiry for setting DeleteFIBGM to be the same as for GEO%InitFIBGM (check for cell_local and background particle emission types) [0d62fc7]

Fixes

  • Directional distance calculation due to tolerance problems that lead to "non-symmetric exchange processes" [eb92f63]
  • Fixed internal energy accommodation at wall boundaries with new decision routine [a80ee8c]
  • Initialize pAdaptionBCLevel = 0 to deactivate p-adaption at the boundary for Maxwell and Poisson field solvers [4b775ab]
  • Bugfix in adaptive surface flux for sides parallel to symmetry axis [efd6c38]
  • Disable background gas regions and distribution when no background gas species has been defined [2a29bd2]
  • Fixed surface flux particle emission in combination with ambipolar diffusion [b18d72e]
  • Scale HDG stabilization parameter with the problem dimensionality [627f75b]
  • Fixed tangential surface vector calculation in SurfMetricsFromJa [df05967]
  • Fixed element volume calculation for axisymmetric simulations [0d997e4]
  • Fix self-built PETSc configure step by setting CMAKE_POLICY_VERSION_MINIMUM=3.5 when using cmake v4 or higher [d8f4f62]

Release 4.0.0

25 Sep 11:33

Choose a tag to compare

Breaking/Parameter Changes

  • Major restructuring has been required to accommodate the variable polynomial degree (p-adaption) feature

Documentation/Tools/Regression Testing

  • Python script for the simulation of 1D shock tubes (see tools/ShocktubeScript folder) [5f009b9]
  • superB: bugfix in output of time-dependent fields, output of linear conductors as a single file, removal of unused TimeStampLength [0da3e85]
  • Upgrade extract_userblock.py from Python 2 -> 3 [60afdfc]

Features

  • Several models for electron-based secondary electron emission (SEE) (User guide)
    • Square/exponential fit, and after Seiler 1993 [8accb21]
    • Vaughan formula (Villemant 2019) [7743b18]
    • Possibility to always emit a single secondary when using variable particle weights
  • Simple back-scattering in centre-of-mass frame using cross-section data in MCC (User guide) [bd9d715]
  • Variable polynomial degree (p-adaption) (User guide) [562c7dd]
  • Surface super-sampling for the triangle-based tracking routine (ie. most DSMC use cases) (User guide) [8799992]
  • Granular flow / solid particles can be simulated using a background gas distribution (User guide) [1d69a9b]

Improvements

  • Improved PETSc solver options and documentation in user guide. Currently, available options include a direct Cholesky solver (requires MUMPS), an iterative Conjugate Gradient solver (and a pipelined version for multi-node applications) with a block Jacobi preconditioner, and a flexible GMRES solver with either BoomerAMG (requires Hypre) or block Jacobi preconditioning. [8accb21]
  • Support of multiple dielectric regions with different parameters for the Poisson solver [cc5ed0e]
  • Background gas regions: allowing overlap by overwriting the previous region, warning during initialization in that case [0da3e85]
  • Read-in of magnetic field: compare against relative machine precision to detect not equidistant fields [0da3e85]

Fixes

  • Bugfix in CalcVarWeightMPF for DoCellLocalWeighting [2b91783]
  • Fix conservation in case of a recombination with weighting in the chemistry module [cfd81c1]
  • Bugfix in sampling for adaptive surface flux: SamplingIteration must not be utilized in case of a relaxation factor [82ae9e1]
  • Bugfix in background gas distribution: do not skip the calculation of the mean vibrational energy for chemical reactions [483c0ed]
  • Bugfix in CalcSurfaceValues for the combination of inner BCs + CalcSurfaceImpact and PorousBC [cc5ed0e]
  • Bugfix in CalcBoundaryParticleOutput with inner BCs: loop over nSides to include inner BCs in area calculation [cc5ed0e]
  • Bugfix in pre-commit hook: initialize MPICOMMWORLDERR variable with 0 [cc5ed0e]
  • Bugfix in surface flux parallel to the rotational axis [bf93d86]
  • Bugfix in 2D particle tracking in combination with clone insertion [bf93d86]
  • Fix boundary sampling allocation for varying wall temperature [7f2500c]
  • Fix reset of the surface coverage by the LoadBalance routine [9b7fd01]
  • Bugfix in raytracing simulations: distanceMin has not been updated in CalcWallAbsoprtion [7af0afb]
  • Bugfix in macroscopic restart in combination with variable time step for an axisymmetric simulation [2f468e5]
  • Bugfix in SamplePressTensHeatflux calculation [28e7474]
  • Bugfixes for restart & macroscopic restart with constant massflow surface flux (type = 4) [a97e08e]
  • Fixed a bug in the BGK collision operator occurring with variable time step or variable weighting factor [fd7a513]

Release 3.6.0

26 Jun 10:14

Choose a tag to compare

Breaking/Parameter Changes

  • The CMake configuration has been updated to a modern format. To avoid conflicts, make sure to delete your build folder, re-build and compile PICLas.

Documentation/Tools/Regression Testing

  • Reggie is now shipped via pip install package [7eceab5]
  • Added bash script for automatically checking the AppImages using regression tests [3c72932]
  • Removed the Gold linker (deprecated as of GNU Binutils 2.44) [63784e9]
  • Added automatic compiler warnings check [02bfb82]
  • Proof-reading tutorials [d85845d]
  • Added documentation to the Radiation section [0d22135]
  • Added documentation for deposition methods in axisymmetric simulations [c7ede2e]
  • Fixed reggietable.sh producing wrong link to readme.md [17c1371]
  • Species database: improved Python scripts for species addition/modification and check against databases of the heat of formation and electronic energy levels (for atoms) [6d531c5]
  • Check for MPI_COMM_WORLD automatically and prevent commit via git hook [8c7bae7]
  • CMake: Port modern CMake config from FLEXI [9b58fb5]
  • Fix escaping for userblock generation [d515ac3]
  • Update of documentation in general and PETSc installation instructions [6f2b033]

Features

  • Cosine and squared cosine velocity distributions for the surface flux (User guide) [d33d32c]
  • Anharmonic oscillator model for vibrational energy in DSMC (User guide) [6d531c5]
  • Quantized rotational energy treatment in DSMC (User guide) [6d531c5]
  • Hybrid fluid-kinetic model: electrons are treated with a first order drift-diffusion model and ions kinetically (User guide and tutorial) [de6e054]

Improvements

  • Changed all usage of MPI to Fortran 2008 Syntax (mpi_f08) [99037d1]
  • Perform ISNAN check only in DEBUG [a6ce27e]
  • Avoid allocating unnecessary RAM during particle insertion with weighting [46a1a29]
  • Enabled the utilization of the adaptive mass flow boundary condition (Adaptive-Type = 4) for axisymmetric simulations with radial and linear weighting [d33d32c]
  • Enabled the linear time step scaling in 3D along y- and z-axis with and without background gas [d33d32c]

Fixes

  • Fixed issue of automatic FIBGM filling up memory with small elements [a374976]
  • Fixed almost perpendicular sides to y-axis when using radial weighting and surface flux [2ca2c4a]
  • Fixed a bug, where the sampled velocity vector utilized for the adaptive surface flux (subsonic BCs) has been overwritten by the surface normal [d33d32c]
  • Fixed particle loss in very small geometries due to tolerances in 2D and 3D (triatracking) [2694bd7]
  • Several fixes in automatic FIBGM, especially for 1D and 2D cases [c79640b]
  • Fix of read-in during surface chemistry init for fixed probability and species database [e1fa1ae]

Release 3.5.0

20 Dec 14:34

Choose a tag to compare

Breaking/Parameter changes

With the implementation of linear and cell-local weighting for 3D, the radial weighting parameters utilized for 2D axisymmetric simulations have changed from:

Particles-RadialWeighting=T
Particles-RadialWeighting-PartScaleFactor=100
Particles-RadialWeighting-CloneMode=2
Particles-RadialWeighting-CloneDelay=10
Particles-RadialWeighting-SurfFluxSubSides = 20
Particles-RadialWeighting-CellLocalWeighting = T

to the new version (Section 2D/Axisymmetric Simulation):

Part-Weight-Type = radial
Part-Weight-Radial-ScaleFactor = 100
Part-Weight-CloneMode = 2
Part-Weight-CloneDelay = 10
Part-Weight-SurfFluxSubSides = 20
Part-Weight-UseCellAverage = T

Make sure to adapt your parameter files accordingly!

Features

Release 3.4.0

16 Dec 16:56

Choose a tag to compare

Documentation/Tools/Regression testing

  • Fixed typo in .gitlab-ci.yml for weekly reggies [bffc907]
  • Added the two-stream instability and Landau damping tutorials [b6d34e9]
  • Added new tool for cleaning up module files and corresponding library directories [143b3aa]
  • Added new module installation script for linaro and corresponding compiler flags [d19a2d4]
  • Fixed dsmc-cone-2D tutorial [fd7ec09]
  • Increased p7zip version (AppImage) [b32f525]

Features

Improvements

  • Automatic calculation of the FIBGM deltas and factors [33ff058]

Fixes

  • Bugfix for MEASURE_MPI_WAIT with PARTICLES=OFF [7ac9b66]
  • Fixed lost particles in tracking after photo-ionization emission in the volume [4597f1b]
  • Fixed halo region calculation to avoid asymmetric exchange processors [07fd244]
  • Fixed that the initial auto load balance deletes the original restart file in case of short timestamp lengths [66f936c]
  • Bugfix in CalcSurfaceValues: wrong index in MacroSurfaceVal array in axisymmetric case [83aa3d1]

Release 3.3.1

10 Sep 17:49

Choose a tag to compare

Documentation/Tools/Regression testing

  • Updated pre-commit git hook for more understandable error messages [1fe0c42]

Fixes

  • Bugfix for a pure monatomic species BGK simulation [347042e]
  • Bugfix for variable rotational relaxation probabilities in combination with variable particle weights (radial, local time step and vMPF) [ead337d]
  • Increase particle arrays by number of missing particles during restart to avoid running into MaxParticleNumber limit [1be8c61]

Release 3.3.0

12 Aug 21:17

Choose a tag to compare

Documentation/Tools/Regression testing

  • CMake: Added WORKING_DIRECTORY parameter to EXECUTE_PROCESS for git commands to ensure the execution in the source folder [f5ddae4]
  • Documentation: Updated the Regression Testing chapter in the developer guide [268255e]
  • AppImage: Added new executables for Bhatnagar-Gross-Krook (BGK) and Fokker-Planck (FP) methods. Updated the compilation from glibc 2.17 to glibc 2.28 [9b09c79]
  • Tools: Added update command line argument for InstallHOPR.sh [0442656,e2eec9ce]
  • CMake: Added self-built PETSc as part of the PICLas compilation [20fca0a]

Features

  • Sampling of pressure tensor and heatflux within the flow field [7362da2]
  • Extension of the Poisson HDG solver to support 2D and axisymmetric simulations [23b2eb3]

Improvements

  • Shift element metrics along space filling curve instead of recalculation during load balance [d372cb1]

Fixes

  • Fixed a bug and the corresponding sanity check for the probability-based chemistry model, where all reactions of the impacting species were tested regardless of the current BC [21f7a38]
  • Fixed a bug in axisymmetric 2D tracking for almost zero ny vector [b9cc33b]
  • Fixed a bug in piclas2vtk with inner BCs and nSurfSample > 1 [6d32fea,09137d1c]

Release 3.2.1

04 Jun 08:41

Choose a tag to compare

Breaking/Parameter changes

  • 1D/2D/2.5D (axisymmetric) simulations: The particle tracking has been simplified for symmetric simulation cases, significantly reducing the computational duration for certain applications. In the future, the boundary conditions in the symmetry dimension shall be identified as symmetric_dim. The documentation in Section "Symmetric Simulations" has been updated accordingly.

Documentation/Tools/Regression testing

  • Updated list of contributors
  • Update species-specific timestep description in the user guide + fix Symmetry2DAxisymmetric parameter error [5a0be35]

Improvements

  • Real 1D and 2D tracking for symmetric simulations [5a0be35]

Fixes

  • Fixed non-initialized arrays in ChangeArraySize routine [a3a8df6]
  • Fixed inconsistency in cross-section based reactions, where the energy check was relativistic but not the actual energy balance, leading to negative collision energies, when the energy is very close to the required reaction energy [a3a8df6]
  • Fixed MPI communication of dielectric permittivity at dielectric <-> vacuum interfaces (Maxwell solver) [9b1aa67]
  • Fixed the read-in of dollar symbol variables in combination with load balancing [7f5b947]

Release 3.2.0

22 Apr 21:41

Choose a tag to compare

Documentation/Tools/Regression testing

  • Fixed daily switch between OpenMPI and MPICH on the regression server [09da506]
  • Update of setup installation scripts: new download links for PETSc and Modules [d55cef4]
  • Fix dollarmath setting in MyST RTD, which is now disabled by default [8b57c0b]

Features

  • Introduction of the Unified Species Database: new database combining pre-defined chemistry models, cross-section data, electronic states and species parameters. Data verification is still in progress, values within the database should be checked before utilization. [c0a8100]
  • Finite-rate surface catalysis model (Detais in Section Surface Chemistry) [e33866a]
  • Timestep subcycling for rotational frame of reference [76d97a1]

Improvements

  • Output of the percentage of resolved cells regarding the time step and mean collision separation over mean free path in PartAnalyze.csv for DSMC [581e3e4]
  • Check GCC parse_associate, split parameter files at comma [d09a67e]
  • Prevent userblock from including complete HDF5 (and other) files [8ce53a5]
  • Determine mesh extent using MPI instead of overlapping shared memory access [0e42db0]
  • Detect libraries pre-installed on the system and set CMake defaults accordingly [31d376e]

Fixes

  • Added CHECKEXP in electronic energy exchange to avoid FPE [9db4449]
  • Do not perform CalcWallSample for a particle that has been deleted [8cf7ce8]
  • Fix of BoundaryParticleOutput in combination with species-specific time step [7b8f993]
  • Use MPI_STRUCT to avoid integer overflow in StartCommunicateMeshReadin when using large meshes [321b924]
  • Calculate the correct surface area for the circular inflow in case of an exclude circle [0973c84]
  • Fix of uninitialized variables in GetEMFieldDW [0c49f4d]

Release 3.1.0

02 Feb 00:39

Choose a tag to compare

Breaking/Parameter changes

  • PICLAS_TIMEDISCMETHOD = RESERVOIR has been removed. Reservoir simulations can be performed with DSMC, using the flag Particles-DSMCReservoirSim = T. [fea602f]
  • Particle arrays are now allocated dynamically. The original array length per MPI process defined by Part-maxParticleNumber is now used as an abort threshold (default is ~2e9) that terminates the program if one process has more particles than the threshold allows [5c7de28]

Documentation/Tools/Regression testing

  • CMake: Corrected syntax in IF clause, using HDF5_VERSION without ${} [02a8273]
  • Updated pre-commit git hook: Do not allow executables to be committed [52249ea]
  • Changed reggies to use AbortExchangeProcs = T again [5227b36]
  • Fix of Gmsh configuration file in the 2D 70deg blunted cone DSMC test case [1e32210]
  • Use the paths of the unaliased binaries for the pre-commit hook [07ce398]
  • Added best practices section to developer guide [df90cbd]
  • Added prerequisites checks for the HTML and PDF building scripts [06d69b3]
  • Added check to prevent tab characters from being committed to the git repo [d63356b]
  • Added new extension to RTD to increase the width of the page to 98% [9f27a8a]
  • Updated RTD required version numbers [a73087b]
  • Adjusted module scripts for mpich [c2c8337]
  • Fixed AppImage creation on GitHub [83ea791]

Features

  • BGK for polyatomic molecule mixtures with internal energies [98d36ae]
  • Radiation/radiation transport solver [c006565]

Improvements

  • Deleted timedisc 42 for reservoir - instead use timedisc 4 for DSMC with flag Particles-DSMCReservoirSim [fea602f]
  • 3D periodic HDG: Instead of defining a complete side where the potential is zero, only set the potential of a single DOF to zero [4052576]
  • Allow Mortar interfaces between a dielectric (ie. an inner BC) and vacuum [be76595]
  • MPICH in addition to OpenMPI is now supported [30b4006]

Fixes

  • Do not allow PETSc + INT8 as this is not implemented yet [75fcd20]
  • Resolve "More part BC than actual BC is not detected" [5e598f0]
  • Fix pressure jump when using a macroscopic restart with adaptive BC type = 2 [2349f05]
  • Fix load balance when using the 1D Sod Shocktube test case [20fcc1e]
  • Resolve "Commit hash in std.out can be wrong" [e6589d4]
  • Separate communicator for nodes with a BC side to avoid MPI deadlocks [81c3e47]
  • Fixed variable weighting factor for pure PIC and improved load-balance time measurement for vMPF in general [50cc82f]
  • Moved IF clause for collisionless flow outside of element loop [000aa6d]
  • Avoid memory overflows during octree refinement and SpaceIC=point [66f6d00]
  • Several bugfixes for the cell-local electronic excitation rate output (and added missing documentation) [84de1c8]
  • Reduce init/load balance time when using rot-periodic BCs [5a2b4b2]
  • Fix of particle readin in combination with radial weighting [047bfe0]
  • Bugfix in MacroscopicRestart: ElemVolume_Shared and ElemMidPoint_Shared need CNElemID [1a55036]
  • Fix missing UNLOCK_AND_FREE calls [137bb79]
  • Bugfix in CalcSurfaceImpact and SpeciesSwap [1137c2b]