Re: [Yade-users] [Question #295745]: Do bending or twisting moment contribute to cohesive bond breakage ?

2016-06-29 Thread VG
Question #295745 on Yade changed:
https://answers.launchpad.net/yade/+question/295745

VG posted a new comment:
Hello Bruno,

Thanks for your response.

So in the current implementation, the bending moment and twisting moment
act on the particle but do not contribute to the breakage of bonds in
any way.

>when the contact is in tension, i.e. Fn < 0 , does the equation above actually 
>reduce the value of maxFs ? 
>>Yes indeed, if cohesion and friction are combined this is what happens

I am still confused about the second question.
I understand that when the two particles are slightly overlapping, i.e. in 
compression, maxFs = shearAdhesion + Maximum friction force. In other words, 
the shear force is carried by these two different components. However, when the 
contact is in tension, particles are not in touch and the friction shouldn't 
act. In that case, why should friction interfere in the value of maxFs ? 
Shouldn't maxFs  simply be equal to shearAdhesion ?

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #295745]: Do bending or twisting moment contribute to cohesive bond breakage ?

2016-06-28 Thread VG
New question #295745 on Yade:
https://answers.launchpad.net/yade/+question/295745

Hello,

I am using Law2_ScGeom6D_CohFrictPhys_CohesionMoment with 
momentRotationLaw=True; also the default behavior: fragile=True.

For the breakage of the cohesive bond, from what I see in 
CohesiveFrictionalContactLaw.cpp, there are two conditions:

(i)   (-Fn) > (phys->normalAdhesion)

(ii) (Fs) > (phys->shearAdhesion  +  Fn*phys->tangensOfFrictionAngle)

The above equations can simply be interpreted as that when the "Force" (LHS) > 
"Strength" (RHS), the bond breaks.

My question is: Do the bending and twisting moment not contribute to the 
"Force" (LHS) or in other words to the breakage of cohesive bond ? I am 
thinking on the lines of Eq 16 of "A bonded-particle model for rock"
 D.O. Potyondya, P.A. Cundall 
http://mech.spbstu.ru/images/b/bd/Potyondy_Cundall_2004_A_bonded-particle_model_for_rock.pdf



Also, something which is not very clear to me in implementation on line 144 of 
CohesiveFrictionalContactLaw.cpp
maxFs += Fn*phys->tangensOfFrictionAngle;
when the contact is in tension, i.e. Fn < 0 , does the equation above actually 
reduce the value of maxFs ?


Thanks
Varun


-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-06-10 Thread VG
Question #293295 on Yade changed:
https://answers.launchpad.net/yade/+question/293295

VG posted a new comment:
Regarding the above solution, it should be

i.phys.unp = i.geom.penetrationDepth

instead of

i.phys.unp = 0

#to make it initially force free

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #295035]: Use of i.phys.unp to get null forces initially

2016-06-10 Thread VG
Question #295035 on Yade changed:
https://answers.launchpad.net/yade/+question/295035

Status: Answered => Solved

VG confirmed that the question is solved:
Thanks Bruno, I will also post a comment in the other post if someone
else follows this.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #295035]: Use of i.phys.unp to get null forces initially

2016-06-08 Thread VG
Question #295035 on Yade changed:
https://answers.launchpad.net/yade/+question/295035

VG posted a new comment:
Thanks for your response, Jerome!

If I understood it correctly, in compressive situations, if I don't
change the unp value a second time, the normal force would be given by
kn*(un-penetrationDepth). So should unp be changed after few iterations,
to get more accurate normal contact force between the spheres ?

I did not quite understand the last part: 
"unp might evolve without any user's action in situations related to tensile 
regime only (provided your simulation allows tensile loadings at the contact 
scale, and you're using fragile = false)"

I am using cohesive law and as far as I know, by default fragile = True.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #295035]: Use of i.phys.unp to get null forces initially

2016-06-08 Thread VG
Question #295035 on Yade changed:
https://answers.launchpad.net/yade/+question/295035

VG posted a new comment:
Hello Bruno,

Thanks for your response. That clears my first question.

For the second question, I meant to ask that for subsequent iterations,
whether this value of unp stay as penetrationDepth or does it get reset
to zero ?

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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #295035]: Use of i.phys.unp to get null forces initially

2016-06-07 Thread VG
New question #295035 on Yade:
https://answers.launchpad.net/yade/+question/295035

Hello all,

Based on the discussion here: 
https://answers.launchpad.net/yade/+question/257058

I am using:
for i in O.interactions:
  i.phys.unp = i.geom.penetrationDepth

to nullify the initial contact forces and running it for one iteration. This is 
done so that the cohesive bonds between the particles do not break because of 
the initial geometrical overlaps.

1.) What exactly is unp - Is there any reference that I can look into. 

2.) Also, I don't quite understand if there is any impact of above in 
subsequent iterations ? Does it lead to any inaccuracies ?

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-06-02 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

Status: Open => Solved

VG confirmed that the question is solved:
Thanks Jan Stránský, that solved my question.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #294792]: Stable and Dense Packing using TriaxialStressController

2016-06-02 Thread VG
New question #294792 on Yade:
https://answers.launchpad.net/yade/+question/294792

Hello everyone,

I am trying to generate a packing of agglomerates which should be both dense 
and stable. I am using the procedure described here: 
https://github.com/yade/trunk/tree/master/examples/agglomerate

The packing generated using TriaxialStressController in compress.py is not 
stable in the presence of gravity. In other words, when I load this packing in 
simulation.py and run the simulation only with gravitational forces, the 
particles move quite a bit. Is there a way to make this packing also stable in 
the presence of gravity ?

I am trying to follow the solution proposed by Bruno here, but not quite sure 
how it works: https://answers.launchpad.net/yade/+question/263739
In this case, should I just run it first for few iterations with gravity and no 
triax.goal and then set the triax.goal as suggested.

Also, in the compress.py, is it not necessary to get unbalancedForce() below 
some threshold value ? I tried to put a threshold, but with the given 
parameters of triax.goal = -1e-5, the unbalancedForce() does not come down. 
However, if I use, triax.goal = -1, then it comes down below 0.01 within 
few iterations.

Thanks
Varun


-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-06-02 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

VG posted a new comment:
Sure, Thanks Bruno. I have posted a new question for this packing related issue:
https://answers.launchpad.net/yade/+question/294792

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-06-01 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

VG posted a new comment:
Thanks a lot, Jan!

A combination of unloading the sample in compress.py and the use of
following in main simulation gets the desired packing and initial
conditions:

for b in O.bodies:
  if not isinstance(b.shape,Sphere):
continue
  b.dynamic = False

O.step()


for i in O.interactions:
i.phys.unp = i.geom.penetrationDepth

for b in O.bodies:
  if not isinstance(b.shape,Sphere):
