Skip to content

Releases: piclas-framework/piclas

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]

Release 2.4.0

15 Dec 11:31
Compare
Choose a tag to compare

With our last planned release this year, we would like to wish everybody relaxing holidays and a happy new year!

Documentation

  • Updated installation guide and minimum/recommended system configuration [99ca0bd]
  • Guide for mesh conversion with OMNIS and Coreform Cubit [fe8b3f7]

Reggie

  • Heavily reduce the compilation output during compilation of hopr in build stage of the gitlab CI [9ebd5f9]
  • Removed CheckExchangeProcs = F from tests, where it used to fail previosly [91bd551]
  • Removed module load from runner script and updated the module env scripts [2fe9cf8]

Features

  • Species-specific relaxation probability for electronic excitation [8c9a2b9]
  • Honeycomb emission for photo-ionization [d4ee4d5]
  • New dielectric (or PML etc.) region "HollowCircle" [8dc2925]
  • Added new analysis flag for electrons: CalcElectronEnergy=T/F that computes the electron min/max/average energy (eV) in each cell and stores the info in ElemData (constant cell value) and output of SEE electron number for SurfaceAnalyze.csv [56a603b]

Improvements

  • Updated cmake required version and documentation [79702f1]
  • Added extrae instrumentation to PIC Maxwell+LSERK [4345c7d]
  • Added cmake compile flag to switch IPO ON/OFF manually [38823b4]
  • Set -flto=auto in cmake if GCC>=10.1 [9850b74]

Fixes

  • Fixed vtu file conversion of TimeAverage files (PIC) to consider the time stamp now. [9d37be8]
  • Prevent integer4 overflow in random seeds calculation. Type-conversion of seed to INT8 required during determination of auxiliary clock variable. [4ff9e26]
  • MCS_over_MFP and sample counter were duplicated during refactoring: the output of DSMC_MeanCollProb and DSMC_MaxCollProb in the DSMCState was a factor of 2 too small [0a3a3f8]
  • Fixed periodic halo region & rotational periodic BC (non-symmetric exchange procs) [fdf0210]
  • Fixed initial determination of inner BCs (non-HALO sides) for sampling that is used in the sanity check. Additionally, the sanity check now shows the differences between non-HALO and HALO sides. [84b99f3]
  • piclas2vtk (when compiling with HDG): Fixed abort in fillMeshInfo() by passing meshMode to the subroutine to ignore the HDG load balance check performed therein [7d3798b]

Release 2.3.0

10 Nov 20:47
Compare
Choose a tag to compare

Reggie

  • Fixed missing Part-Species1-nInits=1 statements and "-Init1" in variable names of reggie

Features

  • Time-dependent coil functionality: standalone superB, piclas, piclas2vtk (for each interpolation point, one vtk file is created during conversion)
  • Calculation of the time derivative of the electric field for the HDG solver via CalcElectricTimeDerivative=T. Output is written to h5 as DG_TimeDerivative of type DG_Solution and can be converted via piclas2vtk.
  • Added new pre-proc flag 'PICLAS_MEASURE_MPI_WAIT', which, when activated, measures the time spent during MPI_WAIT() on each processor and accumulates the values over all processors for output to MPIW8Time.csv
  • Added new SEE-E model for impacting electrons on dielectric materials by A.I. Morozov
  • Variable particle weighting: Merge and split routines for PIC-MCC and trace background gas treatment

Improvements

  • New separate MCC routine with performance increase
  • Improved extrae instrumentation and added it to BGK-Flow
  • Particle emission communication: added sanity check, check using coordinates instead of background mesh
  • Periodic vectors are now computed automatically (i.e. Part-PeriodicVector1 = (/ 0. , 0. , 1. /) is no longer required during PICLas read-in)
  • Added IEEE intrinsic functions for catching x=NaN and x=Infinity via ISNAN(x)=T and ISFINITE(x)=F, respectively

Fixes

  • Fixed error when setting dt=dt_analyze and using automatic initial restart
  • Several fixes regarding the utilization of $ in numbered parameters
  • Several fixes regarding output in console and CSV files
  • Fixed element index of newly created particle in surface model emission routine
  • Added missing UNLOCK_AND_FREE, ADEALLOCATE and SDEALLOCATE for surface charging that is required for load balance restarts
  • Fix discrepancy between TriaTracking and RefMapping (used only for deposition purposes), when cells are strongly deformed and the random orientation of the two triangle sides heavily contradicts the tri-linear description of the elements

Release 2.2.2

23 Aug 07:49
Compare
Choose a tag to compare

Documentation

  • Added the developer guide to the Read the Docs documentation

