Skip to content

Releases: piclas-framework/piclas

Release 3.2.1

04 Jun 08:41
Compare
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
Compare
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
Compare
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]

Release 3.0.0

09 Aug 15:47
Compare
Choose a tag to compare

Breaking/Parameter changes

  • AppImage distribution of Linux binaries via GitHub Assets for piclasDSMC, piclasLeapfrogHDG, piclas2vtk and superB [546975d]
  • Parameters for the linear temperature gradient have been chagend from TemperatureGradientStart and TemperatureGradientEnd to TempGradStart and TempGradEnd

Documentation/Tools/Regression testing

  • Update environment modules script InstallHOPR.sh [e2022f5]
  • Updated PETSc install script and fixed utilized PETSc version to avoid using unsupported versions [6e7b7ce,a7632428]
  • Installation script for AOTUS within the environment modules [a6de162]
  • Updated the plasma wave tutorial [34423be]
  • Added weekly reggie that
    • downloads and compiles the hopr source code via LIBS_BUILD_HOPR=ON [fc5c599]
    • downloads and tests the hopr AppImage executable from GitHub [546975d]
  • Added unit test that initializes the Mortar 1D interpolation operators and tests them [c75b4fa]
  • Added new section to the developer guide Troubleshooting for quick reference when debugging very cumbersome bugs, see Section Troubleshooting [fe37889]
  • Updated environment modules to GCC 13.1.0 + OpenMPI 4.1.5 + HDF5 1.14.0 + PETSc 3.19.3 + HOPR [86a3879]
  • Updated hopr version tag for installation or download to v1.2.0 [c3346b5]
  • Gitlab CI: Fixed duplicate template definition in .gitlab-ci.yml, download of reggie as a separate job, removed old if clause for DO_NIGHTLY, added a DSMC build job [1db1c3e]

Features

Improvements

  • Output ETA (status line) during dt_analyze but with new line instead of carriage return [309d2df]
  • Removed old vMPF routines (doParticleMerge), ExcludeRegion and AuxBC [9f550e0]
  • Added sanity check in WriteArrayToHDF5() to avoid integer overflows in case of KIND=4 [9d011d3]
  • Updated HOPR library version in CMake compilation to v1.1.1 [0032eb3]
  • Surface analyze output: Avoid output of zero arrays for Porous BC sensor [f438f0d]
  • Restructured particle mesh and normal mesh to allow compilation of certain element/node containers when PARTICLES=OFF is used [b981c48]
  • Added a cycle statement in loop for symmetry BC sides in TriaTracking in case of 2D simulations [ae216e6]
  • Multi-core operations on shared memory (SHM) arrays should never overlap + moved some CN-local mapping arrays into SHM [d7654da]
  • Added shared memory window name, calling file and line number to DEBUG_MEMORY compile option [8a912f2]

Fixes

  • Fixes for photon emission and SF adaptive output to std.out [68fad44]
  • Fixed inquiry when compiling on HLRS: always use fully qualified domain name (FQDN) [77beb27]
  • Fixed bug in REAL format file version [2b4ae0d]
  • Changed PETSc error handling to work with v3.18 [18ff4c0]
  • CORE_SPLIT gives the number of cores per (virtual) node [3602178]
  • Only deallocate PartIntGlob if it was allocated [58eb787]
  • Fixed bug in SurfFlux mass flow output, when using a Part-AnalyzeStep [be83024,e275b6d2]
  • Fixed bug in CreateParticle routine [d418a2f]
  • Fixed MPI=OFF compilation for HDG and removed warnings [5632b3c]
  • Remove large unwanted file [b14d943]
  • Fixed bug in index usage for output of electric potential via "boundary field output" (BFO) on specific BCs over time to FieldAnalyze.csv [fc239c2]
  • Fix in cmake for compilation with externally built HDF5 1.14.0 [20ce793]
  • Bugfix and extension of temperature gradient calculation [713f044]
  • Adaptive Surface Flux BCs: corrected the average over BC feature and improved the treatment of the Type=4 surface flux BC during init, restart and load balance [012e2bf]
  • Resolved ASSOCIATE construct that might redefine the input variable [433cc92]
  • Adjust MERGE(PRESENT) for GCC13.1+ [ffd30e9]
  • Fixed electron velocity emission angle for photon ionization in the volume [4495983]
  • Added missing LIBS_ variables to the userblock via the configuration.cmake file output in cmake [a357a1c]
  • Fixed the cell volume weighted mean (CVWM) deposition method in combination with periodic BCs [2334dad]

Release 2.9.0

23 Dec 19:39
Compare
Choose a tag to compare