continue
  b.dynamic = True

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-29 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

Status: Answered => Open

VG is still having a problem:
Thanks a lot Jan, that did the trick!

I am facing another challenge with the dense packing generated this way.
When I use this packing in the main simulation, lot of cohesive bonds
break even before I apply the actual loading. This is mostly because the
initial packing has overlaps and is not stress-free. Now, I can think of
two possible solutions to this:

1. The solution proposed by Luc Scholtest in #6 at
https://answers.dogfood.paddev.net/yade/+question/164575 , i.e changing
the interaction law such that the initial overlapping is utilized as
equilibrium distance to compute the normal force Fn=k*(D-Deq). I tried
to look into Yade documentation but I couldn't find much on this and how
I can go about doing this.

2. In compress.py, after compressing the sample by 
compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-7
O.run(5,True)
compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-5
O.run(3,True)

May be uncompress the sample by 
compressor.goal1 = compressor.goal2 = compressor.goal3 = 1e-5
O.run(5, True)


The second solution above would again make the packing loose, defeating the 
purpose. So really, if there is a possibility of somehow using the first 
solution above. Or if anyone can please provide some other suggestion ?

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-26 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

VG posted a new comment:
Thanks Jan!

So after using TriaxialStressController in compress.py, I get the position of 
the walls by using O.bodies[].state.pos.
This gives me the dimension and location of the granular sample. 
For example, starting from an initial dimension of (15,15,15), I get to the 
following locations for the walls:
0 -> Vector3(1.9603017656924078,7.5,7.5)
1 -> Vector3(13.213873202175382,7.5,7.5)
2 -> Vector3(7.5,1.0408600478483976,7.5)
3 -> Vector3(7.5,12.620020625453774,7.5)
4 -> Vector3(7.5,7.5,2.0193261962347355)
5 -> Vector3(7.5,7.5,13.575093096100462)

Now, I am trying to use this information in simulation.py to define the
size of the periodic cell and also to translate the granular sample so
that it lies perfectly within the periodic cell.

For translation, I was trying to use

for s in sp:
  s.state.pos[0] = s.state.pos[0] - 1.9603017657
  s.state.pos[1] = s.state.pos[1] - 1.04086
  s.state.pos[2] = s.state.pos[2] - 2.01932

which doesn't work.

Then, I noticed from the Yade user manual that there is a function 
translate((Vector3)arg2) which translate all spheres by given vector. I tried 
using it as:
sp.translate(-1.96030,-1.04086,-2.01932)

but this gives me the error: AttributeError: 'list' object has no
attribute 'translate'. Mostly, I am using it wrong. Could you please
point me to the correct usage ?

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-25 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

VG posted a new comment:
Hello Jan,

I have a follow-up question: I modified the compress.py script a little
bit to generate a periodic packing. Now, how do I use this compressed
packing in my main periodic simulation (MWE posted in #1 above) ? The
specific problems are:

1. How to get the size of periodic cell for main simulation, since the
compressed sample is going to be of smaller dimensions.

2. How to fit the sample exactly in the periodic cell of main
simulation, since the locations are going to be different ?

3. I want periodicity in x and z directions, but I am using top and
bottom boxes in the vertical direction to restrict periodicity in y
direction. I need to place these plates such that they precisely fit the
periodic cell in x & z direction, and contain the granular sample in
y-direction. Now, if I get the solution to above two, that should be
doable.


Just in case, here is the modified script of compress.py:

##
# Compress the loose packing into dense packing. Each agglomerate is
# considered as clump in this stage
##
from yade import export,ymport
import random
random.seed(1)

O.periodic = True

# add walls first
dim = (15,15,15)
#walls = aabbWalls(((0,0,0),(dim)))
#wallIds = O.bodies.append(walls)

# load spheres from file, including information of their agglomerates
ids

sp = ymport.textExt('./cloud.txt')

for s in sp: O.bodies.append(s)

O.cell.setBox(dim)


O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()],
allowBiggerThanPeriod=True),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
PeriIsoCompressor(
charLen = 2.,
stresses=[-100e5,-1e4],
maxUnbalanced=1e-2,
doneHook= 'O.pause();',
globalUpdateInt=5,keepProportions=True),
NewtonIntegrator(damping=.6),
]
O.dt = PWaveTimeStep()

# compress the sample

O.run()
O.wait()


# save the result
export.textExt('./compressed.txt')

try:
from yade import qt
qt.View()
except:
pass



Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-24 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

VG posted a new comment:
That's awesomeThanks Jan!

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-24 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

Status: Answered => Open

VG is still having a problem:
>yes, with dense pack you would have this problem by default.. You have to
> use some other trick :-) As there has been a couple of questions on this
> topic, I will prepare an example script on this.. will inform you.

Thanks Jan, I will be looking forward to this solution.

Regards
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-24 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

Status: Answered => Open

VG is still having a problem:
Hi Jan,

Thanks a lot for your response.

I will study this more and try to figure out how I can set up my
simulation this way. Are there any example scripts which I can look at,
that use this kind of arrangement - i.e. generate the sample in one
simulation and then use that to run the main simulation.

If I understand this procedure correctly, then there might be a problem 
described as follows:
 if I generate a dense packing using this procedure, aggregates will be closely 
packed and the particles from different aggregates will come in contact. Then, 
the automated way of setting cohesive bonds will lead to cohesive bonds between 
particles of two different aggregates as well. 

In my current setting (in MWE), the aggregates are initially far enough
that there is no cohesive bond formation between particles of different
aggregates when I run it for one step. After running it for one step,
then the aggregates come close together due to application of loading
but no new cohesive bond formation takes place. So I am essentially able
to achieve the setting I want, except that the overall packing is not
dense.

Now, is there a possibility of doing something like:

1. Do the steps I am doing right now in MWE, run it for one step to
establish the desired cohesive bonds. Set the cohesive bond strength
very high initially, so that the cohesive bonds don't break when I run
the PeriIsoCompressor engine in next step.

2. Run the PeriIsoCompressor engine upto the desired stress levels to
obtain dense packing. It will lead to some reduced dimension of the
periodic cell- I am not sure how to get those dimensions.

3. Somehow disable the PeriIsoCompressor engine. Add top and bottom
plates to the scene based on the dimensions of the periodic cell. Reset
the value of the cohesive bond strength to the original and more
realistic value, like how it is being done in the current MWE script.

4. Then run the simulation in a regular way.


I am not sure if these above steps are feasible. Also, due to my limited 
understanding of how the flow of engines work, I don't know exactly how to set 
up this procedure.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-20 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

Status: Answered => Open

VG is still having a problem:
Hello Jerome,

Thanks for your response.

By using the above MWE script, I am able to create the cohesive bonds
the way I want which also required some tweaks.

Now, the problem is that the final packing I get is not as dense or
mechanically stable as I would prefer.

