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.

Reply via email to