Re: [Yade-users] [Question #706790]: Sphere packing location

2023-06-09 Thread Launchpad Janitor
Question #706790 on Yade changed:
https://answers.launchpad.net/yade/+question/706790

Status: Open => Expired

Launchpad Janitor expired the question:
This question was expired because it remained in the 'Open' state
without activity for the last 15 days.

-- 
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 #706790]: Sphere packing location

2023-05-26 Thread Gem Herrera
Question #706790 on Yade changed:
https://answers.launchpad.net/yade/+question/706790

Gem Herrera posted a new comment:
Suppose velocity is not as high as that in one time step, it fully goes from 
one side of the barrier to the other, without of contact detection
And inertia interplay is not such that the barrier cannot stop the particle 
from passing through.
Regards
https://proassemblage.com/

-- 
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 #706790]: Sphere packing location

2023-05-25 Thread Jan Stránský
Question #706790 on Yade changed:
https://answers.launchpad.net/yade/+question/706790

Jan Stránský posted a new comment:
I understand that for actual simulation, you use that many particles.
My point was that for this forum and for higher probability of good answer (I 
was not able to run the script on my laptop, so I was only guessing), always 
try to create a script focusing just on the problem, trying to make it minimal 
(both from the point of view of code and resources needed for run).
As a byproduct, by creating such MWE, often you can find the problem yourself.

"Small" particles (in fact any particle) can "go through" a barrier, it depends 
on many factors, mainly:
- if velocity of the particle is not as high as that in one time step it fully 
goes from one side of the barrier to the other, without any possibility of 
contact detection
- if stiffness / force / inertia interplay is not such that the barrier cannot 
prevent the particle from passing through.

Cheers
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 #706790]: Sphere packing location

2023-05-25 Thread Huan
Question #706790 on Yade changed:
https://answers.launchpad.net/yade/+question/706790

Status: Solved => Open

Huan is still having a problem:
Hey,

Jan out of curiosity if the sphere that are generated are so small for
example my asphalt binder is 0.0003 wouldn't it just go through the
funnel and the cylinder for gravity deposition part?

-- 
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 #706790]: Sphere packing location

2023-05-25 Thread Huan
Question #706790 on Yade changed:
https://answers.launchpad.net/yade/+question/706790

Status: Answered => Solved

Huan confirmed that the question is solved:
Thanks Jan,
I was able to modify it by lowering the min z.
I think 5 millions spheres is not relevant, but my prof. want all of it even 
though my pc aren't able to generate

-- 
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 #706790]: Sphere packing location

2023-05-25 Thread Jan Stránský
Question #706790 on Yade changed:
https://answers.launchpad.net/yade/+question/706790

Status: Open => Answered

Jan Stránský proposed the following answer:
Hello,

please provide a MWE [1], M = minimal
Is 5 millions spheres needed to demonstrate your problem?

"bursting" might be caused by particle overlap.
Which coordinate "dividing it by 8" supports (if I understand it correctly)..

Cheers
Jan

[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #706790]: Sphere packing location

2023-05-25 Thread Huan
New question #706790 on Yade:
https://answers.launchpad.net/yade/+question/706790

Hello,

I create two python script.
1. Sphere Packing Position Saving
2. Importing the sphere packing from 1. to do gravity deposition
>>The Problem I encounter is that I try to move the ( zi = minz + l * gridsize 
>>) lower by dividing it by 8. However, after I import the postion in 2nd 
>>python script the sphere packing burst out which I am confuse on what is 
>>making them burst apart.

### SCRIPT 1 ###
import random
import math
from yade import geom, pack, utils, plot, ymport, export
import numpy as np

# Define cylinder with funnel parameters
center = (0, 0, 0)
diameter = 0.102
height = 0.18

# create cylindrical body with radius 0.102 m and height 0.064 m
cylinder = geom.facetCylinder(center=center, radius=diameter/2, height=height, 
segmentsNumber=80, wallMask=6)

# add cylinder to simulation
O.bodies.append(cylinder)

# Define cylinder with funnel parameters
center1 = (0,0,height/2)
dBunker = 0.4
dOutput = 0.102
hBunker = 0
hOutput = 0.15
hPipe = 0

# create funnel as a bunker with diameter 0.102 m, height 0.064 m
funnel = geom.facetBunker(center=center1, dBunker=dBunker, dOutput=dOutput, 
hBunker=hBunker,hOutput=hOutput, hPipe=hPipe, segmentsNumber=80, wallMask=4)

# add funnel to simulation
O.bodies.append(funnel)

def makeRandomBlocks(diameter, gridsize, minz, numblocks):
bunkerLimit = diameter/2
#
# Make grid blocks inside a bunker
#
grid = np.arange(-bunkerLimit, bunkerLimit, gridsize)
inGrid = []
for yi in grid:
for xi in grid:
c = [[xi, yi], [xi+gridsize, yi], [xi+gridsize, yi+gridsize], [xi, 
yi+gridsize]]
#
# Check if the block corners are outside of the bunker or not
#
out = False
for p in c:
r = (p[0]**2 + p[1]**2)**0.5
if r > bunkerLimit:
out = True
#
# If the block is inside the bunker, keep it
#
if not out:
inGrid.append(c)
layer = math.ceil(numblocks / len(inGrid))
blocks = []
for l in range(layer):
for g in inGrid:
zi = minz + l*gridsize
p1 = g[0].copy()
p1.append(zi)
p2 = g[2].copy()
p2.append(zi+gridsize)
blocks.append([p1, p2])
random.shuffle(blocks)
return blocks

minZ = 2.35
dbunker = 0.4
gridSize = dbunker/8
numblocks = 51
blockList = makeRandomBlocks(dbunker, gridSize, minZ, numblocks)

for i in range(numblocks):
print("Making cloud block", i+1, "/", numblocks)
corner = blockList.pop()
sp = pack.SpherePack()

# 15.75 mm 13 particles
if (i < 13): 
n1 = sp.makeCloud(minCorner=corner[0], maxCorner=corner[1], 
rMean=0.01575/2, num=1)
 
# 11 mm 51 particles 
n2 = sp.makeCloud(minCorner=corner[0], maxCorner=corner[1], rMean=0.011/2, 
num=1)
 
# 7.125 mm 51x11 = 561 particles
n3 = sp.makeCloud(minCorner=corner[0], maxCorner=corner[1], 
rMean=0.007125/2, num=11)

# 3.555 mm 51x100 = 5,100 particles 
n4 = sp.makeCloud(minCorner=corner[0], maxCorner=corner[1], 
rMean=0.003555/2, num=100)

# 1.77 mm 51x360 = 18,360 particles 
n5 = sp.makeCloud(minCorner=corner[0], maxCorner=corner[1], 
rMean=0.00177/2, num=360)

# 0.6 mm 51x19000 = 969,000 particles 
n6 = sp.makeCloud(minCorner=corner[0], maxCorner=corner[1], rMean=0.0006/2, 
num=19000)

# 0.3 mm 51x78510 = 4,004,010 particles 
n7 = sp.makeCloud(minCorner=corner[0], maxCorner=corner[1], rMean=0.0003/2, 
num=78510)

sp.toSimulation()

export.text("testCloud.txt")


### Script 2 ###
import random
import math
from yade import geom, pack, utils, plot, ymport, export
import numpy as np

# Define cylinder with funnel parameters
center = (0, 0, 0)
diameter = 0.102
height = 0.18

# create cylindrical body with radius 0.102 m and height 0.064 m
cylinder = geom.facetCylinder(center=center, radius=diameter/2, height=height, 
segmentsNumber=80, wallMask=6)

# add cylinder to simulation
O.bodies.append(cylinder)

# Define cylinder with funnel parameters
center1 = (0,0,height/2)
dBunker = 0.4
dOutput = 0.102
hBunker = 0
hOutput = 0.15
hPipe = 0

# create funnel as a bunker with diameter 0.102 m, height 0.064 m
funnel = geom.facetBunker(center=center1, dBunker=dBunker, dOutput=dOutput, 
hBunker=hBunker,hOutput=hOutput, hPipe=hPipe, segmentsNumber=80, wallMask=4)

# add funnel to simulation
O.bodies.append(funnel)

# add sphere packing
O.bodies.append(ymport.textExt('testCloud.txt',format='x_y_z_r'))

# materials Properties
gravel = CohFrictMat(young = 1e7, poisson = 0.25, density = 2700, label = 
'gravel')
asphalt_binder = CohFrictMat(young = 1e7, poisson = 0.25, density = 1060, 
frictionAngle = radians(40),  normalCohesion = 2e5, shearCohesion = 2e5, label 
= 'asphalt_binder')

# add properties