Fixes

  • Bugfix in CalcAdaptiveBCInfo output: loop over wrong number of species

Release 2.2.1

20 Aug 15:21
Compare
Choose a tag to compare

Documentation

Improvements

  • Updated CMake: Structure, LTO, fixed optimization settings, possibility to download and compile LAPACK and OpenBLAS during PICLas compilation
  • Calculate MPI shared window size INSIDE Allocate_Shared
  • Output of the reduced running average array in the state file and read-in after load balance
  • Calculate WallTimeStart after write-out of initial state file
  • Adjusted load balance weight info output to std.out to allow the display of negative numbers
  • Changed abort message in CG solver residual when NaN occurs to a more meaningful info

Fixes

  • Bugfix in rotational periodic BC: use PartBound%MapToPartBC for RotPeriodicDir
  • Ensure *MULTI parameters work with arbitrary number of digits and
  • Return the actual *MULTI value instead of the proposal for arrays
  • Correct size for MPI-3 memory windows
  • Added sanity check to prevent division by zero in electron shell initialization
  • Do not read-in macroscopic restart flag in case of a new computation

Release 2.2.0

15 Jul 18:38
Compare
Choose a tag to compare

Documentation

  • Added documentation for InitTimeAverage()
  • Added the first tutorial: Plasma Wave (see the Tutorials chapter in the user guide)
  • Very first Doxygen implementation in piclas/doc/doxygen/

Reggie

  • Added a regression test using the sanitizer (SANI) compile option

Features

  • Added extrae for instrumenting the code for detailed code tracing of specific regions
  • Electron fluid model using the Boltzmann relation:
    • Variable ref. electron temperature
    • Automatic calculation of reference parameters
    • Automatic switch between fully kinetic and electron fluid modelling within a simulation

Improvements

  • Force zero potential in HDG solver on periodic boundaries when required. Improves convergences in fully 3D periodic setups when there is no reference potential present.
  • Introduce *MULTI parameters to set default value for a given parameter using the wildcard character $
  • Initially allocate common arrays to reduce memory churn
  • Format improvements in the PartAnalyze.csv
  • Abort simulation in case a non-hexahedral mesh is utilized
  • Abort: Non-symmetric particle exchange procs > 1. This check is optional. You can disable it via CheckExchangeProcs = F
  • Electronic states NIST database script: Levels beyond ionization energy are skipped
  • Added new BC for HDG: BoundaryType = (/6,1/) with RefState for electric potentials the have no zero-crossing in their signal
  • Added Part-Boundary ID to PartStateBoundary output
  • Refactored hdf5 output structure by introducing field, particle and state .f90 files
  • Debug disables PURE functionality of subroutines and functions

Fixes

  • Allow building of documentation with newer versions of pandoc
  • Split gatheredWrite communicator at SHARED_MEMORY if no Groupsize given
  • Introduce BARRIER_AND_SYNC, reduce size of periodic halo region
  • Fixed deadlock (via MPI barrier) in particles restart

Release 2.1.0

13 May 13:33
Compare
Choose a tag to compare

Improvements

  • Python scripts for cross-section and electronic state databases
  • Replaced TriaTracking and DoRefMapping variables with TrackingMethod
  • Sampling of macroscopic values in elements at boundaries (required for adaptive surface flux and porous BC) is now performed only where required. Added two additional sampling modes (see Section "4.4.2.2 Adaptive Boundaries" in the user guide)
  • piclas2vtk converter outputs the background magnetic field as a single file ("PROJECTNAME_BGField.h5")
  • Additional output of the required time for read-in of mesh, domain decomposition and shared memory communication (as print-out and in ElemTimeStatistics.csv)
  • Added a particle flux (per time per area) to the CalcSurfaceImpact output (see Section "5.3 Flow Field and Surface Variables" in the user guide)
  • Added smaller mortar sides to the halo region to avoid to have to increase the halo region artificially
  • Added check for the Jacobians in the reference system and abort if <0.01, which can be disabled by setting meshCheckRef=F in the parameter file
  • Improvements in the Boltzmann relation for the treatment of electrons as a fluid

Fixes

  • Fix use of Lapack inverse on hawk
  • Dielectric boundary and species swap: do not abort if no species is defined for background species
  • Fixed load balance when using TriTracking and Shape Function due to missing unlock/free
  • Fix in the cell local emission for multi-node calculation
  • Fix in the output of surface properties (CalcSurfaceImpact)
  • Fix of the wrong element ID in the GetPositionInRefElem
  • Electronic state database script: only perform additional cleaning operation if the object type is not float