You are correct, the functionality for removing modeling components is not implemented for ChSystemMulticore. This is because of the data structures used in the Multicore module (SoA as opposed to AoS) and the consequences such an operation would have (either costly delete operations or else complications in bookkeeping). Deleting *all* elements can be done like you describe, but at that point isn’t this pretty much equivalent to deleting the entire system and rebuilding it?
However, an even more basic question is whether using a Chrono::Multicore system is worthwhile in the first place. Note that the primary goal of this module was simulation of large-scale granular dynamics, possibly interacting with ma multibody system. The benefits of multithreading (through OpenMP in this case) show up only once you have a large enough number of bodies (as in granular dynamics). For smaller systems, the overhead is likely to result in poorer performance than what you’d get with the core Chrono module. What problems are you interested in?
Finally, a note that a refactoring of Chrono::Multicore has long been in my todo list. That will require replacing Blaze with Eigen for linear algebra and switching Chrono::Multicore from using some older (tagged for obsoletion) low-level Chrono functions. When that refactoring happens, I will revisit the issue of allowing deletion of individual physics elements from a system.
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/c109bc4b-e8e6-43ea-a036-b045ba32bb32n%40googlegroups.com.