So, its only the third step in my above post: "3) apply some compression
to make the packing of aggregates denser", that I am not sure how to
pursue.

Also, once the granular sample is compressed, I would probably have to
change the location and dimension of the plates I am using to apply
loading to the sample. Is there a way to do that  ?

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-20 Thread VG
Question #293955 on Yade changed:
https://answers.launchpad.net/yade/+question/293955

Status: Answered => Open

VG is still having a problem:
Hi Jerome,


In my simulation, I am not using clumps because clump would have rigid 
aggregate of individual particles. Instead, the aggregates I am using in the 
simulation are essentially individual particles glued with cohesive bonds and 
the bonds can break depending on the load.

In my understanding, the .spheres file exported after first simulation 
"generationProcedure.py would have information about all the sub-particles of 
the packing. So what I meant was that in "mainSimulation.py", if I try to 
assign cohesive bond using setCohesionNow = True, then sub-particles from 
different aggregates would also end up getting connected through cohesive bonds.
However, I want that distinction between different aggregates such that I could 
have a dense packing of the aggregates but have cohesive bonds between 
particles lying within an aggregate only.

Just to summarize, I think the initial set up of my problem should
probably have the following three steps:

 1) use makeCloud to create aggregates
 2) use randomDensePack to divide each aggregate into a set of spherical 
particles (all connected by cohesive bonds)
 3) apply some compression to make the packing of aggregates denser

I already have the first two steps, but I am not sure how to incorporate
step 3 in my simulation.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #293955]: How to generate dense packing of aggregates

2016-05-19 Thread VG
New question #293955 on Yade:
https://answers.launchpad.net/yade/+question/293955

Hello everyone,
I am generating a pack of spheres (lets call them aggregates), using makeCloud. 
Each of those spheres consists of a packing of smaller particles glued together 
using cohesive material model. I am using randomDensePack to generate this 
packing of particles within each sphere.

Now, how can I get an overall dense and mechanically stable packing of this 
system ? Going through some previous questions, I understand that I might have 
to use some type of compaction or triaxial controller, but I am not sure how it 
will fit in the overall flow of my simulation. Here is my minimal working 
example script:

 
from yade import pack

#
# Set up run
#
run_name="PeriodicCohesive_MWE"
data_root_dir="."


#
# Materials
#
plate_material=FrictMat(
young=200e9
   ,poisson=0.3
   ,density=8000
   ,frictionAngle=radians(30)
   ,label='plate_mat')
O.materials.append(plate_material)


sample_material=CohFrictMat(
young=4e9
   ,poisson=0.25
   ,density=1400
   ,frictionAngle=radians(30)
   ,normalCohesion=1e8*1.2*1e10
   ,shearCohesion=.4e8*1.2*1e10
   ,momentRotationLaw=True
   ,label='sample_mat')
O.materials.append(sample_material)



#
# Component dimensions and operating condition
#
# Coal dimension
sample_diameter=0.825e-3
sample_radius=sample_diameter/2.0
# Sub-particle dimension
particle_diameter=200.e-6
particle_radius=particle_diameter/2.

# 
# grinding plate dimension
#

rotvel=2./3.*pi*(1.5+0.5)*.254


#
# Periodic Geometry
#


# Set up periodic boundary conditions
O.periodic=True
xExt=7*sample_diameter
yExt=5.*sample_diameter*2 #to block the periodicity in y direction
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt
O.cell.hSize=Matrix3(
  xExt, 0, 0,
  0, yExt, 0,
  0, 0, zExt)


length=xExt
height=yExt
width=zExt

# Top and bottom plate thickness
thickness=0.1*height



#
# Bottom
#

bottomBoxes = []
for ix in (0,1,2):
 for iz in (0,1,2):
   bottomBoxes.append(box( # create 3x3 boxes with 1/3 cell size
   center=(xExt/6.*(1+2*ix),yLim - thickness/2.0,zExt/6.*(1+2*iz))
   ,extents=(xExt/6.,thickness/2.0,zExt/6.)
   ,wire=False
   ,material='plate_mat'
   ))

bottom_id,bottom_ids = O.bodies.appendClumped(bottomBoxes) # bottom_id is the 
clump id,


O.bodies[bottom_id].state.blockedDOFs='xyzXYZ'


#
# Particle Packing
#

min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)

sp=pack.SpherePack()
sp.makeCloud( min_corner,max_corner, psdSizes = 
[500e-6,600e-6,700e-6,800e-6,1000e-6,1200e-6,1400e-6,], 
psdCumm=[0.0977,0.1,0.12,0.18,0.39,0.68,1.0], periodic=False, seed =1)

print "Generated ",len(sp)," aggregates"

###
# Sample
###
for s in sp:
  sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1])
  sp1=pack.randomDensePack(
  sphere
 ,spheresInCell=5000
 ,radius=particle_radius
 ,memoizeDb='/tmp/bigParticlesCache.sqlite'
 ,returnSpherePack=True
 )

  sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6))
  print 'Generated ',len(sp1),' particles'

Gl1_Sphere(stripes=True)


#
 # Top
#
topBoxes = []
for ix in (0,1,2):
 for iz in (0,1,2):
   topBoxes.append(box( # create 3x3 boxes with 1/3 cell size
   center=(xExt/6.*(1+2*ix),yExt - yLim + thickness/2.0,zExt/6.*(1+2*iz))
   ,extents=(xExt/6.,thickness/2.0,zExt/6.)
   ,wire=False
   ,material='plate_mat'
   ))

top_id,top_ids = O.bodies.appendClumped(topBoxes) # top_id is the clump id,


O.bodies[top_id].state.blockedDOFs='xzXYZ'



one_ball_downforce= -15.0 # kg total

O.forces.addF(top_id,(0,one_ball_downforce,0),permanent=True)


#
# Run the simulation
#
r_int = 1.1 # interaction radius

itercheck=1
iterwrite=1
iterforceCheck = 10
iterStart=0 
tStart=0.


O.dt=0.5*PWaveTimeStep()

