-
Notifications
You must be signed in to change notification settings - Fork 248
Basic DEM Benchmarking
The DEM Benchmarks consist of a set of 9 simple tests which are run every night and whose object is to make sure both that the application performs correctly and that the code did not break after the daily changes. They are the following:
The diagram shows the time evolution of the elastic contact force between two identical elements.
The velocity after the impact depends on the coefficient of restitution value. For COR=1 the module of the initial and final velocities should be the same. Furthermore, velocities should be equal for both spheres.
Results
The diagram shows the time evolution of the elastic contact force between a discrete element and a finite element.
The velocity after the impact depends on the coefficient of restitution value. For COR=1 the module of the initial and final velocities should be the same.
Results
The diagram shows the effect of different restitution coefficients on the damping ratio.
If total energy of the system is conserved, the restitution coefficient and the damping ratio values should be identical.
Results
Benchmark 4: Oblique impact of a sphere with a rigid plane with constant velocity module and variable incident angles
The diagram shows the tangential restitution coefficient, final angular velocity and rebound angle of the sphere.
Results
Benchmark 5: Oblique impact of a sphere with a rigid plane with constant normal velocity and different angular velocities
The diagram shows the final linear and angular velocities of the sphere.
Results
Benchmark 6: Oblique impact of a sphere with a rigid plane with constant normal velocity and different angular velocities
The diagram shows the final linear and angular velocities of the sphere.
Results
Benchmark 7: Impact of two identical spheres with a constant normal velocity and different angular velocities
The diagram shows the final linear and angular velocities of both spheres.
By symmetry, the tangential final velocity of both spheres should be zero. Additionally, for a coefficient of restitution of 1, there should be no changes in the modules of both linear and angular velocities and their values should conserve symmetry.
Results
Benchmark 8: Impact of two differently sized spheres with a constant normal velocity and variable angular velocities
The diagram shows the final linear and angular velocities of both spheres.
In this case, it is interesting to note that, the bigger and/or denser the second sphere is, the more this test resembles the sphere versus wall simulation.
Results
Benchmark 9: Impact of two identical spheres with a constant normal velocity and different coefficients of restitution
The diagram shows the effect of different restitution coefficients on the damping ratio.
If total energy of the system is conserved, the restitution coefficient and the damping ratio values should be identical.
Results
References: Y.C.Chung, J.Y.Ooi. Benchmark tests for verifying discrete element modelling codes at particle impact level (2011).
- Getting Kratos (Last compiled Release)
- Compiling Kratos
- Running an example from GiD
- Kratos input files and I/O
- Data management
- Solving strategies
- Manipulating solution values
- Multiphysics
- Video tutorials
- Style Guide
- Authorship of Kratos files
- Configure .gitignore
- How to configure clang-format
- How to use smart pointer in Kratos
- How to define adjoint elements and response functions
- Visibility and Exposure
- Namespaces and Static Classes
Kratos structure
Conventions
Solvers
Debugging, profiling and testing
- Compiling Kratos in debug mode
- Debugging Kratos using GDB
- Cross-debugging Kratos under Windows
- Debugging Kratos C++ under Windows
- Checking memory usage with Valgind
- Profiling Kratos with MAQAO
- Creating unitary tests
- Using ThreadSanitizer to detect OMP data race bugs
- Debugging Memory with ASAN
HOW TOs
- How to create applications
- Python Tutorials
- Kratos For Dummies (I)
- List of classes and variables accessible via python
- How to use Logger
- How to Create a New Application using cmake
- How to write a JSON configuration file
- How to Access DataBase
- How to use quaternions in Kratos
- How to do Mapping between nonmatching meshes
- How to use Clang-Tidy to automatically correct code
- How to use the Constitutive Law class
- How to use Serialization
- How to use GlobalPointerCommunicator
- How to use PointerMapCommunicator
- How to use the Geometry
- How to use processes for BCs
- How to use Parallel Utilities in futureproofing the code
- Porting to Pybind11 (LEGACY CODE)
- Porting to AMatrix
- How to use Cotire
- Applications: Python-modules
- How to run multiple cases using PyCOMPSs
- How to apply a function to a list of variables
- How to use Kratos Native sparse linear algebra
Utilities
Kratos API
Kratos Structural Mechanics API