Breaking and/or parameter changes

  • Rotational periodic BC: the rotational angle is now given per boundary condition, e.g. Part-Boundary5-RotPeriodicDir = -1 is replaced by Part-Boundary5-RotPeriodicAngle = -15., where the rotational angle is input directly with the direction given by the sign. The global parameter Part-RotPeriodicAngle = 15. is not required anymore.
  • The pre-processor HOPR can now be compiled during the PICLas compilation: LIBS_BUILD_HOPR ON. However, the HOPR tag to be compiled is currently set to v1.0.0, which is not yet released but hopefully will be in the next few weeks.

Documentation

  • Tutorial for meshes with gmsh and HOPR installation in PICLas [f5441e5]

Reggie/Testing

  • Increased tolerance due to statistical fluctuations when using different core counts [752d0fd]
  • Unit tests are automatically disabled when using CMAKE_BUILD_TYPE = Sanitize and LIBS_USE_MPI = ON due to the memory errors that are generated in the MPI library [73cf1ac]
  • Execute unit tests in parallel, defaulting to number of CPU cores [4b0b805]
  • Added INVERSE function from mathtools to unit tests [c74cc8a]

Features

  • Simple empirical model for the sticking coefficient [4b6eee7]
  • Maxwell coaxial waveguide [10cc6a1]
  • New particle emission SpaceIC "EmissionDistribution" for initial particle emission via interpolation of n, T and v from equidistant field data [c57ac29]
  • Virtual cell merge for DSMC, BGK, FP [65a9e9f]
  • Moving average for BGK [44b5b89]
  • PETSc library for the electrostatic Poisson solver HDG [a612715]
  • Sampling and output of a cell-local electronic excitation rate [a612715]
  • Possibility to define multiple rotationally periodic BCs [6e7a318]

Improvements

  • Introduced new globals function 'DisplayMessageAndTime' to output execution times in seconds (and min/hour/day) [5663061]
  • Added counters for all elapsed time measurements of MPI_WAIT [54a7496]
  • Added more output on abort when the new host processor of a particle cannot be determined [4545ca9]
  • Adjusted output to std.out (elapsed time format and less output during load balance) and only read external magnetic field once during initialization and not during load balance restarts [5e872ae]
  • Added timers to piclas2vtk and superB [6097675]

Fixes

  • When DoDeposition=F, allow reading/writing the surface charge container from/to .h5 [24e7fb1]
  • Fixed bug in chemistry: inconsistent consideration of relativistic effects in the chemistry module can lead to negative collision energies [5000e76]
  • Fix output of correct elapsed time in DisplayMessageAndTime [4879a88]
  • Calculate ETA with time difference of timedisc loop [69b926b]
  • Fixed h5 output during initial load balancing after the first time step [8e13580]
  • Elastic cross-sections are utilized as the base for the total cross-section arrays; extend with levels above the elastic cross-sections to include reactions and excitation [7c7487d]
  • StartT set twice [ddaa04a]
  • Fix memory leak in MPI side pointer structure [a90de83]
  • Correct weighting based on volume flow rate in adaptive surface flux Type 4 [c6341d3]

Release 2.8.0

15 Oct 22:31
Compare
Choose a tag to compare

Documentation

  • Increased sphinx version from 4.1.2 to 4.2.0 [6ef4ce9]
  • Updated recommended and minimum system requirements for piclas installation [8ed3470]

Tools

  • Changed string match to string equal in cmake list when setting the download url for external libs [43626b3]
  • Userblock: add executable stack markings, do not assume x86_64 [0c63aea]

Reggie

  • Changed "mpirun" to "MPI" in regression tests parameter files externals.ini [d4e74dd]
  • New regression test for vMPF and merge of particles [65eba13]

Features

  • Allow restart with vMPF=T from a non-vMPF restart file (in combination with BGGas%UseDistribution=T) [25194b6]
  • Thermionic emission modelling through the Richardson-Dushman equation with Schottky effect [baee671]
  • Added new boundary for HDG solver that adjusts a Dirichlet boundary condition in combination with coupled power analysis to achieve a user-defined power input [3ed3780]
  • Rotational frame of reference for BGK/DSMC simulations of rotational systems [f21618c]