O.engines=[
  ForceResetter(),
  InsertionSortCollider([

Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-05-11 Thread VG
Question #293295 on Yade changed:
https://answers.launchpad.net/yade/+question/293295

VG posted a new comment:
Thanks Bruno, that solved the issue I was facing.

Also, can you please recommend me a good reference for the CohFrictMat
and cohesive model ?

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-05-11 Thread VG
Question #293295 on Yade changed:
https://answers.launchpad.net/yade/+question/293295

Status: Answered => Solved

VG confirmed that the question is solved:
Thanks Bruno Chareyre, that solved my question.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-05-10 Thread VG
Question #293295 on Yade changed:
https://answers.launchpad.net/yade/+question/293295

VG posted a new comment:
Thanks Huanran, I will look into it further on the lines of what you
suggested.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-05-09 Thread VG
Question #293295 on Yade changed:
https://answers.launchpad.net/yade/+question/293295

VG posted a new comment:
Hello Huanran,

Thanks for your response, that makes sense.

So it seems like I can not reset the value of shearCohesion/normalCohesion  for 
existing interactions created with higher initial values of these parameters.
If I do another setCohesionNow with lower (original) values of cohesion 
parameters, then it would not lead to the correct number of cohesive 
interactions that I want. 

Also, I would prefer to keep the cohesion parameters at their original
value after the initial interactions, since otherwise a different value
will alter the breakage behavior.

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-05-08 Thread VG
Question #293295 on Yade changed:
https://answers.launchpad.net/yade/+question/293295

Status: Solved => Open

VG is still having a problem:
Thanks Jan!
 Thanks to Bruno, I actually found part of the solution here: 
https://answers.launchpad.net/yade/+question/256364
 However, there is something additional described below which I am trying to 
find an answer for.

There are two things which I am doing now in addition to the above script:
 1. Using a value of 1.1 for aabbEnlargeFactor and interactionDetectionFactor 
for collision and interaction respectively.
 2. Using very high normal and shear cohesion values in the first iteration: 
~1e20 and then resetting these values to the original values.

This results in the correct number of cohesive interactions in each
aggregate. However, with the application of the load, these cohesive
bonds don't seem to break anymore.

I am using the commands in the following sequence:

-- In the initial definition of material properties for sample material, set 
very high values of cohesion ~1e20
-- Run one iteration using O.step()
-- Reset the value of cohesion parameters by:
   sample_material.normalCohesion = 1e8*1.2
   sample_material.shearCohesion = 0.4*1e8*1.2
-- O.run()

I also checked the value of sample_material.normalCohesion from command
line interface, and it shows the correct value.

Is there a problem in the sequence of commands ? I think I am pretty close to 
finding a solution but not there yet. 
May be when I am setting very high values of normal and shear cohesion 
initially, some parameters are calculated internally and those need to be reset 
as well after the first iteration ?

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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-05-08 Thread VG
Question #293295 on Yade changed:
https://answers.launchpad.net/yade/+question/293295

Status: Answered => Solved

VG confirmed that the question is solved:
Thanks Jan! 
Thanks to Bruno, I actually found part of the solution here: 
https://answers.launchpad.net/yade/+question/256364
However, there is something additional described below which I am trying to 
find an answer for.

There are two things which I am doing now in addition to the above script: 
1. Using a value of 1.1 for aabbEnlargeFactor and interactionDetectionFactor 
for collision and interaction respectively. 
2. Using very high normal and shear cohesion values in the first iteration: 
~1e20 and then resetting these values to the original values.

This results in the correct number of cohesive interactions in each
aggregate. However, with the application of the load, these cohesive
bonds don't seem to break anymore.

I am using the commands in the following sequence:

-- In the initial definition of material properties for sample material, set 
very high values of cohesion ~1e20
-- Run one iteration by O.step()
-- Reset the value of cohesion parameters by: 
sample_material.normalCohesion = 1e8*1.2
sample_material.shearCohesion = 0.4*1e8*1.2

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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #293295]: Want to connect all the particles in an aggregate using cohesive bond

2016-05-04 Thread VG
New question #293295 on Yade:
https://answers.launchpad.net/yade/+question/293295

Hello everyone,

Here is a description of the problem I am trying to solve:

-- I have a granular sample with spherical particles of diameters D1, D2, D3 
etc. All of such big particles (lets call them agglomerates) are composed of 
smaller particles of diameter 'd', since d is the smallest particle size of 
interest.

-- Initially, within each big spherical particle, all the smaller particles 
should be densely packed and connected with cohesive bonds (CohFrictMat). As 
the loading is applied, the initially defined cohesive bonds within each big 
sphere will break progressively leading to smaller fragments.

Now, the problem I am facing: Initially, within a single big sphere itself, 
sometimes there are particles which are shown not to have any cohesive 
interaction, leaving the small individual particle free to fly. How can I 
alleviate this problem ?

This is a follow-up question to 
https://answers.launchpad.net/yade/+question/292846

Here is the script:


from yade import pack

#
# Set up run
#
run_name="PeriodicCohesive_MWE"
data_root_dir="."



#
# Materials
#
plate_material=FrictMat(
young=200e9
,poisson=0.3
,density=8000.
,frictionAngle=radians(30)
,label='plate_mat')

O.materials.append(plate_material)


sample_material=CohFrictMat(
young=4e9
,poisson=0.25
,density=1400
,frictionAngle=radians(30)
,normalCohesion=1e8*1.2
,shearCohesion=.4e8*1.2
,momentRotationLaw=True
,label='sample_mat')
O.materials.append(sample_material)



#
# Component dimensions and operating condition
#
# Granular material dimension
sample_diameter=2e-4
#sample_diameter=126e-6
sample_radius=sample_diameter/2.0
# Sub-particle dimension
particle_diameter=74e-6
particle_radius=particle_diameter/2.

#
# grinding plate dimension
#

rotvel=2./3.*pi*(1.5+0.5)*.254

#
# Periodic Geometry
#


# Set up periodic boundary conditions
O.periodic=True
xExt=4*sample_diameter
yExt=3.*sample_diameter*2 #to block the periodicity in y direction
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt
O.cell.hSize=Matrix3(
xExt, 0, 0,
0, yExt, 0,
0, 0, zExt)


length=xExt
height=yExt
width=zExt

# Top and bottom plate thickness
thickness=0.1*height





bottomBoxes = []
for ix in (0,1,2):
for iz in (0,1,2):
bottomBoxes.append(box( # create 3x3 boxes with 1/3 cell size
center=(xExt/6.*(1+2*ix),yLim - 
thickness/2.0,zExt/6.*(1+2*iz))
,extents=(xExt/6.,thickness/2.0,zExt/6.)
,wire=False
,material='plate_mat'
))

bottom_id,bottom_ids = O.bodies.appendClumped(bottomBoxes) # bottom_id is the 
clump id,


O.bodies[bottom_id].state.blockedDOFs='xyzXYZ'



#
# Particle Packing
#

min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)

sp=pack.SpherePack()
sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False, 
seed=1)

print "Generated ",len(sp)," aggregates"

###
# Sample
###
for s in sp:
sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1])
sp1=pack.randomDensePack(
sphere
,spheresInCell=2000
,radius=particle_radius
,memoizeDb='/tmp/triaxPackCache.sqlite'
,returnSpherePack=True
)

sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6))
print 'Generated ',len(sp1),' particles'

Gl1_Sphere(stripes=True)

#
 # Top
