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/d8772297-2924-43a5-971c-d932262dc7c6n%40googlegroups.com.
