Force in area - Stir rod

Asked by daalgi

 Hi everybody!

I'm a new Yade user and I need some help to carry out my research.

I'm studying the behaviour of a coarse aggregate layer composed of two sub-layers. Both sub-layers have the same properties, granulometry, etc, but the upper one is denser than the lower one.

The goal is to figure out how the particles of the two sub-layers mix each other as a result of two different load cases:

1) Vertical load applied during a short time over a certain area (not over just a particle) of the upper boundary of the upper sub-layer.

2) A rod is introduced into the layers and then it moves with a trajectory in a horizontal plane.

The problem is that I don't know how to simulate both load cases. Could anyone help me out?

Thanks in advance!

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jan Stránský
Solved:
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hello,

Do I understand correctly, that you already have the simulation, and you
only need to apply boundary conditions? If so, you can do it easily by
prescribing velocity (or positions, but velocity is more recommended) of
certain particles (e.g. facets):

facetsToMove = [facet1,facet2,...,facetN]
for f in facetsToMove:
  f.state.vel = Vector3(0,0,1) # whatever you need

if you needed to change this values during the simulation, you can achieve
this by

O.run(1000,True) # or O.run(1000); O.wait()
for f in facetsToMove:
  f.state.vel = Vector3(0,0,2)
O.run(2000,True)
for f in facetsToMove:
  f.state.vel = Vector3(0,0,3)

HTH
Jan

2013/1/31 daalgi <email address hidden>

> New question #220640 on Yade:
> https://answers.launchpad.net/yade/+question/220640
>
> Hi everybody!
>
> I'm a new Yade user and I need some help to carry out my research.
>
> I'm studying the behaviour of a coarse aggregate layer composed of two
> sub-layers. Both sub-layers have the same properties, granulometry, etc,
> but the upper one is denser than the lower one.
>
> The goal is to figure out how the particles of the two sub-layers mix each
> other as a result of two different load cases:
>
> 1) Vertical load applied during a short time over a certain area (not over
> just a particle) of the upper boundary of the upper sub-layer.
>
> 2) A rod is introduced into the layers and then it moves with a trajectory
> in a horizontal plane.
>
> The problem is that I don't know how to simulate both load cases. Could
> anyone help me out?
>
> Thanks in advance!
>
> --
> You received this question notification because you are a member of
> yade-users, which 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
daalgi (dag49) said :
#2

Hi Jan! Thank you for replying so fast.

I'm sorry I didn't mention it, but the boundary conditions are already established: a box with no upper wall. So yes, I already have the simulation, but I need to apply the corresponding load cases.

At the first load case, since I should apply a force just in a certain area (let's say a quarter of the total area) I think the moving facet wouldn't produce the expected effect. Maybe I could identify the particles in contact with the loading area and then prescribing a velocity to them every time the load is applied. Also, to simulate the stirring bar (load case 2) I could do something similar, identify the appropiate particles and set a velocity to them. I haven't though much about it, do you think it'd be correct?

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

I see now that constant velocity would not produce expected results :-) The
ideal solution would be to use facets with mass, but I have no experience
in this..

I personally would do something like this ("manual" time integration of
chosen particles):

O.engines = [
  ...
  PyRunner(iterperiod=1, command="moveFacets()" )
]

vel = Vector3(0,0,1) # initial velocity
actingForce = -10
def moveFacets():
  reaction = sum(O.forces.f(facet.id) for facet in facetsToMove) # total
force acting on movable facets from interaction with otehr particles
  force = actingForce - reaction[2]
  accel = force] / mass # z cmoponent of acceleration, mass is some
artificial constant
  vel[2] += accel*O.dt # some kind of time integration
  for facet in facetsToMove:
    facet.state.vel = vel

Jan

2013/1/31 daalgi <email address hidden>

> Question #220640 on Yade changed:
> https://answers.launchpad.net/yade/+question/220640
>
> Status: Answered => Open
>
> daalgi is still having a problem:
> Hi Jan! Thank you for replying so fast.
>
> I'm sorry I didn't mention it, but the boundary conditions are already
> established: a box with no upper wall. So yes, I already have the
> simulation, but I need to apply the corresponding load cases.
>
> At the first load case, since I should apply a force just in a certain
> area (let's say a quarter of the total area) I think the moving facet
> wouldn't produce the expected effect. Maybe I could identify the
> particles in contact with the loading area and then prescribing a
> velocity to them every time the load is applied. Also, to simulate the
> stirring bar (load case 2) I could do something similar, identify the
> appropiate particles and set a velocity to them. I haven't though much
> about it, do you think it'd be correct?
>
> --
> You received this question notification because you are a member of
> yade-users, which 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
daalgi (dag49) said :
#4

All right! I think it will work out. Thank you so much!

Revision history for this message
daalgi (dag49) said :
#5

Thanks Jan Stránský, that solved my question.