Re: [Yade-users] [Question #625502]: How to get the minimum porosity of packing using randomDensePack
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
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
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
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
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
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
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
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,