Strain (localization) history

Asked by behzad

Hi folks,

I have a sample made with a mixture of clumps and spheres. A vibrational force is applied to the sample for a limited time.
I'd like to know can we monitor the movement of the bodies in the history of vibration? The idea is to see if there's strain localization or segregation in the sample.
I appreciate if you can share your idea/experience on this.

Thanks!

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Chareyre
Solved:
Last query:
Last reply:

This question was reopened

Revision history for this message
Jan Stránský (honzik) said :
#1

Hi Behzad,
have a look at [1]. I have no personal experience with it, but for the
first sight it looks like what you are looking for
cheers
Jan

[1] https://yade-dem.org/doc/user.html#micro-strain

2015-11-27 19:57 GMT+01:00 behzad <email address hidden>:

> New question #275779 on Yade:
> https://answers.launchpad.net/yade/+question/275779
>
>
> Hi folks,
>
> I have a sample made with a mixture of clumps and spheres. A vibrational
> force is applied to the sample for a limited time.
> I'd like to know can we monitor the movement of the bodies in the history
> of vibration? The idea is to see if there's strain localization or
> segregation in the sample.
> I appreciate if you can share your idea/experience on this.
>
> Thanks!
>
> --
> 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 address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
behzad (behzad-majidi) said :
#2

Hi Jan,

Yes, it seems that this can work for me. I'll give it a try.

Thanks.

Revision history for this message
behzad (behzad-majidi) said :
#3

hmm, but it seems that using it is not straightforward!

I'm running the following script. Is there anything wrong with that? I do not get the strain history even if I define several states as TW.setState(1)...TW.setState(10).

Is the script to make the view in [1] published?

[1] https://yade-dem.org/doc/user.html#micro-strain

Thanks.

from yade import utils, plot,export
from yade import pack, qt

#================= define the materials =======================

O.materials.append(CohFrictMat(normalCohesion= 1e20, shearCohesion= 1e20, isCohesive= False, young=5e4,
density=1523.6, poisson=0.3, frictionAngle= 0.28, fragile=False, label='coke'))

############################
### DEFINING ENGINES ###
############################

O.engines=[
 ForceResetter(),
# GlobalStiffnessTimeStepper(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb(),Bo1_Facet_Aabb()]),
 InteractionLoop([Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
 [Ip2_FrictMat_FrictMat_FrictPhys()],
 [Law2_ScGeom_FrictPhys_CundallStrack()])
 ,NewtonIntegrator(damping=0.4,gravity=[0,0,-10])
]

O.dt=1e-5

#========= creating walls ======================

walls=aabbWalls([(-0.025,-0.025,-0.005),(0.025,0.025,0.055)],thickness=0.0001,oversizeFactor=1.0,material='coke')
wallIds=O.bodies.append(walls)

#==============
bind1=pack.SpherePack()
bind1.makeCloud((-0.02,-0.02,0),(0.02,0.02,0.05),rMean=1.0e-3,rRelFuzz=0.0,num=5000)

O.bodies.append([utils.sphere(c,r,material='coke') for c,r in bind1])

############################
### Display settings ###
############################

for x in range(len(O.bodies)):
 if (O.bodies[x]):
                if isinstance(O.bodies[x].shape,Sphere):
   if O.bodies[x].isStandalone:
    O.bodies[x].shape.color=(0.2,0.3,0.6)
   else:
    O.bodies[x].shape.color=(0.7,0.63,0.0)
  else:
   O.bodies[x].shape.color=(0.2,0.3,0.1)

qtr=qt.Renderer()
qtr.bgColor=(1,1,1)

#===============================================
#=============== Compaction ====================
#===============================================

boxIds=[]

for x in range(len(O.bodies)):
 if (O.bodies[x]):
                if isinstance(O.bodies[x].shape,Box):
   boxIds.append(O.bodies[x].id)

print O.bodies[boxIds[-1]].shape.wire

O.bodies[boxIds[-1]].shape.wire=False

print boxIds

triax=TriaxialStressController(

 maxMultiplier=1.000,
 finalMaxMultiplier=1.000,
 thickness = 0,
 stressMask = 7,
 internalCompaction=False,
)

O.engines=O.engines+[triax]

triax.goal1=-100
triax.goal2=-100
triax.goal3=-100
triax.wall_front_id=boxIds[-1]
triax.wall_back_id=boxIds[-2]
triax.wall_top_id=boxIds[-3]
triax.wall_bottom_id=boxIds[-4]
triax.wall_right_id=boxIds[-5]
triax.wall_left_id=boxIds[-6]
triax.wall_back_activated=True

O.engines[-3].gravity=[0,0,-10]

TW=TesselationWrapper()
TW.triangulate()
TW.computeVolumes()

TW.setState(0)
O.run(5000,True)
TW.setState(1)

TW.defToVtk("strain.vtk")

Revision history for this message
Chareyre (bruno-chareyre-9) said :
#4

There is no script to generate the view you mention.
"TW.defToVtk("strain.vtk")" is generating a vtk file, which you can
display with different softwares.
Paraview was used for this figure.

Bruno

Revision history for this message
behzad (behzad-majidi) said :
#5

I know, I'm opening the vtk file with ParaView now. But, Only one single state is saved. We cannot see the changes in strain in the sample by clicking on "play'.

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#6

You script is generating only one output file, so yes, you have only one image. I don't really see what you were expecting.

Revision history for this message
behzad (behzad-majidi) said :
#7

OK, I see. I was expecting to get two images in one file because I was declaring two states (0 and 1).
Can we also output other info like velocity of the spheres, stresses, broken contacts and ect. this way?

Revision history for this message
Best Chareyre (bruno-chareyre-9) said :
#8

The strain is defined by comparing two configurations, so 2 states = 1
strain field.
N+1 states = N strain fields.

You can output velocity and other things with yade's exporters. Combining
different exports in one image is made easy by paraview.

On 3 December 2015 at 19:02, behzad <email address hidden>
wrote:

> Question #275779 on Yade changed:
> https://answers.launchpad.net/yade/+question/275779
>
> behzad posted a new comment:
> OK, I see. I was expecting to get two images in one file because I was
> declaring two states (0 and 1).
> Can we also output other info like velocity of the spheres, stresses,
> broken contacts and ect. this way?
>
> --
> 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 address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>
>

Revision history for this message
behzad (behzad-majidi) said :
#9

Thanks Chareyre, that solved my question.