← Back to team overview

yade-users team mailing list archive

Re: [Question #652968]: Implementing Local Damping

 

Question #652968 on Yade changed:
https://answers.launchpad.net/yade/+question/652968

Nima Goudarzi gave more information on the question:
Dear Bruno,
Thanks so much again and sorry for rising up this again. I am still a little confused with applying local damping:
a very quick question on your comment
(13) Newton::damping is the value of Cundall's/PFC "non-viscous" damping
> (the one with default 0.7 in PFC). Again, it has nothing to do with the
> contact model (it is thus irrelevant to distinguish linear vs. non-
> linear models). Newton::damping is set in the scripts.
                 /************************/

               /* DAMPING COEFFICIENTS */                    FROM HM.cpp

               /************************/


               // Inclusion of local damping if requested

               // viscous damping is defined for both linear and non-
linear elastic case

               if (useDamping && LinDamp){

                              Real mbar = (!b1->isDynamic() &&
b2->isDynamic()) ? de2->mass : ((!b2->isDynamic()

                                 && b1->isDynamic()) ? de1->mass :
(de1->mass*de2->mass / (de1->mass + de2-

                                 >mass))); // get equivalent mass if
both bodies are dynamic, if not set it equal to the one of

                                 the dynamic body

                              //Real mbar = de1->mass*de2->mass /
(de1->mass + de2->mass); // equivalent mass

                              Real Cn_crit = 2.*sqrt(mbar*phys->kn); //
Critical damping coefficient (normal direction)

                              Real Cs_crit = 2.*sqrt(mbar*phys->ks); //
Critical damping coefficient (shear direction)

                              // Note: to compare with the analytical
solution you provide cn and cs directly (since here

                                we used a different method to define
c_crit)

                              cn = Cn_crit*phys->betan; // Damping
normal coefficient

                              cs = Cs_crit*phys->betas; // Damping
tangential coefficient

                              if(phys->kn<0 || phys->ks<0){
cerr<<"Negative stiffness kn="<<phys->kn<<"

                                ks="<<phys->ks<<" for
##"<<b1->getId()<<"+"<<b2->getId()<<", step "<<scene-

                                >iter<<endl; }

               }

               else if (useDamping){ // (see Tsuji, 1992)

                              Real mbar = (!b1->isDynamic() &&
b2->isDynamic()) ? de2->mass : ((!b2->isDynamic()

                                 && b1->isDynamic()) ? de1->mass :
(de1->mass*de2->mass / (de1->mass + de2-

                                  >mass))); // get equivalent mass if
both bodies are dynamic, if not set it equal to the one of

                                 the dynamic body

                              cn = phys->alpha*sqrt(mbar)*pow(uN,0.25);
// normal viscous coefficient, see also

                                [Antypov2011] eq. 10

                              cs = cn; // same value for shear viscous
coefficient

               }


Do you mean I should keep unchanged everything included in the above
code and set the local damping in the script? or I need to set cn=cs=0
wherever I find them in the code? If possible, would you please apply
the required changes (if needed) in the above code if possible?

Sincerely yours,
Nima 

    On Thursday, July 27, 2017 4:57 PM, Nima Goudarzi <question652968@xxxxxxxxxxxxxxxxxxxxx> wrote:
 

 Your question #652968 on Yade changed:
https://answers.launchpad.net/yade/+question/652968

    Status: Answered => Open

You are still having a problem:
Dear Bruno,

I highly appreciate your kind attention toward my request. Many of your
answers are extremely helpful. I am currently working on writing the
code but still have some issues in energy terms and displacements (I am
trying to adapt what have been implemented for shear to rolling and
twisting but have some difficulties). I will be back soon to ask some
extra questions regarding my new issues.


Sincerely yours,

Nima


> On Jul 26, 2017, at 7:53 AM, Bruno Chareyre <question652968@xxxxxxxxxxxxxxxxxxxxx> wrote:
> 
> Your question #652968 on Yade changed:
> https://answers.launchpad.net/yade/+question/652968
> 
>    Status: Open => Answered
> 
> Bruno Chareyre proposed the following answer:
>> my main concern is the possibility of passing some model parameters to
> Iphys (I think there is no need to define a new class of material but
> please correct me if I am wrong)
> 
> It is possible and indeed simpler usually. [*] Adding the parameters to
> a material class gives more flexibility when mixing particles of
> different properties.
> 
> (1) radius1 is an alias of refR1, you can use both names equivalently
> (ScGeom.hpp:58)
> 
> (2) I see no need to change current code since it does what you need as
> a special case.
> 
> (3) ξ can be where you have it now or in the material class, see [*]
> 
> (4) same answer. In this case it is obvious that if you want to have
> particles of different shapes (different β) you need to have it in the
> material class, else all shapes are the same as defined by the Ip2.
> 
> (5) if both versions compile they probably do the same thing
> 
> (6) I don't see a problem
> 
> (7) yes (is it different from the assignement of e.g.
> contactPhysics->kno?)
> 
> (8) If ξc is like a damage parameter with different evolutions at each contact then it needs to be IPhys::ξc indeed. You don't "declare" it in IP2, you may only assign it there. But even the assignement seems to be in Iphys(.hpp) a.t.m.:
> ((Real,XI c,2.1,, "Local crushing parameter ..."))
> 
> (9) This question sounds like "which is the right constitutive model?". I don't know. This will be your modeling assumption. :)
> If you plan to keep viscous damping at 0 it should not be a direct problem for you though.
> 
> (10) I would say yes, but I'm not sure about the question. "Plasticity
> condition" just means to keep forces/torques bounded by some max values.
> 
> (11) I don't know.
> 
> (12) No need to erase anything since those lines are conditional already
> (l.303,313), your changes should correspond to an additional option.
> 
> (13) Newton::damping is the value of Cundall's/PFC "non-viscous" damping
> (the one with default 0.7 in PFC). Again, it has nothing to do with the
> contact model (it is thus irrelevant to distinguish linear vs. non-
> linear models). Newton::damping is set in the scripts.
> 
> (14) depends on you
> 
> (15) why not? :)
> 
> Wow, I made it. ;)
> Bruno
> 
> -- 
> If this answers your question, please go to the following page to let us
> know that it is solved:
> https://answers.launchpad.net/yade/+question/652968/+confirm?answer_id=2
> 
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https://answers.launchpad.net/yade/+question/652968
> 
> You received this question notification because you asked the question.

-- 
You received this question notification because you asked the question.

You received this question notification because your team yade-users is
an answer contact for Yade.