Thanks a lot!

On Tuesday, June 14, 2022 at 3:05:36 PM UTC-4 [email protected] wrote:

> 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/68136975-9754-48bc-86cc-310bba365b9bn%40googlegroups.com.

Reply via email to