#
topBoxes = []
for ix in (0,1,2):
for iz in (0,1,2):
topBoxes.append(box( # create 3x3 boxes with 1/3 cell size
center=(xExt/6.*(1+2*ix),yExt - yLim + 
thickness/2.0,zExt/6.*(1+2*iz))
,extents=(xExt/6.,thickness/2.0,zExt/6.)
,wire=False
,material='plate_mat'
  

Re: [Yade-users] [Question #292846]: Particle packing - How to avoid overlap

2016-05-04 Thread VG
Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

Status: Answered => Open

VG is still having a problem:
Okay I see, Thanks Jan!

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292846]: Particle packing - How to avoid overlap

2016-05-04 Thread VG
Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

VG posted a new comment:
Thanks for your response, Jan!
For the generation of big aggregates, one of the procedures you suggested is 
not very clear to me:

>"- use something like randomDensePack on already "meshed" aggregates, see
 > Klaus's answer #3 in [1]"

This procedure talks about creating clumps of spherical particles. As
far as I understand, they behave in a rigid manner and probably I can't
have breakable cohesive bonds within a clump. Also, I dint quite get
what you mean by already "meshed" aggregates ?

I will post another question about the issue with CohFrictMat.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292846]: Particle packing - How to avoid overlap

2016-05-03 Thread VG
Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

Status: Answered => Open

VG is still having a problem:
Thinking about this problem more, this might not actually be a bug. As you 
outlined, the difference between the previous version and "fixed" version is:
- Previous version: Pack all the smaller spheres within the predicate (bigger 
sphere), such that the centers of smaller spheres are within the boundary of 
predicate.
- Fixed version: Only the smaller spheres which are entirely contained within 
the predicate are considered.

What the fixed version does can also possibly be attained by 
pack.inSphere((s[0][0],s[0][1],s[0][2]),(s[1]-particle_radius)). 
Correct me if I am wrong.

That still doesn't solve the physical problem I am trying to set up. I
should give a better description of the problem I am trying to solve, if
there is a better set up possible for the problem:

-- I have a granular sample with given input particle size distribution.
Under mechanical loading, these particles will break and I want to get
the resulting particle size distribution.

-- I am representing the input particle size distribution with spherical
particles of diameters D1, D2, D3 etc. All of such big particles are
composed of smaller particles of diameter 'd', since d is the smallest
particle size of interest.

-- Initially, within each big spherical particle, all the smaller
particles should be densely packed and connected with cohesive bonds. As
the loading is applied, the initially defined cohesive bonds within each
big sphere will break progressively leading to smaller fragments, giving
a new particle size distribution.


The major problems I am facing in the current script are:

-- Smaller particles from two different predicates (big spheres) tend to
overlap.

-- I am noticing that sometimes cohesive bond gets formed between two
smaller particles of different predicates. I would like to avoid this,
since I only want non-cohesive contact between the two different big
spheres.

-- Initially, within a single big sphere itself, sometimes there are
particles which are shown not to have any cohesive interaction, leaving
that small single particle free to fly.


Are there workarounds which can alleviate these problems ?  Or if there is an 
alternative and better way to set up this problem ?
 

Thanks
Varun

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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292911]: How to count number of particles in a fragment, connected by cohesive bonds

2016-05-02 Thread VG
Question #292911 on Yade changed:
https://answers.launchpad.net/yade/+question/292911

VG posted a new comment:
Hello Jan,

Thanks a lot for providing these functions!

I am noticing something strange though, may be I am misinterpreting it.
Running the same script with a seed value of 1 in makeCloud, leads to 19
initial aggregates with 11 particles each. I sent you the database file
generated using memoizeDb in randomDensePack through email.

Now, the above functions print all the standalone aggregates. I am
noticing that some of these aggregates are showing more than 11
particles. This shouldn't happen unless there is formation of new
cohesive bonds. I am unable to explain this behavior.

Regards
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292846]: Particle packing - How to avoid overlap

2016-05-02 Thread VG
Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

VG posted a new comment:
Hello Jan,

Thanks for your help.
Do you know when yadedaily would be updated again or usually how often is it 
updated ? 

Thanks for your tip about the seed, while using makeCloud. I will
certainly use that in future scripts.

Regards
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292846]: Particle packing - How to avoid overlap

2016-05-02 Thread VG
Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

VG posted a new comment:
I got the update last week, but it is still showing me the problematic
overlap. From what I see, the overlap is usually between the two
particles of different aggregates (spheres). Is it related to the bug
you mentioned ? Or is there another better way of generating the packing
which would avoid such overlap ?

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292911]: How to count number of particles in a fragment, connected by cohesive bonds

2016-05-02 Thread VG
Question #292911 on Yade changed:
https://answers.launchpad.net/yade/+question/292911

VG posted a new comment:
Hello Jan,

I have defined sample_material as CohFrictMat and also using
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,label="cohesiveIp")
in the interaction loop. I am not sure what am I missing here. Could you
please help me identify the problem in my model set up.

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292846]: Particle packing - How to avoid overlap

2016-05-01 Thread VG
Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

VG posted a new comment:
Hello Jan,

I installed Yade using the below instructions for pre-built package on
website: https://yade-dem.org/doc/installation.html

sudo bash -c 'echo "deb http://www.yade-dem.org/packages/ trusty/" >> 
/etc/apt/sources.list'
wget -O - http://www.yade-dem.org/packages/yadedev_pub.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install yadedaily

Thanks 
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #292911]: How to count number of particles in a fragment, connected by cohesive bonds

2016-05-01 Thread VG
Question #292911 on Yade changed:
https://answers.launchpad.net/yade/+question/292911

VG posted a new comment:
Hello Jan,

Thanks for your response. The script seems to be running fine. Is there
a problem with the interactions in my model set up ?

Regards
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #292911]: How to count number of particles in a fragment, connected by cohesive bonds

2016-04-29 Thread VG
New question #292911 on Yade:
https://answers.launchpad.net/yade/+question/292911

Hello,

I am trying to model crushing of aggregates of particles and look at the 
resulting fragment size distribution. The model consists of  an assembly of 
spheres (each sphere is composed of constituent smaller particles) between the 
two plates. The top plate is subjected to a constant force and a velocity in 
lateral direction to induce shear. 

As the simulation progresses, the cohesive bonds between the different 
particles start breaking resulting into individual particles and fragments of 
particles. How can I measure the number of such individual particles, fragments 
and the number of particles in each fragment ?
I want to do this to obtain the particle size distribution of the crushed 
sample. 

Here is the minimal working example script:


from yade import pack

#
# Set up run
#
run_name="PeriodicCohesive_MWE"
data_root_dir="."



#
# Materials
#
plate_material=FrictMat(
young=200e9
   ,poisson=0.3
   ,density=8000.
   ,frictionAngle=radians(30)
   ,label='plate_mat')

O.materials.append(plate_material)


