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.
