# yade-users team mailing list archive

## Contact Model and Contact Stiffness

``` Dear All,
I am losing myself a little to understand the contact model and contact stiffness used in YADE.Is it Linear Contact Model at present? I am trying to explain my question more details as follows,first explanation then my question.

Reference:

01) Belheine.N et.al "Numerical simulation of drained triaxial test using 3D discrete element modeling"Computers and Geotechnics,2008

Kn=(kn(A)*kn(B))/(kn(A)+kn(B)))/r   page number 03 (Article in press)

02) Kozicki.J et.al."A new open-source software developed for numerical simulations using discrete modeling methods"

kn=r*(Kn(A)*Kn(B))/(Kn(A)+Kn(B)))  page number 04

03) PFC3D,Theory and Background,Page Number 2-2,Article 2.1.1

Kn=(kn(A)*kn(B))/(kn(A)+kn(B)))

kn, normal secant stiffness=Kn,normal tangent stiffness

>>My question: what is the significance of "r" average radius,what are the difference among reference 01,02,03.

04) pkg>dem>engine>engineunit>SimpleElasticRelationships.cpp

//Real Eab      = 2*Ea*Eb/(Ea+Eb);
//Real Vab      = 2*Va*Vb/(Va+Vb);

Real Dinit      = Da+Db;
//Real Sinit    = Mathr::PI * std::pow( std::min(Da,Db) , 2);

Real Kn = 2*Ea*Da*Eb*Db/(Ea*Da+Eb*Db);//harmonic average of two stiffnesses
Real Ks = 2*Ea*Da*Va*Eb*Db*Vb/(Ea*Da*Va+Eb*Db*Va);//harmonic average of two stiffnesses with ks=V*kn for each sphere

05)pkg>dem>engine>standaloneengine>GlobalStiffnessTimestepper.cpp

//    Real alpha      = sdecContactModel->alpha;
//     Real beta       = sdecContactModel->beta;
//      Real gamma      = sdecContactModel->gamma;
//
//      Real Kn         = abs((Eab*Sinit/Dinit)*( (1+alpha)/(beta*(1+Vab) + gamma*(1-alpha*Dab) ) ));
//      Real Ks         = abs(Kn*(1-alpha*Vab)/(1+Vab));

06>pkg>dem>engine>engineunit>MacroMicroElasticRelationships.cpp

>>In 04 and 05 the equation is different,can anybody explain a little the difference and significance of 04 and 05.

Regards,