sample_material=CohFrictMat(
young=4e9
   ,poisson=0.25
   ,density=1400
   ,frictionAngle=radians(30)
   ,normalCohesion=1e8*1.2
   ,shearCohesion=.4e8*1.2
   ,momentRotationLaw=True
   ,label='sample_mat')
O.materials.append(sample_material)



#
# Component dimensions and operating condition
#
# Granular material dimension
sample_diameter=2e-4
sample_radius=sample_diameter/2.0
# Sub-particle dimension
particle_diameter=74.e-6
particle_radius=particle_diameter/2.

# 
# grinding plate dimension
#

rotvel=2./3.*pi*(1.5+0.5)*.254

#
# Periodic Geometry
#


# Set up periodic boundary conditions
O.periodic=True
xExt=4*sample_diameter
yExt=3.*sample_diameter*2 #to block the periodicity in y direction
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt
O.cell.hSize=Matrix3(
  xExt, 0, 0,
  0, yExt, 0,
  0, 0, zExt)


length=xExt
height=yExt
width=zExt

# Top and bottom plate thickness
thickness=0.1*height





bottomBoxes = []
for ix in (0,1,2):
 for iz in (0,1,2):
   bottomBoxes.append(box( # create 3x3 boxes with 1/3 cell size
   center=(xExt/6.*(1+2*ix),yLim - thickness/2.0,zExt/6.*(1+2*iz))
   ,extents=(xExt/6.,thickness/2.0,zExt/6.)
   ,wire=False
   ,material='plate_mat'
   ))

bottom_id,bottom_ids = O.bodies.appendClumped(bottomBoxes) # bottom_id is the 
clump id,


O.bodies[bottom_id].state.blockedDOFs='xyzXYZ'



#
# Particle Packing
#

min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)

sp=pack.SpherePack()
sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False)

print "Generated ",len(sp)," aggregates"

###
# Sample
###
for s in sp:
  sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1])
  sp1=pack.randomDensePack(
  sphere
 ,spheresInCell=2000
 ,radius=particle_radius
 ,memoizeDb='/tmp/triaxPackCache.sqlite'
 ,returnSpherePack=True
 )

  sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6))
  print 'Generated ',len(sp1),' particles'

Gl1_Sphere(stripes=True)

#
 # Top
#
topBoxes = []
for ix in (0,1,2):
 for iz in (0,1,2):
   topBoxes.append(box( # create 3x3 boxes with 1/3 cell size
   center=(xExt/6.*(1+2*ix),yExt - yLim + thickness/2.0,zExt/6.*(1+2*iz))
   ,extents=(xExt/6.,thickness/2.0,zExt/6.)
   ,wire=False
   ,material='plate_mat'
   ))

top_id,top_ids = O.bodies.appendClumped(topBoxes) # top_id is the clump id,


O.bodies[top_id].state.blockedDOFs='xzXYZ'



plate_downforce=-0.036

O.forces.addF(top_id,(0,plate_downforce,0),permanent=True)

O.bodies[top_id].state.vel[0]= rotvel


#
# Run the simulation
#


O.dt=0.5*PWaveTimeStep()

O.engines=[
  ForceResetter(),
  InsertionSortCollider([
Bo1_Sphere_Aabb()
   ,Bo1_Box_Aabb()
   ], allowBiggerThanPeriod=True
   ),
  InteractionLoop(

[Yade-users] [Question #292846]: Particle packing - How to avoid overlap

2016-04-29 Thread VG
New question #292846 on Yade:
https://answers.launchpad.net/yade/+question/292846

I am generating a pack of spheres (lets call them aggregates), using makeCloud. 
Each of those spheres consists of a packing of smaller particles glued together 
using cohesive material model. I am using randomDensePack to generate this 
packing of particles within each sphere. 

Now, when I visualize the packing, I notice that sometimes there is an overlap 
between the particles of two different aggregates. I want to avoid this, since 
it results in internal stresses in the initial condition. Is there a better way 
to generate this kind of packing ?

Here is the minimal working example script:

 
from yade import pack,qt,plot,utils,export,ymport
from math import *

#
# Set up run
#
run_name="test_aggregates"
data_root_dir="."




#
# Materials
#

sample_material=CohFrictMat(
young=4e9
   ,poisson=0.25
   ,density=1400
   ,frictionAngle=radians(30)
   ,normalCohesion=1e8*1.2
   ,shearCohesion=.4e8*1.2
   ,momentRotationLaw=True
   ,label='sample_mat')
O.materials.append(sample_material)

#
# Component dimensions and operating condition
#
# Sample dimension
sample_radius=5e-4
# Sub-particle dimension
particle_radius=2.5e-4

#
# Geometry
#



xExt=4*sample_radius
yExt=4*sample_radius*2 
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt



#
# Particle Packing
#

min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)

sp=pack.SpherePack()
sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False)

print "Generated ",len(sp)," aggregates"

###
# Sample
###
for s in sp:
  sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1])
  sp1=pack.randomDensePack(
  sphere
 ,spheresInCell=2000
 ,radius=particle_radius
 ,memoizeDb='/tmp/triaxPackCache.sqlite'
 ,returnSpherePack=True
 )

  sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6))
  print 'Generated ',len(sp1),' particles'

Gl1_Sphere(stripes=True)



Thanks 
Varun


-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-26 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

Status: Answered => Solved

VG confirmed that the question is solved:
Thanks Jan Stránský, that solved my question.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-25 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

VG posted a new comment:
I am using version 1.07.0

The output of the two commands are as follows:

O.bodies[top_id].state.mass
0.0

O.bodies[top_id].state.inertia
Vector3(nan,nan,nan)

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-25 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

VG posted a new comment:
Thanks Jan!
I modified the generation of top and bottom boxes as you suggested. The boxes 
seem to be generated the way they should be. However, as soon as the simulation 
starts, those boxes just disappear. I am not sure what is causing this 
behavior. Here is the updated MWE script:


# Generate a periodic cell with few super-particles.
# Each superparticle consists of smaller sub-particles of 75 microns
# bonded with cohesive bonds.

from yade import pack,qt,plot,utils,export,ymport
from math import *
from pylab import rand
import datetime
import os,shutil

#
# Set up run
#
run_name="PeriodicCohesive_MWE"
data_root_dir="."
if not os.path.exists(data_root_dir):
  print "The data root directory you specified:"
  print data_root_dir
  print "does not exist. Exiting..."
  exit()
timestamp=datetime.datetime.now().strftime("%Y.%m.%d-%H%M%S")
run_dir_name=timestamp+'-'+run_name
data_dir_path=os.path.join(data_root_dir,run_dir_name)
if not os.path.exists(data_dir_path):
  os.makedirs(data_dir_path)
else:
  print("Something is really wrong if you get this message. Exiting...\n")
  exit()