Improvements

  • Adjusted the error message when using the wrong BC types in combination with HDG [4c96310]
  • Added read-in parameter info [INT], [LOG], [REAL] etc. in --help output [58b1648]
  • Added new load balance algorithms that do not rely on hdf5 I/O during load balance restart (can be switched back to the original method via UseH5IOLoadBalance=T) [4a0d1bc]
  • Removed the majority of (re-) initialization output to std.out during load balance [69400ca]
  • Improved initialization performance for rotational periodic BC [8e7e879]
  • For specific volume-emitted particles, the particle properties have been stored in PartStateBoundary.h5, which can now be activated/deactivated by setting Species(InitSpec)%Init(iInit)%PartBCIndex to -1 (default, no output) or >= 0 (output) [61680a3]
  • Adjusted the HDG linear potential to use the same functionality as RefStates, allowing to define multiple linear functions for an arbitrary number of boundaries [2f40cae]
  • Use Fortran2003 MOVE_ALLOC functionality (including a test during compilation to ensure a GCC version > 4.8.5) [5ea01c4]

Fixes

  • Fixed error in "Read external field ..." output [157d61b]
  • Fixed missing deallocate of BackwardReacForwardIndx [665a416]
  • Fixed and improved abort messages when MaxParticleNumber overflows and activated the missing parameter UseCollectiveIO [337bbcd]
  • Fixed memory leak in shape function deposition routines with charge conserving property [853c129]
  • Fixed EXP() function over/underflow in QK and BGK routines (also used by FP) [422481a]
  • Fix hdf5 error due to NextFile attribute write if the attribute already exists (e.g. in a restart file) [3a32dfd]
  • Fixed installation procedure when downloading repository without git [1d17bc5]
  • Fixed linking of C++ library using CMake and ninja generator [52087c4]
  • Fixed the determination of the new particle weight during the merge routine [f876d53, 83bf518]
  • Added missing offset during readin of node info when curved=F and NGeo>1 [ce9cf44]
  • Fixed overflow in firstSide/lastSide=INT(REAL(...)) statements due to large meshes, e.g., >4e6 elements [6242f6c]
  • Distinguish machines based on their FQDN in CMake [815d90e]

Release 2.7.0

08 Jul 20:29
Compare
Choose a tag to compare

Tools

  • Added more lines for removal in std-x.out cleanup script [64ec753]
  • Created module env script for hopr installation [2c464d0]
  • Created module env script for petsc installation [6efed3e]
  • Added setup env install packages for ubuntu 22 and updated various setup env scripts [a6a0d54]
  • Added CMake compatibility with ninja build system [76ecb24]

Reggie

  • Created reggie that fails due to non-symmetric exchange procs [8b17f17]
  • Removed double definition of .ini files for externals used in reggies [61545ad]
  • Moved 1D SOD shock tube reggie from WEK_Reservoir to WEK_DSMC [a4e0a7d]

Features

  • New model for the electronic relaxation based on the BGK approach (see Section Electronic Relaxation) [1568500]
  • Allow more than 1 time-dependent coil in superB and consider different amplitude and phase [61c112d]
  • Circular inflow and 2D axisymmetric simulations with an arbitrary velocity vector [05ff81f]
  • Added new boundary via BoundaryType = (/2,1/) to linearly ramp the potential on a BC from 0 to Phi (Phi is user-supplied) [82461d9]
  • Added new cmake option for PICLAS_SHARED_MEMORY for splitting the shared memory to emulate multi-node behaviour on a single node [bdbd8de]
  • Added 3D variable external magnetic field read-in and trilinear interpolation from .h5 file [ed75f97]
  • Definition of background gas regions & treatment of relativistic electron energies in MCC [8b1c104]
  • Added new push for relativistic particles: 2nd order Higuera-Cary method via PICLAS_TIMEDISCMETHOD=Higuera-Cary (added several regression tests as well as the relativistic treatment in the Boris-Leapfrog pusher) [562207e]
  • Added new parameter 'DoParticleLatencyHiding' (PICLAS_PARTICLES=ON and LIBS_USE_MPI=ON) for activating particle-based latency hiding (currently only BGK & BGK-DSMC) [059af40]
  • Surface flux: possibility to define an emission current or mass flow with a fixed velocity (default=0) for modelling e.g. thermionic emission and outgassing [23c1d78]
  • Added new SEE-I model with variable yield, emitted electron energy and equidistributed velocity distribution [cbeea4d]

Improvements

  • Changed std out info when no file is created in piclas2vtk due to no data being present in the .h5 file [a1e20a5]
  • Introduced read-in parameter UseCollectiveIO to set collective=.TRUE. for the function call to DistributedWriteArray [89b4009]
  • Added BGField contribution when fallback algorithm "CVWM save" is activated when elements are strongly deformed and TriaTracking yields a different host element than RefMapping (the latter is used for deposition within the reference element) [bb2c4f0]
  • Removed shared memory procedures from shape function deposition [ea991e9]
  • Allow weights below an MPF of 1.0 during splitting of particles in vMPF [8dfeb4e]
  • Improved MPI detection and git hooks in CMake [3d75bd8]
  • Electronic relaxation and particle weights for the Gimelshein selection procedure [a18248f]
  • Added output info of average number of particles per processor as well as min/max [eb9ed43]
  • Single-stage communication for cell volume weighting mean (CVWM) deposition [6c9ed3a]

