Hi Gianni,
ChBodyEasyCylinder creates a body representing a solid cylinder centered at the body COM and aligned along the specified axis of the COM frame. The body mass and inertia is set automatically assuming the cylinder is solid and has constant density.
AddCylinderGeometry allows you to attach a cylindrical shape (for collision and, optionally also visualization) to an existing body. This utility function allows you to position this cylinder arbitrarily relative to the body COM. This is what “Position on body” represents (a translation of the cylinder shape from the body COM and expressed in the body COM frame. It is your responsibility to construct the body (including setting its inertial properties).
Note that ChBody::SetPos() sets the origin of the body COM frame relative to the absolute coordinate. It is important to understand well all the frames involved and in what frame various quantities are relative to and expressed in.
See for example the first figure on this Chrono documentation page: https://api.projectchrono.org/development/collisions.html#collision_models_shapes.
--Radu
--
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 visit
https://groups.google.com/d/msgid/projectchrono/10d9deb5-26b4-4ebe-a37b-41e1fdec1037n%40googlegroups.com.
Hi Gianni,
Because of the data structures used in Chrono::Multicore, removing elements after system construction is more complicated and expensive, so we opted to not provide this capability.
To address the type of issues you are seeing (indeed, as collision shapes move farther and farther apart, the computational cost of the collision broadphase in Chrono::Multicore increases), you can define a region around the computational domain of interest. With that option enabled, bodies located outside that region will be frozen (in that their state is not updated anymore)
You do that by (1) enabling this option and (2) providing the corners of an axis-aligned bounding box that defines the “active” domain.
An illustration of this setting is in demo_MCORE_mixerNSC in the commented-out lines 168-170.
--Radu
From: projec...@googlegroups.com <projec...@googlegroups.com>
On Behalf Of Gianni Curti
Sent: Monday, December 16, 2024 12:56 PM
To: ProjectChrono <projec...@googlegroups.com>
Subject: Re: [chrono] Difference between ChBodyEasyCylinder and AddCylinderGeometry
Hi Radu and Maksym,
thank you for your answer and kindness.
Lately, I was also trying to use the command "RemoveBody()" in the Multicore environment to remove two bodies that falls out of my volume of interest. Otherwise, as they increase their distance from the other bodies, the simulation visibly slows down. However, when I implement this command I get the following error message at the beginning of the simulation.
To view this discussion visit https://groups.google.com/d/msgid/projectchrono/a4f47d9a-447f-4b8a-8381-8b0fd3b3efd1n%40googlegroups.com.
Hi Gianni,
First of all, which Chrono version are you using? If possible, I suggest using the latest code in the ‘main’ branch of the Chrono GitHub repository since it is a lot easier for us to help resolve issues based on the latest code.
Did you try running demo_MCORE_mixerNSC with lines 195-197 uncommented? This works just fine on my end.
Do you see the same issues with use of these two functions in demo_MCORE_mixerNSC?
Did you run this through a debugger? That will tell you exactly where and why the code crashes.
To view this discussion visit https://groups.google.com/d/msgid/projectchrono/fc0f3582-6d39-419c-a5c5-301f369a9e6en%40googlegroups.com.