Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Janek Kozicki posted a new comment: Great solution, Bruno! :) -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Vasileios Angelidakis confirmed that the question is solved: Thanks Bruno Chareyre, that solved my question. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Status: Answered => Solved Vasileios Angelidakis confirmed that the question is solved: Hi Bruno, Many thanks for your reply. This indeed sounds simpler. The idea of having the same units for kn, ks in every contact model sounds more straightforward too. I will update the KnKsPBLaw.cpp script to do that. Cheers, Vasileios -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Bruno Chareyre posted a new comment: In other words: 1/ rename the current kn, ks [force/volume] differently (automatic search replace), say volKn and volKs 2/ introduce new attributes named kn, ks, and assign relevant values to them. They'll be picked up by GSTS. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Status: Open => Answered Bruno Chareyre proposed the following answer: Hi, We got a similar situation some time ago with Hertzian models. Their tangent stiffness (kn=dfn/dun) depends on the normal force itself, and it's actually not needed when calculating the contact force. The solution was as follows, by far the simpler: - reserve attributes "kn" and "ks" to reflect the derivatives dfn/dun and dft/dut (can be updated by the law functor) to be used by GSTS, and compute them just in order to determine stability condition. - give other names to any other stiffness used when actually computing the contact forces. I would suggest the same approach. This way GSTS will work as is with every contact model, provided that kn, ks always have the same meaning. If would start to introduce conditionals in GSTS to specialize it, OTOH, it will soon be a big mess. Bruno -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Vasileios Angelidakis gave more information on the question: Hi, Thank you both for your advice! Robert, > Is it over estimating the time step, resulting in instability? - Yes, currently the GlobalStiffnessTimeStepper can lead to instability, by overestimating the timestep. In particular, if we consider the cases where the contactArea > 1.0 (mm^2 or cm^2 or m^2), the timestep we currently get can be orders of magnitude larger than what it should be, if we considered the actual stiffness of the system. > are other people depending on the code being the way it is now? - I do not think anyone else currently uses the GlobalStiffnessTimeStepper with the Potential Blocks, so this shouldn't create any backward compatibility problems. If someone used it, we would have heard about this problem by now :) Jan, thanks for the step-by step advice > separate the code into another function This is a good point, in order to not slow down the engine for those who use it with spheres. I only have one reservation: If we separate the code into another function, we will be able to use the GlobalStiffnessTimeStepper efficiently only for models with one contact physics type. Now, in my case, the Potential Blocks only interact with themselves, so this is not a problem for me. But, if we wanted to use the GlobalStiffnessTimeStepper in a model with: Spheres+Polyhedra (for which the stiffnesses "phys->kn" and "phys->ks" are also expressed in different units than [N/m]), we would need to deal with both shapes in the same timestepper. I think an integrated solution would be to have one function, in which we iterate for each interaction, and depending on the type of the physics involved, calculate the stiffness of the interaction. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Janek Kozicki posted a new comment: How about this: 1. reorganize a little bit GlobalStiffnessTimeStepper in following manner: 1.1. separate the code into another function which takes as an argument the [N/m] parameters, then returns the value. 1.2. The original code in GlobalStiffnessTimeStepper only calls this function with previously used [N/m] parameters 2. Then call the same function with your [N/m^3] values multiplied by contact area. Now the question is if it is better to derive from class GlobalStiffnessTimeStepper, and call that function in parent class. Or maybe if it’s better to handle all cases already in GlobalStiffnessTimeStepper, distinguishing between the N/m and N/m^3. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
Question #683967 on Yade changed: https://answers.launchpad.net/yade/+question/683967 Robert Caulk posted a new comment: > Do you think this would slow down the engine or find any theoretical drawbacks? If it is just a single logical operator checking the for a potentialblock, the engine won't slow down. From a units standpoint, what you suggest makes more sense. I guess I just have two questions: - what is currently happening when you GlobalSitffnessTimeStepper with potential blocks? Is it over estimating the time step, resulting in instability? If not, the change you suggest will simply decrease the estimated time step which will slow down yours (and maybe others) simulations. - are other people depending on the code being the way it is now? (I guess no, but you know better than me) -rc -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
[Yade-users] [Question #683967]: GlobalStiffnessTimeStepper with Potential Blocks
New question #683967 on Yade: https://answers.launchpad.net/yade/+question/683967 Hi, I want to use the GlobalStiffnessTimeStepper in conjunction with the Potential Blocks code. Currently, this engine assumes that the stiffnesses "phys->kn" and "phys->ks" are in [N/m] units [1]. In my case, in the KnKsPBLaw.cpp the "phys->kn" and "phys->ks" are expressed in [N/m^3], while when we multiply them with the contact area, we get the stiffness parameters: "phys->Knormal_area" and "phys->Kshear_area", which are in [N/m] units [2, 3]. I would like your opinion whether I could modify the GlobalStiffnessTimeStepper to consider the "phys->Knormal_area" instead of the "phys->Kn" (and respectively for the shear), when the particle shape is "PotentialBlock" instead of "Sphere". Do you think this would slow down the engine or find any theoretical drawbacks? Cheers, Vasileios [1] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/GlobalStiffnessTimeStepper.cpp#L63 [2] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/KnKsPBLaw.cpp#L121 [3] https://gitlab.com/yade-dev/trunk/blob/master/pkg/dem/KnKsPBLaw.cpp#L186 -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp