Skip to content
Snippets Groups Projects
CHANGELOG.md 4.48 KiB
Newer Older
Martin Bauer's avatar
Martin Bauer committed
# Changelog

## [6.1] - 2022-07-25
### Added
- Free-surface LBM extension:
  - Add implementation
  - Add several showcases
  - Add several tests
- LBM - MESA_PD coupling:
  - Add partially saturated cells method (PSM)
  - Add fluidized bed showcase
  - Add virtual mass stabilization technique for light particles
  - Add support for more shapes, e.g., convex polyhedron
- MESA_PD:
   - Add extensive application for dense particle packing generation

### Changed
- Update and extend phase-field LBM showcases
- Allow access to PDF centering information (for being used in generated LBM kernels)
- Adapt code generation backend to be compatible with pystencils 1.0 and lbmpy 1.0
- Required minimum dependencies:
  - C++17-compliant compiler
  - CMake 3.14
  - pybind 2.6.2
  - lbmpy 1.0
  - pystencils 1.0

### Deprecated
- GUI

## [5.1] - 2020-04-09
### Added
- Add new tutorials and showcases
- Extend MESA-PD functionalities, including several molecular dynamics models
- Fluid-particle coupling with MESA-PD: functionalities, tests, benchmark scenarios
### Changed
- Update to C++17
- Update CUDA compiler support
- Extend Clang-Tidy coverage
- Add closer integration of code generation using pystencils and lbmpy
- Python Coupling now build upon pybind11. Boost.Python is no longer supported
  - lbm module dropped from python coupling due to deprecation for a long time
  - geometry, postprocessing and timeloop dropped from python coupling due to its low usage
  - PEP8-ification of Python API. This means all keyword arguments are now in snake_case and not in CamelCase as before.

### Fixed
- Guo force model for non-SRT, may change simulation results

Martin Bauer's avatar
Martin Bauer committed
## [4.1] - 2019-04-19
### Added
- Galerkin coarsening for Multigrid
- LBM-PE-Coupling:
  - new coupling approach for unresolved particle interactions (discrete particle method)
  - adaptive grid refinement for coupled simulations
  - load balancing functionalities for coupled simulations
  - module description
- integrated *pystencils* and *lbmpy* code generation for kernels and pack infos
- new GPU communication, including support for GPUDirect
- load balancing functionality for the pe
- implemented IProbe communication as an alternative to two message communication for unknown size communication
- new creation helpers for BlockForest
- Minor:
   - dynamic load balancing now possible with levels ignored
   - `ExtendedBoundaryHandlingFactory` now uses `ParserUBB` instead of `UBB` so that velocity profiles can be specified as an equation in a parameter file
   - Enabled the body selection functions for PSM coupling method
   - grid_generators now allow range based for loops

### Changed
- A compiler with full C++14 support is now required
- All Boost usage has been replaced with the corresponding standard library functionality, except for Boost.Python (used for the `python_coupling` module), Boost.PropertyTree (used in `config::configToBoostPropertyTree`) and Boost.Graph (used by `math::EquationSystem`). This usually means you need to replace `boost::` with `std::` in your code and change some `#include`s.
- API changes in blockforest::PhantomBlockForest, blockforest::loadbalancing, pe::amr::weight_assignment
- API change for vtk::VTKOutput::getFilenames
- made SendBuffer memory access more high level
- PE coupling:
   - changed body mapping functions: removed most of them, added mapping-decider function, accomodated changes to test cases, added new mapping test case
   - changed pe coupling mapping functions interfaces, added new mapping functions, adapted test cases and benchmarks
   - change in lubrication correction functionality to not require the lattice model but use the dynamic viscosity directly
- PE:
   - rebased Union on BodyStorage
   - `pe::Union`, `boundary::BoundaryHandling` and `boundary::BoundaryHandlingCollection` are now variadic templates instead of taking a tuple of bodies/boundaries/handlers. This means that you need to replace `std::tuple<A,B>` with `A,B` in these cases.
   - using smart pointers for all memory management
   - made setMass protected
   - extended DEM collision model with dt
   - pe::createBlockForest changed to support a variable number of processes
   - changed BodyStatistics to use shared_ptr instead of reference

### Removed
- Remove dependency resolution from Singleton
- from PE
   - Node
   - PtrVector
   - contacts from RigidBody
   - attached bodies
   - attachables

### Fixed
- Fix implict/explict naming in pe::cr

### Deprecated
- all dynamic level-wise balance functions (use the more general ones, without "level-wise")