Fixes

  • Fixed SEE particles that are inserted into dielectric region when being emitted directly on the element face [9075f3d]
  • Fixed initial push of surface flux emitted particles in Leapfrog time disc [2179d09]
  • Fixed wrong calculation of particle kinetic energy when the speed of light is set to c=1 [caf5855]
  • Fixed exchange proc determination [8c44b3f,9744179c]
  • Abort when using dielectric surface charge in combination with any deposition type other than CVWM [8dfeb4e]
  • Fixed sanity check for ambipolar diffusion and surface flux [89acda5]
  • Fixed field BC mapping in mesh read-in [b9a448a]
  • Fixed particle split limit and initialization of created particles [e0d1847]
  • Fixed .h5 output when using the Boltzmann relation electron fluid model [eb9ed43]
  • Fixed minor things in the user guide [f41189c]

Release 2.6.1

04 Mar 11:36
Compare
Choose a tag to compare

Improvements

  • Split LoadDistribution into individual routines [2b9c0fc]

Fixes

  • Disable output of adaptive BC info if no such BCs are used [61f25ee]
  • Bugfix for loadbalance with rotational periodic BC [61f25ee]
  • Use unit vectors for SEE emission [1af268d]
  • Allow the usage of cross-section reactions without other cross-section events (ie. with regular DSMC) [e83ebb0]

Release 2.6.0

27 Feb 14:16
Compare
Choose a tag to compare

Documentation

  • Minor improvements in the tutorials [50c7741]

Reggie

  • Added reggie for planar-curved sides with flip not equal 0 [390ffdb]

Features

  • Cross-section based electronic excitation for the background gas [4e77e06]
  • Two new SEE models and general improvements [640e348,f6ae93defdc4a40a1bf7e417e5ad55bb164bd934]
    • Enabled vMPF for SEE models
    • New SEE-I model (9): SEE-I when Ar+ ion bombards surface with 0.01 probability and fixed SEE electron energy of 6.8 eV
    • New SEE model for Ar-ion impact on copper cathode (10)
    • Bugfixes
  • Several features regarding the simulation of ion thrusters [f7aed32]
    • Restart with HDG solver from DSMC file + seed
    • Read-in a background gas distribution from a DSMC result
    • Cyclotron analyze parameters
    • Electromagnetic PIC field output
    • 2D/3D Neutralization emission
    • SEE model (8) by Morozov2004
  • Read-in of 2D external variable field (axis symmetric magnetic field) [5d181be]

Improvements

  • Add pre-commit hook to check file sizes and number [d72d7a1]
  • Porous BC: output of the pressure in Pa, do not require a pressure input for the sensor type BC, removed temperature input [3f78bc3]

Fixes

  • Fix numberedmulti readin for multi-digit numbers [7ab9e7c]
  • Fixed a bug in definition of halo cells with mortars [d86d494]
  • Changed abort criterion when reading XSec data to allow for slightly different levels compared to determind threshold [28cd6e4]
  • Fix periodic vectors and planar-curved sides [390ffdb]
  • Fix restart from renamed state file when not deleting/rewriting the restart file [31b8edb]
  • Fixed bug (and enabled respective regression test) in the calculation of automatic recombination reaction probabilities [e6ab0f4]
  • Multi-node fixes for rotationally periodic particle boundary conditions [cc36713]
  • Bugfix in load balance counter of sampling for the adaptive BC [4f003cc]
  • Bugfix integer KIND=8 functionality [eca64ad]

Release 2.5.0

24 Jan 16:16
Compare
Choose a tag to compare

Documentation

  • Two tutorials for DSMC: a reservoir and a hypersonic flow around the 70° cone [651b405]

Features

  • Photo-ionization using a polychromatic spectrum [ecbf037]

Improvements

  • Added script for checking the file sizes of changed/added files to be checked during the completion of the merge request before merging into master.dev [34ae2fc]

Fixes

  • Fixed index bug in extrapolation of Coll, Vib and ReactionPath XSec data [b43aec3]
  • Fixed header string length for 00X-nRealElectronsEmmited-BC0X output to SurfaceAnalyze.csv [071314b]
  • Fixed analyze for electron energy: Consider the energy of a real single particle (do not multiply with the MPF for min/max value) [652aaa5]
  • Output the elapsed time for all processors (not only the MPI root) during an abort [b5f11c6]