← Back to team overview

yade-users team mailing list archive

Re: [Question #295301]: calculate external work in Uniaxial Strainer

 

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

Jan Stránský proposed the following answer:
Hi Jabrane,

dAX*=.5;
> displacement=2*dAX;
> externalWork += displacement(sumPosForces+sumNegForces)/2;
> externalWork += externalWork;


a few points:
1) displacement(sumPosForces+sumNegForces)/2 should give compilation error.
I consider there should be multiplication displacement*(
sumPosForces+sumNegForces)..

2) also from your previous post with S=axialLength-originalLength;
displacement=(axialLength-originalLength)-S;, think twice what your
commands do

externalWork += displacement(sumPosForces+sumNegForces)/2; // you add
dspl*force to externalWork, so far OK
externalWork += externalWork; // this is equal to externalWork =
2*externalWork.. I don's see any reason for this

3) sumPosForces and sumNegForces are updated at the very end of action
function by computeAxialForce, and only once per stressUpdateInterval, so
to compute it more accurately, you should put your computation after this
update and use some low value (1 to get really exact results) for
stressUpdateInterval.

please consider to update you computations and let us know about new results
cheers
Jan


2016-06-16 14:13 GMT+02:00 Yor1 <question295301@xxxxxxxxxxxxxxxxxxxxx>:

> Question #295301 on Yade changed:
> https://answers.launchpad.net/yade/+question/295301
>
> Yor1 posted a new comment:
> Hi Jan,
>
> I compute the elastic energy in the recorder (in the script) with these
> lines:
>
> for i in O.interactions:
>       if not i.isReal : continue
>       E+=0.5*(i.phys.normalForce.squaredNorm()/i.phys.kn +
> i.phys.shearForce.squaredNorm()/i.phys.ks)
>
> With these lines i guarantee that i calculate the elastic energy in all
> contacts (contact between spheres, contact between sphere and wall, etc
> ...)
>
> For the external work i try to compute it in the sources in
> https://github.com/yade/trunk/blob/master/pkg/dem/UniaxialStrainer.cpp#L106
>
> if(asymmetry==0){
>
> dAX*=.5;displacement=2*dAX;externalWork+=displacement(sumPosForces+sumNegForces)/2;externalWork+=externalWork;}
>
> Best regards.
> Jabrane.
>
> --
> 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@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>

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