In Chrono, there are different contact force models, and the computation is 
different when you use material-based property (Young's modulus, CoR and 
Poisson ratio) or user-input values.

Hertz contact force model refers to the elastic component of the normal 
force, because Hertz assumes that contact area is circular, bodies in 
contact are elastic, using elasticity theory, he derives that contact force 
is proportional to the 1.5 power of penetration (delta in the code). When 
the model is applied to SMC, researchers need a way to dissipate energy 
during the contact. Quite a few models are developed over the years to 
model the dissipation part (see Table 3.1 in this book 
<https://link.springer.com/content/pdf/10.1007/978-3-319-30897-5.pdf>).

In your screenshot, the first method is originally proposed by Tsuji 
<https://www.sciencedirect.com/science/article/pii/003259109288030L>, the 
second one is from Silbert 
<https://journals.aps.org/pre/pdf/10.1103/PhysRevE.64.051302>. Both are 
highly cited paper that Chrono used as reference. The first one use sqrt of 
mass times stiffness, to mimic a critical damping scenario (recall for a 
one DOF mass-spring-damper system, critical damping ensures mass returns to 
equilibrium in the shortest amount of time) This is desired in SMC 
simulation. For the second model, my understanding is that, since the model 
does not call for CoR, they use mass*velocity to model the change in 
momentum during the impact. If you are interested in the constitutive law 
of contact force models, these two papers have a thorough review on normal 
<https://www.sciencedirect.com/science/article/pii/S0032591006004360> and 
tangential 
<https://www.sciencedirect.com/science/article/pii/S0009250907008767> force 
models.

Now on the implementation side of things.... In Chrono, when you initialize 
ChSystemSMC, the default is that material-based parameters are used. If you 
don't assign any material properties, this is what's being set as default:

ChMaterialSurfaceSMC::ChMaterialSurfaceSMC()
: ChMaterialSurface(),
young_modulus(2e5),
poisson_ratio(0.3f),
constant_adhesion(0),
adhesionMultDMT(0),
adhesionSPerko(0),
kn(2e5),
kt(2e5),
gn(40),
gt(20) {}

Since contact is between a pair of bodies, if you have different materials, 
some strategies are used to "combine" the properties.

  
  virtual float CombineStiffnessCoefficient(float a1, float a2) const { return 
(a1 + a2) 
/ 2; }
  
  virtual float CombineDampingCoefficient(float a1, float a2) const { return 
(a1 + a2) 
/ 2; }

In ChContactSMC.h, mat.gn and mat.gt is the value after coefficients are 
being "combined", which enters force calculation. When you use GetGt(), as 
an API, what's being returned is the gt of one type of material you set up 
as a user. If you've never assigned gt to the material, the default is 20. 
Of course, you have the freedom to modify the "combine strategy" however 
you want.

Thank you,
Luning

On Tuesday, June 14, 2022 at 12:55:14 PM UTC-5 [email protected] wrote:

> Hi all,
> I have a question about the contact model. In 'ChContactSMC.h', there are 
> two ways to get kn, kt, gn, and gt. 
> One is using stiffness, CoR, Poisson ratio, etc. 
> One is directly inputting values.
> But I find the two methods follow different models.
> [image: 1.png]
> The first method uses the same method mentioned in the paper 
> <https://sbel.wiscweb.wisc.edu/wp-content/uploads/sites/569/2018/05/TR-2015-06.pdf>.
>  
> But the second one is not. For example, we can see in the first method, gn 
> and gt are proportional to the square root of effective mass, but in the 
> second method, gn and gt are proportional to the effective mass. Why do we 
> use different models when implementing Hertzian contact? 
> [image: 2.png]
> By the way, when I use the function GetGt() in 'ChMaterialSurfaceSMC.h', 
> the values are different from the values calculated from the above 
> first method. Why is it? 
>
> [image: 3.png]
>
>
> Thanks,
> Qihan
>

-- 
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 on the web visit 
https://groups.google.com/d/msgid/projectchrono/71e33732-e682-4264-b438-4db1a03c23b0n%40googlegroups.com.

Reply via email to