run_name_base_path=os.path.join(data_dir_path,run_name+'-')
# opts.script is defined in yade, which inserts the script file (e.g.
# this file) into itself.
this_script=os.path.abspath(opts.script)
shutil.copy(this_script,data_dir_path)


#
# Materials
#
plate_material=CohFrictMat(
young=200e9
   ,poisson=0.3
   ,density=8000
   ,frictionAngle=radians(30)
   ,normalCohesion=1e10
   ,shearCohesion=1e10
   ,momentRotationLaw=True
   ,label='plate_mat')
O.materials.append(plate_material)


sample_material=CohFrictMat(
young=4e9
   ,poisson=0.25
   ,density=1400
   ,frictionAngle=radians(30)
   ,normalCohesion=1e8*1.2
   ,shearCohesion=.4e8*1.2
   ,momentRotationLaw=True
   ,label='sample_mat')
O.materials.append(sample_material)


#
# Component dimensions and operating condition
#
# Granular material dimension
sample_diameter=2e-4
sample_radius=sample_diameter/2.0
# Sub-particle dimension
particle_diameter=74.e-6
particle_radius=particle_diameter/2.

# 
# grinding plate dimension
#

rotvel=2./3.*pi*(1.5+0.5)*.254

#
# Periodic Geometry
#


# Set up periodic boundary conditions
O.periodic=True
xExt=4*sample_diameter
yExt=3.*sample_diameter*2 #to block the periodicity in y direction
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt
O.cell.hSize=Matrix3(
  xExt, 0, 0,
  0, yExt, 0,
  0, 0, zExt)


length=xExt
height=yExt
width=zExt

# Top and bottom plate thickness
thickness=0.1*height


#
# Bottom
#
#bottom=box(
#center=(length/2.0,yLim - thickness/2.0,width/2.0)
#   ,extents=(4*length,thickness/2.0,width)
#   ,wire=False
#   ,material='plate_mat'
#   )

bottomBoxes = []
for ix in (0,1,2):
 for iz in (0,1,2):
   bottomBoxes.append(box( # create 3x3 boxes with 1/3 cell size
   center=(xExt/6.*(1+2*ix),yLim - thickness/2.0,zExt/6.*(1+2*iz))
   ,extents=(xExt/6.,thickness/2.0,zExt/6.)
   ,wire=False
   ,material='plate_mat'
   ))

bottom_id,bottom_ids = O.bodies.appendClumped(bottomBoxes) # bottom_id
is the clump id,


O.bodies[bottom_id].state.blockedDOFs='xyzXYZ'


#
# Particle Packing
#

min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)

sp=pack.SpherePack()
sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False)

print "Generated ",len(sp)," aggregates"

###
# Sample
###
for s in sp:
  sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1])
  sp1=pack.randomDensePack(
  sphere
 ,spheresInCell=2000
 ,radius=particle_radius
 ,memoizeDb='/tmp/triaxPackCache.sqlite'
 ,returnSpherePack=True
 )

  sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6))
  print 'Generated ',len(sp1),' particles'

Gl1_Sphere(stripes=True)

#
# Top
#
#top=box(
#center=(length/2.0,yExt - yLim + thickness*

Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-25 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

VG posted a new comment:
Hello Jan,

Thanks for your response. I tried what you suggested, i.e. one small box
(1/3 of the periodic cell), but it still seems to have the same problem
and the top box is just flying through the particles. I don't know if
there is a way to attach images here, so I have sent you screenshot of
the simulation through email. Is there something in my set up that I am
missing ?

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290933]: Particles fall through facets in periodic simulation

2016-04-25 Thread VG
Question #290933 on Yade changed:
https://answers.launchpad.net/yade/+question/290933

VG posted a new comment:
Thanks for your response, Bettina!
Yes the work around which Bruno suggested doesn't work for me either.

May be I will have to change the problem set up, but at this point I
don't know how I could achieve that and still keep it physically
realistic. I need to compress the granular material with a constant
force or leading to a constant compressive stress and then induce shear
stress (currently doing it through the velocity of plate) to study the
breakage of granular material. Please let me know if you have any
suggestions.

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-25 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

VG posted a new comment:
Hi Bruno,

Thanks for your response.

I tried to incorporate the changes you suggested, but the problem still
doesn't seem to go away. Also, another perplexing thing I notice from
the simulation that as soon as it starts, some individual particles seem
to be just flying in the domain even though they should be part of
aggregates connected by cohesive bonds.

Is there a work around or something I could change in the problem set up
that would help me resolve this issue ?

I just simply need to compress the granular material with a constant
force or leading to a constant compressive stress and then apply shear
force.

Regards
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290933]: Particles fall through facets in periodic simulation

2016-04-24 Thread VG
Question #290933 on Yade changed:
https://answers.launchpad.net/yade/+question/290933

VG requested more information:
Hello Bettina,

Were you able to resolve this issue or find a work around ? I continue
to face this problem and have posted a minimal working example at :
https://answers.launchpad.net/yade/+question/290950

The top and bottom plates are far apart (more than 3 times the diameter
of particles) to start with, but the top plate still goes through the
particles and even bottom plate eventually.

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-24 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

Status: Answered => Open

VG is still having a problem:
Below is one minimal working example which shows such problem. I am trying to 
compress an assembly of particles between the two plates. The top plate is 
subjected to a constant force and a velocity in lateral direction to induce 
shear.  The top plate doesn't seem to be interacting with the system and it is 
just crossing all the particles and bottom plate. Can someone please suggest 
what am I doing wrong here or if there is a workaround ?
I am using Yade 1.07.0 on Ubuntu 14.04.



# Generate a periodic cell with few super-particles.
# Each superparticle consists of smaller sub-particles of 75 microns
# bonded with cohesive bonds.

from yade import pack,qt,plot,utils,export,ymport
from math import *
from pylab import rand
import datetime
import os,shutil

#
# Set up run
#
run_name="PeriodicCohesive"
data_root_dir="."
if not os.path.exists(data_root_dir):
  print "The data root directory you specified:"
  print data_root_dir
  print "does not exist. Exiting..."
  exit()
timestamp=datetime.datetime.now().strftime("%Y.%m.%d-%H%M%S")
run_dir_name=timestamp+'-'+run_name
data_dir_path=os.path.join(data_root_dir,run_dir_name)
if not os.path.exists(data_dir_path):
  os.makedirs(data_dir_path)
else:
  print("Something is really wrong if you get this message. Exiting...\n")
  exit()

run_name_base_path=os.path.join(data_dir_path,run_name+'-')
# opts.script is defined in yade, which inserts the script file (e.g.
# this file) into itself.
this_script=os.path.abspath(opts.script)
shutil.copy(this_script,data_dir_path)


#
# Materials
#
plate_material=CohFrictMat(
young=200e9
   ,poisson=0.3
   ,density=8000
   ,frictionAngle=radians(30)
   ,normalCohesion=1e10
   ,shearCohesion=1e10
   ,momentRotationLaw=True
   ,label='plate_mat')
