Hi Mariusz, Radu, and Ruochun,
Thank you all very much for your detailed replies. Mariusz, thank you for confirming my understanding and for your insightful explanation. Radu, I really appreciate the detailed clarification, Your explanation was very helpful. Ruochun, Coincidentally, I have recently started developing a Hertzian contact module to compute additional contact quantities that are not currently available in Chrono, such as the contact patch shape (Hertz ellipse) and the pressure distribution. Since our interests seem to overlap, I would be very interested in discussing this further and possibly collaborating if you think it could be useful for the DEM-Engine or related developments. Thanks again to all of you for your time and valuable explanations. Best regards, Oussama ELMOUIAH Le vendredi 3 juillet 2026 à 14:29:21 UTC+2, Ruochun Zhang a écrit : > Mariusz, > > Just came across this and thanks for your explanation! Very helpful for me > and I surmise for the OP as well. I do want to mention that, speaking of > "plans" for supporting more detailed contact info like the Hertz ellipse, I > do plan to include that, even for mesh--mesh contact, in the next version > of Chrono DEM-Engine. Might be useful for some of your use cases too. > > Thanks for Radu's detailed explanation as well. > > Ruochun > > On Friday, July 3, 2026 at 8:21:19 PM UTC+8 Radu Serban wrote: > >> Mariusz is correct. >> >> >> >> However, there is no “default” contact force model in Chrono. You can use >> either a penetration-based contact force model (aka soft-body approach, or >> penalty approach) which we call SCM (for Smooth Contact Model) or a >> complementarity-based approach (aka rigid-body approach) which we call NSC >> (for NonSmooth Contact model). The choice is made by constructing a Chrono >> system of type ChSystemSMC or ChSystemNSC, respectively. >> >> >> >> Both contact force formulations require a collision detection system. >> Again, while there are two choices (the one from Bullet, modified for use >> in Chrono, or our “multicore” system), there is no default set on a Chrono >> system; instead, you have to attach one or the other (via ChSystem:: >> SetCollisionSystemType >> or ChSystem:: SetCollisionSystem). >> >> >> >> A collision system must provide all geometric information that a >> particular contact force model might require. Local curvature information >> could only be used for SCM (NSC does not need it). >> >> - Since Bullet Physics always used a non-smooth contact model, their >> collision system never had to worry about such information. As such, >> local >> curvature is not made available by the collision detection system when >> using the Bullet version. >> - For the Multicore collision system where we use analytical >> geometric processing for simple primitive shapes (with fallback to MPR, >> Minkowski Portal Refinement) during the narrow phase, we provide >> curvature >> information where possible. As Mariusz said, calculating such geometric >> information for general shapes is either too computationally costly or >> else >> questionable (e.g., for triangular meshes). So, where not available, we >> use >> some approximations: for example, when one of the colliding objects is a >> triangular mesh, we use the radius of a “sweeping” sphere which combined >> with the radius at the contact point of the other object gives the >> “effective radius” that can be used in an SCM contact formulation. >> >> >> >> --Radu >> >> >> >> *From:* 'Mariusz Warzecha' via ProjectChrono <[email protected]> >> >> *Sent:* Friday, July 3, 2026 12:08 PM >> *To:* ProjectChrono <[email protected]> >> *Subject:* [chrono] Re: Hertz Contact Patch and Curvature Information in >> Chrono >> >> >> >> Hi, >> >> Although I am not a Chrono developer, I extensively use various contact >> models in my work, so here is my take on your questions. >> >> Ad 1. >> You are correct. The default contact force models implemented in >> Chrono are penetration-based. They do not provide the semi-axes of the >> contact patch or the contact area directly. Nevertheless, you should be >> able to calculate these quantities from the available contact information, >> provided that the required geometric parameters are known. >> >> Ad 2. >> To the best of my knowledge, no such extension is currently planned. >> Computing local curvatures for arbitrary geometry would not be an easy >> task, and the potential benefits would probably not justify the >> implementation effort in most use cases. >> >> >> >> Best regards, >> >> Mariusz Warzecha >> >> >> >> poniedziałek, 1 czerwca 2026 o 19:26:28 UTC+2 [email protected] >> napisał(a): >> >> Hello Chrono developers, >> >> I am currently investigating the use of Hertzian contact within Chrono >> (SMC). >> >> I have a few questions regarding the contact information available >> through Chrono: >> >> 1. As far as I understand, the Hertz-based contact models implemented >> in ChSystemSMC provide the normal contact force using the penetration >> depth >> and equivalent radius, but they do not provide the actual contact patch >> dimensions (e.g., semi-axes (a) and (b) of the Hertz ellipse) or the >> contact area directly. Is this correct, or is there already a way to >> access >> this information? >> 2. In my tests, the collision systems based on Bullet and Multicore >> seem to provide contact points and normals, but not the principal >> curvatures (or curvature radii) of the contacting surfaces for arbitrary >> geometries. From the source code, it appears that Multicore computes >> equivalent radii only for some primitive shapes (sphere, cylinder, box, >> etc.), while for general triangle meshes or custom geometries this >> information is not available. >> >> Is there any existing module, utility, or ongoing development effort >> within Chrono aimed at computing local surface curvatures (principal >> curvature radii) at contact points for arbitrary collision geometries? >> >> Any guidance or suggestions would be greatly appreciated. >> >> Thank you. >> >> >> >> -- >> 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 [email protected]. >> To view this discussion visit >> https://groups.google.com/d/msgid/projectchrono/2b7ff7df-8768-4e6a-a47f-9727a05770b5n%40googlegroups.com >> >> <https://urldefense.com/v3/__https:/groups.google.com/d/msgid/projectchrono/2b7ff7df-8768-4e6a-a47f-9727a05770b5n*40googlegroups.com?utm_medium=email&utm_source=footer__;JQ!!Mak6IKo!P5VoHofvMWYqTCynQW4ZBLM3ZrA0QOlN_UdAHrrgQh7rly8FWmT_gpJ54h3-BFuNXs84yxQDJM-KT00nSS9VSwxZ2uI$> >> . >> > -- 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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/projectchrono/a80ff5f6-aa2a-443e-9d9b-783d1be3e734n%40googlegroups.com.
