← Back to team overview

yade-dev team mailing list archive

Re: : Add damping coefficient to material

 

Solved the problem by checking if it is a clump:

Real getDampCoeff() { return (!&Body::isClump) ? material->damping : NaN; };

However, I think we still have to sort out why clumps don't have a material!

I will commit the code, it might be useful to have different non-viscous 
damping coefficients, or what do you think?

Klaus

On Thu, 19 Jan 2012 09:51:38 PM Anton Gladky wrote:
> Hmm, good question.
> Maybe not. They consist of "real" spheres and those spheres should
> have a material, I think.
> 
> Anton
> 
> On Thu, Jan 19, 2012 at 11:35 AM, Klaus Thoeni <klaus.thoeni@xxxxxxxxx> 
wrote:
> > Hi Anton,
> > 
> > actually it is the third body and it's a clump (isClump=True). Clumps
> > should have a material too, shouldn't they?
> > 
> > Klaus
> > 
> > On Thu, 19 Jan 2012 06:31:09 PM Anton Gladky wrote:
> >>  > Real getDampCoeff() { return material->damping; };
> >> 
> >> Can you check here a material existence?
> >> 
> >> Anton
> >> 
> >> On Thu, Jan 19, 2012 at 8:14 AM, Klaus Thoeni <klaus.thoeni@xxxxxxxxx>
> > 
> > wrote:
> >> > Hi guys,
> >> > 
> >> > can anyone help me on this?
> >> > 
> >> > Klaus
> >> > 
> >> > On Thu, 12 Jan 2012 06:03:16 PM Klaus Thoeni wrote:
> >> >> Hi guys,
> >> >> 
> >> >> as discussed with Bruno in Barcelona I need different non-viscous
> >> >> damping coefficients for different materials. I introduced this
> >> >> capability by adding a variable damping to the base class material
> >> >> which is initialised with NaN. The body class has a function
> >> >> getDampCoeff() and in
> >> >> NewtonIntegrator I use this function in order to change the damping
> >> >> coefficients. When running some examples it seems that everything
> >> >> works fine. However, I just run 'yade --test' and it gives me a seg
> >> >> fault:
> >> >> 
> >> >> testVelocity (yade.TestSimpleClump)
> >> >> Clump: velocities of member assigned by NewtonIntegrator ...
> >> >> Segmentation fault
> >> >> 
> >> >> I think I now where the problem is. In NewtonIntegrator I call
> >> >> something like:
> >> >> 
> >> >> if(!isnan(b->getDampCoeff())) dampcoeff=b->getDampCoeff();
> >> >> 
> >> >> where getDampCoeff() is defined in body.hpp as:
> >> >> 
> >> >> Real getDampCoeff() { return material->damping; };
> >> >> 
> >> >> I think the test doesn't have a material and therefore I get the seg
> >> >> fault. Right? How can we fix this so that I can commit the code?
> >> >> 
> >> >> Klaus
> >> > 
> >> > _______________________________________________
> >> > Mailing list: https://launchpad.net/~yade-dev
> >> > Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> >> > Unsubscribe : https://launchpad.net/~yade-dev
> >> > More help   : https://help.launchpad.net/ListHelp
> >> 
> >> _______________________________________________
> >> Mailing list: https://launchpad.net/~yade-dev
> >> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> >> Unsubscribe : https://launchpad.net/~yade-dev
> >> More help   : https://help.launchpad.net/ListHelp
> > 
> > _______________________________________________
> > Mailing list: https://launchpad.net/~yade-dev
> > Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> > Unsubscribe : https://launchpad.net/~yade-dev
> > More help   : https://help.launchpad.net/ListHelp
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev
> Post to     : yade-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-dev
> More help   : https://help.launchpad.net/ListHelp


Follow ups

References