-
Notifications
You must be signed in to change notification settings - Fork 249
Code Changes
Note these changes are technical details listed for the sake of completeness. Regular users will not notice any changes unless they dive into the code and want to understand the gory details.
-
Introduction of a LIGGGHTS namespace and sub-namespaces to better organize our code base. E.g.,
- LIGGGHTS::Walls
- LIGGGHTS::PairStyles
- LIGGGHTS::ContactModels
-
Template instantiation of contact models was moved outside of the LAMMPS core files (
force.cpp
andmodify.cpp
) togranular_styles.cpp
. Another layer of indirection was introduced to generalize the used mechanisms. e.g.
- PairGranBase => PairGranProxy + LIGGGHTS::PairStyles::Granular
- FixWallGranBase => FixWallGran + LIGGGHTS::Walls::Granular
- Instantiation of contact models and both pair styles and walls is now implemented using the Factory pattern. We rely on static initialization to register all our contact models.
Note
This has implications if you use LIGGGHTS as a library! Linkers must be made aware of the fact that they must link the entire object file archive (-Wl,--whole-archive). For example, if you are linking a LIGGGHTS library to CFDEM, be sure you have -Wl,--whole-archive -l$(CFDEM_LIGGGHTS_LIB_NAME) -Wl,--no-whole-archiv
in the respective 'options' file of CFDEM's lagrangian libray!