yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #24652
[Question #694574]: ViscoEl contact normal stiffness kn in the source file is not consistent with that in the documentation
New question #694574 on Yade:
https://answers.launchpad.net/yade/+question/694574
Hello,
I am trying to use the visco-elastic model to do the simulation. I checked the kn calculation in the source file and that in the documentation, then I found that there is a factor 2 difference.
In the documentation, the stiffness is kn=2*kn1*kn2/(kn1+kn2), as shown in the following link:
https://yade-dem.org/doc/yade.wrapper.html?highlight=law2_scgeom_viscelphys_basic#yade.wrapper.Law2_ScGeom_ViscElPhys_Basic
However, in the source file, the Kn is calculated by kn= kn1*kn2/(kn1+kn2), as shown in source file line 279 and 315-323:
https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/ViscoelasticPM.cpp
279: phys->kn = contactParameterCalculation(kn1, kn2)
315: Real contactParameterCalculation(const Real& l1, const Real& l2)
316: {
317: // If one of paramaters > 0. we DO NOT return 0
318: Real a = (l1 ? 1 / l1 : 0) + (l2 ? 1 / l2 : 0);
319: if (a)
320: return 1 / a;
321: else
322: return 0;
323: }
Why they are different?
I know in the DEM configuration, Fn=kn1*dl1=kn2*dl2=kn*(dl1+dl2), and then we get kn=kn1*kn2/(kn1+kn2) by derivation , but this has a requirement that (dl1+dl2) is the length corresponds to kn. However, the penetration depth in YADE is calculated by dl=R1+R2-L where L is the length from sphere1 center to sphere2 center, in this case, dl=1/2*(dl1+dl2). Then F=kn*(dl1+dl2)=kn*(2*dl)=2*kn*dl=2*kn1*kn2/(kn1+kn2)*dl, and the new kn = 2*kn1*kn2/(kn1+kn2), that is exactly the kn expression in documentation. However, in the source file, this factor 2 is missing. Am I thinking correctly?
Would you please help me? Thank you!
Kind Rrgards,
Yuxuan Wen
--
You received this question notification because your team yade-users is
an answer contact for Yade.