Re: [Yade-users] [Question #625502]: How to get the minimum porosity of packing using randomDensePack

2017-04-23 Thread Robert Caulk
Question #625502 on Yade changed:
https://answers.launchpad.net/yade/+question/625502

Status: Open => Answered

Robert Caulk proposed the following answer:
Hello,

I noticed you are not following the same procedure used by [1] to
achieve a specified porosity. Also, in your script you are not
triaxially compressing your cube before extracting your predicate. And
even if you did triaxially compress your cube before extraction, you are
extracting your predicate from the original non-compacted spherepack
(sp). So "assembly" is a sphere of spheres with the same porosity as the
original makeCloud sphere pack.

The error you are receiving is probably due to the fact that you are
trying to append a sphere pack into the middle of another sphere pack,
resulting in maybe some instability and the loss of all spheres from
your box.

Maybe this is the procedure you need:

Follow [1] to get to a cube of specified porosity
create a new cube spherepack from the compacted spheres
use filterSpherePack to create a spherical spherepack with the cube spherepack 
and the predicate
remove the cube bodies from your simulation
add the new spherical spherepack to your simulation

Cheers,

Robert

[1]https://github.com/yade/trunk/blob/e4e757f2e98a620e3177b7a36a1d10f69f6a6a28/examples
/triax-tutorial/script-session1.py

-- 
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 #626577]: Batch - error that doesn't appear in non-batch module

2017-04-23 Thread Klaus Thoeni
Question #626577 on Yade changed:
https://answers.launchpad.net/yade/+question/626577

Status: Open => Answered

Klaus Thoeni proposed the following answer:
Hi,

this might work for you but it is difficult to guess without the full
script. Try to put your definition of addPlotData before the definition
of your engines in your python script. If already the case you might
have to provide the full script to give us more details.

HTH
Klaus

-- 
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 #626577]: Batch - error that doesn't appear in non-batch module

2017-04-23 Thread Abimael
New question #626577 on Yade:
https://answers.launchpad.net/yade/+question/626577

Hello everybody. 

I have never used the batch module and I am trying to run a simulation in it. 
When running in normal module, the script works well. However, when I run it in 
a batch module, the log files created print repeatedly the following message: 

Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'addPlotData' is not defined 

I don't know what to do once the script works well when runned alone and the 
function 'addPlotData' is actually defined. 

Many 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 #626571]: number of contact for particles with the same size

2017-04-23 Thread reza
New question #626571 on Yade:
https://answers.launchpad.net/yade/+question/626571

Hi guys
I have a binary mixture with two sizes (for example 4 mm and 1 mm). I want to 
know the number of contacts between spheres with size of 4mm by themselves. So, 
does anybody have an idea how to do that?

Thanks.

Reza.

-- 
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 #626563]: ubuntu 16.04: Missing dependency for LINSOLV

2017-04-23 Thread Robert Caulk
Question #626563 on Yade changed:
https://answers.launchpad.net/yade/+question/626563

Status: Open => Answered

Robert Caulk proposed the following answer:
Hey Luc,

Yeah the online documentation should probably be updated since
libsuitesparse-metis-dev no longer exists (or did it ever exist?), the
LINSOLV dependencies can be obtained as follows:

sudo apt-get -y install libopenblas-dev libsuitesparse-dev libmetis-dev

>I also faced other problems during the installation process (The repository 
>'http://ppa.launchpad.net/yade-users/external/ubuntu xenial Release' does not 
>have a Release file
I guess the PPA just doesn't have software for xenial specifically so it uses 
old files [1]

https://answers.launchpad.net/yade/+question/622061


Best,

Robert

-- 
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 #626563]: ubuntu 16.04: Missing dependency for LINSOLV

2017-04-23 Thread Luc Scholtès
New question #626563 on Yade:
https://answers.launchpad.net/yade/+question/626563

Hi there,

I tried to make a fresh install of yade source code on Ubuntu 16.04 and faced a 
problem related to Metis. Here is what I get when doing sudo apt-get install 
libsuitesparse-metis-dev:

Package 'libsuitesparse-metis-dev' has no installation candidate
This may mean that the package is missing, has been obsoleted, or is only 
available from another source
However the following packages replace it: libsuitesparse-dev:i386 
libsuitesparse-dev

As suggested, I installed libsuitesparse-dev but, when doing cmake 
-DCMAKE_INSTALL_PREFIX=../install ../trunk, here is what I get:

-- Could NOT find Metis (missing:  METIS_INCLUDE_DIR METIS_LIBRARY) 
-- Missing dependency for LINSOLV, disabled
-- Disabled features: LINSOLV SPH LIQMIGRATION MASK_ARBITRARY PROFILING 
PotentialParticles PotentialBlocks

I also faced other problems during the installation process (The repository 
'http://ppa.launchpad.net/yade-users/external/ubuntu xenial Release' does not 
have a Release file when adding yade ppa and The imported target 
"vtkRenderingPythonTkWidgets" references the file 
"/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file 
does not exist when cmake) but I could install YADE anyway.

At the end of the day, Yade is running well but I cannot benefit from LINSOLV 
and it is very annoying since I'd like to work with PFVFLOW.

Any suggestion? Is there anybody else working with Ubuntu 16.04 facing the same 
problem?

Cheers

Luc



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 #625502]: How to get the minimum porosity of packing using randomDensePack

2017-04-23 Thread Huihuang Xia
Question #625502 on Yade changed:
https://answers.launchpad.net/yade/+question/625502

Status: Needs information => Open

Huihuang Xia gave more information on the question:
Thanks Robert,

https://answers.launchpad.net/yade/+question/246971, gives a good
example. Thus, I want to do a tri-axial compression on a cubic sample
and filter a stone particle shape using pack.filterSpherePack from this
sample. Is this method correct?

According to
https://github.com/yade/trunk/blob/e4e757f2e98a620e3177b7a36a1d10f69f6a6a28/examples
/triax-tutorial/script-session1.py, here is  a code was used to filter a
sphere from a cubic sample, but this code failed, because it got the
following error:

Desktop/sphere$ yade sphere.py
Welcome to Yade 2016.06a 
TCP python prompt on localhost:9000, auth cookie `ecssdy'
XMLRPC info provider on http://localhost:21000
Running script sphere.py
[[ ^L clears screen, ^U kills line. F12 controller, F11 3d view (use h-key for 
showing help), F10 both, F9 generator, F8 plot. ]]

Yade [1]: 
---
ValueErrorTraceback (most recent call last)
/home/huihuang/YADE/install/lib/x86_64-linux-gnu/yade-2016.06a/py/yade/__init__.pyc
 in refreshEvent(self)
190 def zxySlot(self): self.setViewAxes((0,-1,0),(1,0,0))
191 def refreshEvent(self):
--> 192 self.refreshValues()
193 self.activateControls()
194 def deactivateControls(self):

/home/huihuang/YADE/install/lib/x86_64-linux-gnu/yade-2016.06a/py/yade/__init__.pyc
 in refreshValues(self)
263 self.iterLabel.setText('#%ld / %ld, %.1f/s 
%s'%(O.iter,stopAtIter,self.iterPerSec,subStepInfo))
264 if t!=float('inf'):
--> 265 s=int(t); ms=int(t*1000)%1000; 
us=int(t*100)%1000; ns=int(t*10)%1000
266 
self.virtTimeLabel.setText(u'%03ds%03dm%03dμ%03dn'%(s,ms,us,ns))
267 else: self.virtTimeLabel.setText(u'[ ∞ ] ?!')

ValueError: cannot convert float NaN to integer


Here is my code:

from yade import pack
from yade import export


###   DEFINING VARIABLES AND MATERIALS   ###


# The following 5 lines will be used later for batch execution
nRead=readParamsFromTable(
num_spheres=3000,# number of spheres
compFricDegree = 30, # contact friction during the confining phase
key='_triax_base_', # put you simulation's name here
unknownOk=True
)
from yade.params import table

num_spheres=table.num_spheres# number of spheres
key=table.key
targetPorosity = 0.43 #the porosity we want for the packing
compFricDegree = table.compFricDegree # initial contact friction during the 
confining phase (will be decreased during the REFD compaction process)
finalFricDegree = 30 # contact friction during the deviatoric loading
rate=-0.02 # loading rate (strain rate)
damp=0.2 # damping coefficient
stabilityThreshold=0.01 # we test unbalancedForce against this value in 
different loops (see below)
young=5e6 # contact stiffness
mn,mx=Vector3(0,0,0),Vector3(1,1,1) # corners of the initial packing


## create materials for spheres and plates
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))

## create walls around the packing
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

## use a SpherePack object to generate a random loose particles packing
global sp
sp=pack.SpherePack()
sp.makeCloud(mn,mx,-1,0.,num_spheres,False, 0.95,seed=1) #"seed" make the 
"random" generation always the same
O.bodies.append([sphere(center,rad,material='spheres') for center,rad in sp])


###   DEFINING ENGINES   ###


triax=TriaxialStressController(
## TriaxialStressController will be used to control stress and strain. 
It controls particles size and plates positions.
## this control of boundary conditions was used for instance in 
http://dx.doi.org/10.1016/j.ijengsci.2008.07.002
maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth)
finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth)
thickness = 0,
## switch stress/strain control using a bitmask. What is a bitmask, 
huh?!
## Say x=1 if stess is controlled on x, else x=0. Same for for y and z, 
which are 1 or 0.
## Then an integer uniquely defining the combination of all these tests 
is: mask = x*1 + y*2 + z*4
## to put it differently, the mask is the integer whose binary 
representation is xyz, i.e.
## "100" (1) means "x", "110" (3) means "x and y", "111" (7) means "x 
and y and z", 

Re: [Yade-users] [Question #625502]: How to get the minimum porosity of packing using randomDensePack

2017-04-23 Thread Huihuang Xia
Question #625502 on Yade changed:
https://answers.launchpad.net/yade/+question/625502

Huihuang Xia posted a new comment:
Thanks Robert,

https://answers.launchpad.net/yade/+question/246971, gives a good
example. Thus, I want to do a tri-axial compression on a cubic sample
and filter a stone particle shape using pack.filterSpherePack from this
sample. Is this method correct?

According to
https://github.com/yade/trunk/blob/e4e757f2e98a620e3177b7a36a1d10f69f6a6a28/examples
/triax-tutorial/script-session1.py, here is  a code was used to filter a
sphere from a cubic sample, but this code failed, because it got the
following error:

Desktop/sphere$ yade sphere.py
Welcome to Yade 2016.06a 
TCP python prompt on localhost:9000, auth cookie `ecssdy'
XMLRPC info provider on http://localhost:21000
Running script sphere.py
[[ ^L clears screen, ^U kills line. F12 controller, F11 3d view (use h-key for 
showing help), F10 both, F9 generator, F8 plot. ]]

Yade [1]: 
---
ValueErrorTraceback (most recent call last)
/home/huihuang/YADE/install/lib/x86_64-linux-gnu/yade-2016.06a/py/yade/__init__.pyc
 in refreshEvent(self)
190 def zxySlot(self): self.setViewAxes((0,-1,0),(1,0,0))
191 def refreshEvent(self):
--> 192 self.refreshValues()
193 self.activateControls()
194 def deactivateControls(self):

/home/huihuang/YADE/install/lib/x86_64-linux-gnu/yade-2016.06a/py/yade/__init__.pyc
 in refreshValues(self)
263 self.iterLabel.setText('#%ld / %ld, %.1f/s 
%s'%(O.iter,stopAtIter,self.iterPerSec,subStepInfo))
264 if t!=float('inf'):
--> 265 s=int(t); ms=int(t*1000)%1000; 
us=int(t*100)%1000; ns=int(t*10)%1000
266 
self.virtTimeLabel.setText(u'%03ds%03dm%03dμ%03dn'%(s,ms,us,ns))
267 else: self.virtTimeLabel.setText(u'[ ∞ ] ?!')

ValueError: cannot convert float NaN to integer


Here is my code:

from yade import pack
from yade import export


###   DEFINING VARIABLES AND MATERIALS   ###


# The following 5 lines will be used later for batch execution
nRead=readParamsFromTable(
num_spheres=3000,# number of spheres
compFricDegree = 30, # contact friction during the confining phase
key='_triax_base_', # put you simulation's name here
unknownOk=True
)
from yade.params import table

num_spheres=table.num_spheres# number of spheres
key=table.key
targetPorosity = 0.43 #the porosity we want for the packing
compFricDegree = table.compFricDegree # initial contact friction during the 
confining phase (will be decreased during the REFD compaction process)
finalFricDegree = 30 # contact friction during the deviatoric loading
rate=-0.02 # loading rate (strain rate)
damp=0.2 # damping coefficient
stabilityThreshold=0.01 # we test unbalancedForce against this value in 
different loops (see below)
young=5e6 # contact stiffness
mn,mx=Vector3(0,0,0),Vector3(1,1,1) # corners of the initial packing


## create materials for spheres and plates
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))

## create walls around the packing
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

## use a SpherePack object to generate a random loose particles packing
global sp
sp=pack.SpherePack()
sp.makeCloud(mn,mx,-1,0.,num_spheres,False, 0.95,seed=1) #"seed" make the 
"random" generation always the same
O.bodies.append([sphere(center,rad,material='spheres') for center,rad in sp])


###   DEFINING ENGINES   ###


triax=TriaxialStressController(
## TriaxialStressController will be used to control stress and strain. 
It controls particles size and plates positions.
## this control of boundary conditions was used for instance in 
http://dx.doi.org/10.1016/j.ijengsci.2008.07.002
maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth)
finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth)
thickness = 0,
## switch stress/strain control using a bitmask. What is a bitmask, 
huh?!
## Say x=1 if stess is controlled on x, else x=0. Same for for y and z, 
which are 1 or 0.
## Then an integer uniquely defining the combination of all these tests 
is: mask = x*1 + y*2 + z*4
## to put it differently, the mask is the integer whose binary 
representation is xyz, i.e.
## "100" (1) means "x", "110" (3) means "x and y", "111" (7) means "x 
and y and z", etc.
stressMask = 7,