Question #698058 on Yade changed:
https://answers.launchpad.net/yade/+question/698058
Status: Open => Answered
Jan Stránský proposed the following answer:
Hello,
As a beginner of Yade
welcome :-)
TL;TR: use "for i in O.interactions: i.phys.unp =
i.geom.penetrationDepth" [1] trick (see below)
> no matter how to modify the parameters of UniaxialStrainer()
Have a look at stressUpdateInterval parameter [2] (although it is not so
important).
Set stressUpdateInterval=1 to get smooth curve.
Set a larger value for larger simulations (stress evaluation needs some time,
usually it not necessary to do the evaluation every iteration, but rather e.g.
only before plot.addData)
> for b in O.bodies:
> if isinstance(b.shape,Sphere):
> if(b.state.pos[axis] < (dim[0][axis]+layerSize*height)) or
> (b.state.pos[axis] > (dim[1][axis]-layerSize*height)):
> b.shape.color=(1,1,1)
Do not use this, use posIds and negIds directly if you have them already:
for i in posIds + negIds:
O.bodies[i].shape.color = (1,1,1)
> I can't get the ideal stress-strain curve.
How do you define "ideal stress-strain curve"?
> 1.When the following code is run, the strain increases and the stress
remains constant after an instantaneous increase.
The problem is that even with zero strain rate, your packing is not balanced,
with high initial stress.
The next straining is too weak compared to this initial stress.
Repair it with [1]:
###
# somewhere after O.step(), before running
for i in O.interactions:
i.phys.unp = i.geom.penetrationDepth
###
The "unp trick" was discussed several times in another questions.
Doing this, the packing is in a stress-free state.
> 2.When I changed the parameter asymmetry of uniaxialstrain() to 1, the
cylinder was scattered from below, which puzzled me.
By default, asymmetry is 0, i.e. the sample is loaded by symetric displacement
of both ends.
For asymmetry=1, one end is fixed and the other one end is displaced.
> 3.In the above process, I am also puzzled by the positive and negative
values of stress and strain.In my understanding, when strainrate is set
to a negative value, the stress and strain are both compressive, then
both are negative. But the actual situation doesn't seem to be like
this.
"doesn't seem to be like this" - please try to make "evidence" instead of
"seem".
E.g., printing strainer.strain and strainer.avgStress, both values are negative.
Maybe the plot, made by the command plot.addData(...,eps=-strainer.strain),
confuses you (note the minus sign)?
Note about stopIfDamaged function, try to print the values used, the condition
IMO does something else than is should.
Cheers
Jan
[1] https://answers.launchpad.net/yade/+question/295035 (and used links for
previous references and discussions)
[2]
https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.UniaxialStrainer.stressUpdateInterval
--
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 : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp