5.1. ExaDEM Changelog
All notable changes to this project will be documented in this file.
5.1.1. Release Note
5.1.1.1. Release Notes v1.2.3 (in development)
Note
This release is under development on the main branch and has not been tagged yet.
New Features:
Fields
Add a
groupparticle field, used to select multi-material contact parameters independently from the particletype. Several particle types can share the same group and therefore reuse the same contact law.Add the
groupparameter toset_fields.Add the
set_groupoperator to (re)assign thegroupfield to particles according to their type.Force Field
Add the
check_group_completenessoperator, which stops the simulation if thegroupparticle field references a group index not covered bymultimat_contact_params/drivers_contact_params.I/O
Add support for the
groupfield in dump file readers/writers, including legacy Rockable readers (legacy writers are not affected).
Changes and Enhancements:
Force Field
multimat_contact_params,drivers_contact_paramsandinner_bond_paramsnow select contact parameters usinggroup1/group2(orgroup) instead of particle type names (mat1/mat2/mat). See the Multi-Material section of the Force Field page.
5.1.1.2. Release Notes v1.2.2 (07/26)
New Features:
Fragmentation / Inner Bonds
Add operator to randomly change sphere radius
Add inner bonds and driver support to compute the stress per particle
Add criterion mode (mixed and separated)
Add
dump_broken_interfaceand a ParaView post-processing scriptAdd stress energy criterion
Add inner bonds in the dump contact network
Visualization / ParaView
Improve
ParaviewNetworkand the criterion used when writing interactionsAdd cluster field for the
paraview_polyhedraoperatorAdd ParaView output for cylinders
Add ParaView export in
pvtuformatDrivers
Rework
driver_paramsandMotionTypein the driver pluginUse a dt scale in driver numerical schemes
Add a
driverextractorFix driver surface corrections on GPU
Changes and Enhancements:
Performance
Integrate the interaction list build step
Optimize
unclassifywith binary searchReduce compilation time for contact polyhedron/sphere
Use a dedicated extra storage for
rshapedataUse scratch memory for
nbh_polyhedron_gpuCleanup and Refactoring
Clean the drivers plugin
Move
classify/unclassifyimplementation to.cppfilesMove interaction manager implementation to
.cppfilesRename
interaction_bufferstocontact_stateClean the shape plugin
New convention for structure members:
name->name_CI / Build
Add a CUDA CI pipeline
Use CUDA 13 in CUDA CI
Bug Fixes:
Fix ghost interactions handling in
nbh_polyhedron_gpuFix ill-formed interactions in
nbhoperatorsFix compilation in debug mode
Update
grid_cell_valuesonghost_updateFix use of MEM PREFETCH with CUDA 13
Fix logs and add a face shape identification tolerance
Fix periodic boundary conditions with
DOMAIN_BOUNDSmode (rockable)
5.1.1.3. Release Notes v1.2.1 (03/26)
New Features:
Add a
depositplugin.Add an operator to add particles from an XYZ file.
Changes and Enhancements:
I/O
Switch from
grid_vtklegacytogrid_vtkfor grid output.Fragmentation
Add support for weights in inner bond force computations.
General
Add an additional validation check in
check_rcut.
5.1.1.4. Release Notes v1.2.0 (02/26)
New Features:
Fragmentation System
Add inner bond interaction (rework of the interaction system)
Add interfaces (set of inner bond interactions)
Add a routine to stick polyhedra
Add field
clusterAdd
config_fragmentation.mspShapes
Add a default shapes library (
cube,sphere,ricegrain)Drivers
Add a deformation operator for STL meshes
Rename/refactor
Stl_meshtoRShapeDriverRefactor
FORCE_MOTIONinto a more versatilePARTICLEmotion typeAdd a “Freeze Particles” operator
Improve expression-based motion types to account for angular moments
Changes and Enhancements:
Performance
Copy interactions in the ghost area (MPI)
Compute the contact interface criterion on GPU
Update
BackupDEMstructures for more efficient checkpointingPost-Processing
Add a traction/shear test case for fragmentation validation
Improve ParaView outputs for particle interfaces
Fix vertex ordering in interface exports
Bug Fixes:
Fix compatibility with ExaNBody 2.0.7
Fix region usage in
set_fieldsImprove radius-from-shape detection logic
5.1.1.5. Release Notes v1.1.6 (12/25)
New Features:
Add TinyExpr support and projected quantities
Add a motion modification operator
Enable STL driver control using moments
Add a script to visualize driver-applied stresses by component
Improve ParaView output for contact networks
Add a DMT enumeration
Bug Fixes:
Fix multiple Rockable behavior issues
Fix ParaView export bugs for polyhedra and vertex displacement
Fix simulation box definition and the Rockable dump writer
Fix an MPI bug in linear compressible motion
Add validation for a missing
preCompDoneflag in shape files
5.1.1.6. Release Notes v1.1.5 (10/25)
Bug Fixes:
Fix
linear_compressive_forcesandlinear_motionmodes when moving a surface in the negative direction.
Added Examples:
Spheres with linear motion types
Polyhedra with linear compressive force
5.1.1.7. Release Notes v1.1.4 (09/25)
New Features:
Add a pendulum motion type for the Surface driver
Add the
check_consistency_grid_classifieroperatorAdd a rescale Minkowski option in
read_shapesImplement
exadem-configfile generation
Changes and Enhancements:
Examples
Update the axial-stress example for spheres
Update rotating-drum examples
Refactor
polyhedra/rotating_drum,polyhedra/stl_meshandpolyhedra/ballsRefactor
ball/driverexamples and fix neighbor list updateRefactor the
spheres/movable-wallexampleUpdate and factorize analysis examples
Remove deprecated examples under
depotRegression Tests
Add regression tests for
sphere/cylinder_stl, mirror boundary conditions,polyhedra/defbox,polyhedra/stl_cylinder,spheres/pistonand funnel
5.1.1.8. Release Notes v1.1.3 (09/25)
New Features:
Add a mixer simulation example
Add examples with large vertex sets
Integrate OBBTree (from Rockable) for improved collision detection
Add shape rescaling at import time
Changes and Enhancements:
Improve required-slot handling
Centralize and factorize error management (
color_log::error,color_log::warning)
Bug Fixes:
Fix ParaView export of STL meshes
Fix MSP driver output files
5.1.1.9. Release Notes v1.1.2 (07/25)
New Features:
Add support for dumping Rockable object output files
Add a new internal vertex data layout for improved efficiency
Add customizable options to
compute_cell_particlesAdd a Shaker motion type for STL mesh drivers (sinusoidal displacement)
Bug Fixes:
Fix ParaView shape data output
5.1.1.10. Release Notes v1.1.1 (05/25)
New Features:
Add the
check_rcutoperator to verify the interaction cutoff radius.Add a multi-material contact law supporting multiple parameter sets.
Add an RSA-based particle generator targeting a given volume fraction.
Add a slot to override domain bounds when importing geometry with
read_xyz.Add logging for the critical time step.
5.1.1.11. Release Notes v1.1.0 (03/25)
New Features:
Fields
Add Unified operator for initializing fields:
set_fieldsDrivers
Add driver motion type:
STATIONARY
LINEAR_MOTION
COMPRESSIVE_FORCE
LINEAR_FORCE_MOTION
FORCE_MOTION
LINEAR_COMPRESSIVE_MOTION
TABULATED
Add a reader for binary stl files
Analysis
Add new analyses:
Compute barycenters per type
Count the number of particles per type
Changes and Enhancements:
I/O
Optimized the contact network (add information)
Update deformation domain: available for spheres and polyhedra
5.1.1.12. Release Notes v1.0.2 (11/24)
New Features
Drivers
Added moving and rotating drivers, with special support for stl_mesh drivers.
Introduced timestep operators.
Implemented I/O driver operators.
I/O
Defined a tree structure for output files (io_config).
Computed system stress tensor.
Added example for writing to XYZ files.
Included post-processing scripts for easier data analysis.
Changes and Enhancements
Drivers
Optimized stl_mesh to efficiently build the lookup grid.
Classifier for Interactions
Improved interaction storage in the classifier (InteractionWrapper) using SOA (Structure of Arrays) data structures.
I/O
Added new logs to track active interactions and maximum interpenetration.
General
Renamed hooke_force operator to contact_force for clarity.
Limited browsing to cells containing particles only.
Bug Fixes
Fixed shape name paths to be relative.
Updated interaction statistics to print the number of interactions per driver.
5.1.1.13. Release Notes for Version 1.0.1 (06/24):
New Features:
Classifier for Interactions
Introduced a classifier to categorize interactions and enhance data organization.
Provides improved management and processing of interaction data.
Mirror Boundary Conditions from ExaNBody Are Available
Mirror boundary conditions to simulate reflections at domain boundaries.
GPU Version for Polyhedra
Added GPU-accelerated support for polyhedra computations.
Changes and Enhancements:
Unified Drivers for Spheres and Polyhedra
Integrated a unified driver system for both spherical and polyhedral objects.
Simplifies driver management and enhances code reusability.
Removed Features:
Meshset and Friction Plugins
Removed deprecated meshset and friction plugins.
Reduces complexity.
Added Examples:
New Example: Funnel
Mirror Boundary Conditions