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]<mailto:[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]<mailto:[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/CH3PPF46CDC2185E8D5AB90B260ECA668E3A7F42%40CH3PPF46CDC2185.namprd06.prod.outlook.com.