O.materials.append(plate_material)


sample_material=CohFrictMat(
young=4e9
   ,poisson=0.25
   ,density=1400
   ,frictionAngle=radians(30)
   ,normalCohesion=1e8*1.2
   ,shearCohesion=.4e8*1.2
   ,momentRotationLaw=True
   ,label='sample_mat')
O.materials.append(sample_material)


#
# Component dimensions and operating condition
#
# Granular material dimension
sample_diameter=2e-4
sample_radius=sample_diameter/2.0
# Sub-particle dimension
particle_diameter=74.e-6
particle_radius=particle_diameter/2.

# 
# grinding plate dimension
#

rotvel=2./3.*pi*(1.5+0.5)*.254

#
# Periodic Geometry
#


# Set up periodic boundary conditions
O.periodic=True
xExt=4*sample_diameter
yExt=3.*sample_diameter*2 #to block the periodicity in y direction
zExt=xExt
xLim=xExt
yLim=yExt/4
zLim=zExt
O.cell.hSize=Matrix3(
  xExt, 0, 0,
  0, yExt, 0,
  0, 0, zExt)


length=xExt
height=yExt
width=zExt

# Top and bottom plate thickness
thickness=0.1*height


#
# Bottom
#
bottom=box(
center=(length/2.0,yLim - thickness/2.0,width/2.0)
   ,extents=(4*length,thickness/2.0,width)
   ,wire=False
   ,material='plate_mat'
   )

O.bodies.append(bottom)

O.bodies[0].state.blockedDOFs='xyzXYZ'


#
# Particle Packing
#

min_corner= (0,yLim,0)
max_corner= (xLim, yExt-yLim, zLim)

sp=pack.SpherePack()
sp.makeCloud( min_corner,max_corner, rMean=sample_radius, periodic=False)

print "Generated ",len(sp)," aggregates"

###
# Sample
###
for s in sp:
  sphere=pack.inSphere((s[0][0],s[0][1],s[0][2]),s[1])
  sp1=pack.randomDensePack(
  sphere
 ,spheresInCell=2000
 ,radius=particle_radius
 ,memoizeDb='/tmp/triaxPackCache.sqlite'
 ,returnSpherePack=True
 )

  sp1.toSimulation(material='sample_mat',color=(0.9,0.8,0.6))
  print 'Generated ',len(sp1),' particles'

Gl1_Sphere(stripes=True)

#
# Top
#
top=box(
center=(length/2.0,yExt - yLim + thickness/2.0,width/2.0)
   ,extents=(4*length,thickness/2.0,width)
   ,wire=False
   ,material='plate_mat'
   )

top_id=O.bodi

Re: [Yade-users] [Question #291114]: virtual time and time step

2016-04-18 Thread VG
Question #291114 on Yade changed:
https://answers.launchpad.net/yade/+question/291114

VG posted a new comment:
Hello Jan,

Thanks for your response. The script I am running is fairly large. Also,
I just realized that it is using O.dt=0.5*PWaveTimeStep(), and there is
an algorithm in the script to continually break particles into smaller
sizes. So after all, probably dt defined in the above way does not
remain constant. I will try with a constant value of dt and check if I
am able to get the desired outcome.

Regards
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-15 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

VG posted a new comment:
Hello Bettina,

Thanks for your note. Yes, the problem seems similar.

Also, on taking a closer look, I notice that after some simulation time
some particles seem to be overlapping. Does increasing the distance
between facet walls make the problem go away ?

Thanks
Varun

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #291114]: virtual time and time step

2016-04-14 Thread VG
New question #291114 on Yade:
https://answers.launchpad.net/yade/+question/291114

I am new to Yade and this question might sound a little silly. I am running a 
Yade simulation and from the controller, when I look at the virtual time at any 
given instant, it is not equal to Number of iterations X delta_t (fixed). 
What's the reason for this ?

For example, at a particular instant, here are the three values I see from the 
controller:

virt 001s898m453mu002n
iter #49708131, 1528.0/s
delta_t (fixed) = 4.22594404226e-08


-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #290950]: Particles crossing the wall

2016-04-14 Thread VG
Question #290950 on Yade changed:
https://answers.launchpad.net/yade/+question/290950

VG posted a new comment:
Thanks for your response, Jan!
I will get the MWE and post it here.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #258444]: How to create a rigid floor in a particle deposition with periodic boundaries

2016-04-14 Thread VG
Question #258444 on Yade changed:
https://answers.launchpad.net/yade/+question/258444

VG posted a new comment:
Sure, Thanks Bruno. I have posted it as a new question:
https://answers.launchpad.net/yade/+question/290950

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #290950]: Particles crossing the wall

2016-04-14 Thread VG
New question #290950 on Yade:
https://answers.launchpad.net/yade/+question/290950

I intend to create a cloud of spheres in a box which has:

- periodic boundary conditions for all vertical walls
- and rigid floor & ceiling

I am applying compression from the ceiling. Now, what I observe is that some 
particles cross the floor and ceiling (which are intended to be rigid) and seem 
to be in a perpetual motion without any interaction with the system  


The material properties I am using are as follows:

For the floor and ceiling: FrictMat( young=200e9, poisson=0.3, density=8000. 
,frictionAngle=radians(30) ,label='wall_mat')

And for the particles:
 FrictMat( 
young=4e9,poisson=0.25,density=1346,frictionAngle=radians(30),label='sample_mat')

Can I solve this problem by increasing the Young's modulus for both the 
materials and what values should I use here ?
 Also, wouldn't increasing the Young's Modulus for particles arbitrarily lead 
to unphysical response ?

 In addition, I am using O.dt=0.5*PWaveTimeStep() in my simulation. Now, 
increasing the Young's modulus would also reduce the required time step.


-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #258444]: How to create a rigid floor in a particle deposition with periodic boundaries

2016-04-13 Thread VG
Question #258444 on Yade changed:
https://answers.launchpad.net/yade/+question/258444

VG posted a new comment:
I am experiencing a similar problem and the material properties I am
using are as follows:

For the floor and ceiling: FrictMat( young=200e9, poisson=0.3,
density=8000. ,frictionAngle=radians(30) ,label='wall_mat')

And for the particles:
FrictMat( 
young=4e9,poisson=0.25,density=1346,frictionAngle=radians(30),label='sample_mat')

Can I solve this problem by increasing the Young's modulus for both the 
materials and what values should I use here ?
Also, wouldn't increasing the Young's Modulus for particles arbitrarily lead to 
unphysical response ? 

 In addition, I am using O.dt=0.5*PWaveTimeStep() in my simulation. Now,
increasing the Young's modulus would also reduce the required time step.

-- 
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@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp