Re: [Yade-users] [Question #707913]: Stress remains 0 during the simulation of a direct shear test
Question #707913 on Yade changed: https://answers.launchpad.net/yade/+question/707913 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, I noticed you already asked this question in Gitlab (which is now recommended). So, please note that I posted the full answer only there. https://gitlab.com/yade-dev/answers/-/issues/3876 Cheers, Karol -- 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 #707888]: Why do particles in the concrete cube compression test disperse directly?
Question #707888 on Yade changed: https://answers.launchpad.net/yade/+question/707888 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Antonia, 1) Macro behavior is a result of microparameters, particle size, and shape, constitutive laws, etc. For example, rock may have a stiffness of 70 GPa, while a sand sample has a stiffness of around 150 MPa. Calibration is the best solution [1]. 2) Timestep is overestimated for this model, although I am not sure why. Please change dtSafety to 0.1 Cheers, Karol [1] https://yade-dem.org/doc/formulation.html?highlight=calibration#normal-stiffness -- 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 #707885]: Create arbitrary ellipsoid using level set
Question #707885 on Yade changed: https://answers.launchpad.net/yade/+question/707885 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, Quaternion is composed of axis direction (three components) followed by angle of rotation: ### lsb1 = levelSetBody( 'superellipsoid', center=(0, 0, 0), extents=(0.05, 0.05, 0.15), epsilons=(1.1, 0.2), spacing=0.01, nSurfNodes=2502, nodesPath=1, dynamic=False, orientation=Quaternion((1, 0, 0), 0), ) lsb2 = levelSetBody( 'superellipsoid', center=(0, 0, 0.25), extents=(0.05, 0.05, 0.15), epsilons=(1.1, 0.2), spacing=0.01, nSurfNodes=2502, nodesPath=1, dynamic=False, orientation=Quaternion((1, 0, 0), pi/2),# rotated 90 degrees around x-axis ) lsb3 = levelSetBody( 'superellipsoid', center=(0, 0, 0.5), extents=(0.05, 0.05, 0.15), epsilons=(1.1, 0.2), spacing=0.01, nSurfNodes=2502, nodesPath=1, dynamic=False, orientation=Quaternion((0, 1, 0), pi/2),# rotated 90 degrees around y-axis ) O.bodies.append([lsb1,lsb2,lsb3]) Cheers, Karol -- 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 #707875]: Servo control of cylindrical triaxial test
Question #707875 on Yade changed: https://answers.launchpad.net/yade/+question/707875 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Ruidong, In this loop, you iterated over the wall but denoted elements 'f', while in the loop you referred to 'b', so you did not prescribe velocity to wall facets. Should be: ### for b in wall: x,y,z = O.bodies[b].state.pos dist = math.sqrt(x*x+y*y) n = Vector3(x/dist,y/dist,0) O.bodies[b].state.vel = rvel*n ### Cheers, Karol PS. Please note, that **Yade Answers has now migrated to gitlab, please direct all your questions to https://gitlab.com/yade- dev/answers/-/issues, where we are waiting to help you** -- 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 #707788]: Porosity in rotated measuring area
Question #707788 on Yade changed: https://answers.launchpad.net/yade/+question/707788 Status: Open => Needs information Karol Brzezinski requested more information: Hi Paul, Do you need to measure the porosity on the fly (required to trigger some actions in the simulation)? If it can be done in postprocessing, the simplest way would be using axis aligned porosity function and rotating the sample. Cheers, Karol -- 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 #707167]: ModuleNotFoundError: No module named 'pandas'
Question #707167 on Yade changed: https://answers.launchpad.net/yade/+question/707167 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Kyle, Just install pandas before running the script: sudo apt install python3-pandas Cheers Karol -- 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 #707090]: How to generate a cylinder?
Question #707090 on Yade changed: https://answers.launchpad.net/yade/+question/707090 Karol Brzezinski posted a new comment: Hi William, You can clump the facets as well. Cheers, Karol -- 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 #707088]: Dynamic Compaction Can't Repeat
Question #707088 on Yade changed: https://answers.launchpad.net/yade/+question/707088 Status: Open => Needs information Karol Brzezinski requested more information: Hi, Honestly, I don't understand the question. Could you please rephrase it? Secondly, I thought that running the code would be helpful, but I the packing is stored in the external file 'packing8.txt'. Please try to simplify your example (MWE[1]) Cheers, Karol [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
Re: [Yade-users] [Question #707090]: How to generate a cylinder?
Question #707090 on Yade changed: https://answers.launchpad.net/yade/+question/707090 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi William, Maybe try facetCylinder [1] (a prism made of facets that approximates a cylinder): ### import geom O.bodies.append(geom.facetCylinder(center = (0,0,0), radius=1, height=2, orientation=Quaternion((1, 0, 0), 0), segmentsNumber=20)) ### Cheers, Karol [1] https://yade- dem.org/doc/yade.geom.html?highlight=facetcylinder#yade.geom.facetCylinder -- 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 #706976]: Reconstruct particles from ct images
Question #706976 on Yade changed: https://answers.launchpad.net/yade/+question/706976 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Kyle, If you use ymport.text() function, you don't have to append bodies (it is included in the function). If you want to differentiate between clump properties, you can do it in two ways (at least): 1) put each clump in a separate file and load it with different keyword arguments passed to ymport.text() function. 2) put all the clumps in one file, and load them at once. Next, iterate over bodies in the simulation and apply required properties. Please see example of using the second approach below: ### input file with clumps "clumps.txt" 0.068037 0.02416 0.0017637 0.0011423 1 0.068615 0.022601 0.0014278 0.00077244 1 0.069542 0.023528 0.0017906 0.00071539 1 0.066801 0.025141 0.0019788 0.0006786 1 0.049731 0.03499 0.0017112 0.00070436 10 0.048747 0.034309 0.0013637 0.00063928 10 0.047719 0.034628 0.0014651 0.00056027 10 0.047299 0.035323 0.0020008 0.00052311 10 # Yade script from yade import ymport spheres = ymport.textClumps('clumps.txt') currentClumpId = O.bodies[0].clumpId color = randomColor() for b in O.bodies: if b.clumpId != currentClumpId:#change color each time clumpId changes currentClumpId = b.clumpId color = randomColor() if isinstance(b.shape,Sphere):#colorize spheres b.shape.color = color ### Cheers, Karol -- 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 #706976]: Reconstruct particles from ct images
Question #706976 on Yade changed: https://answers.launchpad.net/yade/+question/706976 Status: Open => Answered Karol Brzezinski proposed the following answer: I can also recommend Matlab code for clumo generation developed by Angelidakis et al. It is described in [3]. [3] Angelidakis et al. 2021 CLUMP: A Code Library to generate Universal Multi-sphere Particles, Softwarex -- 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 #706976]: Reconstruct particles from ct images
Question #706976 on Yade changed: https://answers.launchpad.net/yade/+question/706976 Status: Open => Needs information Karol Brzezinski requested more information: Are the particles somehow bonded (I mean grains in the sample)? If not, I think that particles rearrange and change the height of the sample. If you want to adjust the size of the particles, you can expand spheres in the packing a little bit after generation. Cheers, Karol -- 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 #706976]: Reconstruct particles from ct images
Question #706976 on Yade changed: https://answers.launchpad.net/yade/+question/706976 Karol Brzezinski posted a new comment: Hi Kyle, I think that you need to be much more specific. For example, is each of the 800 gts files modelling a single particle? Do you try to reproduce the exact shape of the sample (particles in their corresponding locations from the very beginning)? What code do you use to generate clumps? Can you prepare the MVE[1]? If not possible, please describe your workflow. What do you mean that the sample shrinks in the height direction? Smaller than expected after deposition, or did something actually shrink? Best wishes, Karol [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
Re: [Yade-users] [Question #706883]: The particle deposition rate is too slow
Question #706883 on Yade changed: https://answers.launchpad.net/yade/+question/706883 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, I checked that decreasing young parameter of wall to WYoung = 500e7, increases timestep (hence the speed of the simulation) ten times. So it is a significant difference in my opinion. If blenders are problematic, I would try to model it differently (e.g. cylinders/ facet cylinders). Cheers, Karol -- 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 #706883]: The particle deposition rate is too slow
Question #706883 on Yade changed: https://answers.launchpad.net/yade/+question/706883 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi William, First of all I need to tell you how to slow down your simulation. In the last line, you should change the timestep to be smaller than PWaveTimeStep() (e.g. 0.8**PWaveTimeStep()). Otherwise, the simulation will become unstable after the particles start to touch each other. Secondly, you can decrease the young modulus of walls. Usually, a modulus 10-20 times bigger than for spheres is enough to prevent particle "leakage". If applicable, you can try to scale up the particles. BTW do you take advantage of multithread computing (by simply running the simulation with -j parameter)? Cheers, Karol -- 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 #706854]: Code availability of Yuan2016, Sweijen2016
Question #706854 on Yade changed: https://answers.launchpad.net/yade/+question/706854 Karol Brzezinski proposed the following answer: If there is only a single sphere involved, I don't see the point in coupling anything. So, yes - it is just using the swelling model only. Of course, I can imagine a single particle that is modeled by multiple bonded spheres. And in such a case it could be interesting to use a coupled simulation to 'observe' water infiltrating the particle, while the sub-particles start swelling after contacting water. (it is just conceptual, don't ask me how to do this). First, you need to state your problem clearly. Regarding your original question, I have found out that this was discussed six years ago and the answer was negative. I suspect that the authors of the article didn't have enough spare time to polish the code and upload it to the repository. Consider asking directly the corresponding author of the paper. Cheers, Karol [2] https://answers.launchpad.net/yade/+question/403166 -- 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 #706854]: Code availability of Yuan2016, Sweijen2016
Question #706854 on Yade changed: https://answers.launchpad.net/yade/+question/706854 Karol Brzezinski requested more information: What kind of coupling do you mean? Do you have a particular theory/equation that you want to apply? Best wishes, Karol -- 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 #706854]: Code availability of Yuan2016, Sweijen2016
Question #706854 on Yade changed: https://answers.launchpad.net/yade/+question/706854 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Sebastian, For a single particle, you can change its radius. You can write a Python function and run it in PyRunner (an additional engine for executing Python code periodically). A similar problem is discussed in those topics: https://answers.launchpad.net/yade/+question/679196 https://answers.launchpad.net/yade/+question/697479 Cheers, Karol -- 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 #706854]: Code availability of Yuan2016, Sweijen2016
Question #706854 on Yade changed: https://answers.launchpad.net/yade/+question/706854 Karol Brzezinski posted a new comment: Hello Sebastian, I don't have a video and I don't think that there is one. But you could try to run the example and see what it looks like. Cheers, Karol -- 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 #706854]: Code availability of Yuan2016, Sweijen2016
Question #706854 on Yade changed: https://answers.launchpad.net/yade/+question/706854 Karol Brzezinski posted a new comment: Hi Sebastian, Hehe you looked in the examples? I checked the examples in the main repository, and this one seem to be the closest to your problem [1]. Cheers, Karol [1] https://gitlab.com/yade- dev/trunk/-/blob/master/examples/FluidCouplingPFV/drainage-2PFV- Yuan_and_Chareyre_2017.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 #706766]: How to get Micro-strain field from a 2D simulation in YADE
Question #706766 on Yade changed: https://answers.launchpad.net/yade/+question/706766 Karol Brzezinski proposed the following answer: Hi Leonard, Try this (please note that I am using python 3, so the call pf print function is modified): ## ### 2D MWE # from __future__ import division from yade import pack, plot, export, ymport num_spheres=1000 rate=-0.01 damp=0.6 stabilityThreshold=0.001 young=5e6 confinement=6.7e3 mn,mx=Vector3(0,0,0.02),Vector3(1,2,0.02) O.materials.append(FrictMat(young=young, poisson=0.5, frictionAngle=radians(30), density=2600, label='spheres')) O.materials.append(FrictMat(young=young, poisson=0.5, frictionAngle=0, density=0, label='walls')) walls=aabbWalls([Vector3(0,0,0),Vector3(1,2,0.04)],thickness=0,material='walls') wallIds=O.bodies.append(walls) sp=pack.SpherePack() sp.makeCloud(mn,mx,-1,0.,num_spheres,False, 0.75,seed=1) O.bodies.append([sphere(center,rad,material='spheres') for center,rad in sp]) Gl1_Sphere.quality=3 for b in O.bodies: if isinstance(b.shape,Sphere): b.state.blockedDOFs='zXY' b.shape.color=[1,1,1] triax=TriaxialStressController( thickness = 0, stressMask = 7, internalCompaction=False, ) newton=NewtonIntegrator(damping=damp) O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Box_Aabb()]), InteractionLoop([Ig2_Sphere_Sphere_ScGeom(), Ig2_Box_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()]), GlobalStiffnessTimeStepper(active=1, timeStepUpdateInterval=100, timestepSafetyCoefficient=0.8), triax, newton ] triax.goal1=triax.goal2=triax.goal3=-confinement while 1: O.run(1000, True) unb=unbalancedForce() print('unbF:',unb,' meanStress: ',-triax.meanStress,'top:',-triax.stress(triax.wall_top_id)[1],'left:',-triax.stress(triax.wall_left_id)[0],'front:',-triax.stress(triax.wall_front_id)[2]) if unbhttps://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 #706766]: How to get Micro-strain field from a 2D simulation in YADE
Question #706766 on Yade changed: https://answers.launchpad.net/yade/+question/706766 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, The algorithm in Yade builds a 3D tesselation. It is hard for the algorithm to build it if all the particles lie on the same plane. Maybe you could add some 'thickness' to your simulation by creating three identical sets of particles on three parallel planes. Of course, it is not efficient to do the simulation this way. But you can store the information about your particles ("one layer") in separate files during simulation [1]. After this, you could prepare another script just for loading the particles into the simulation at certain positions. However, in the second script, you can load the previously stored 'layer' three times (two times with shifted position, using the shift option [2]). That way, you will have some "thickness" of the sample. Cheers, Karol [1] https://yade-dem.org/doc/yade.export.html?highlight=export#yade.export.text [2] https://yade-dem.org/doc/yade.ymport.html?highlight=ymport#module-yade.ymport -- 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 #706768]: Difference between CundallStrack and HertzMindlin
Question #706768 on Yade changed: https://answers.launchpad.net/yade/+question/706768 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Senel, In the Cundall-Strack model, the contact stiffness is linear (does not depend on the contact force or particles' overlap). On the other hand, the Hertz-Mindlin law is exponential [1], and stiffness increases with load. In other words - those are different models, so they give different results. BTW: Your void ratio definition is very strange. If you achieved Vr = 1 in the experiment (by your definition Vr=volume of particles/volume of container), you actually had zero porosity. It doesn't look like this in the simulation, because the particles highly overlap, hence some of the particle volume is counted twice. Best wishes, Karol [1] https://en.wikipedia.org/wiki/Contact_mechanics -- 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 #706766]: How to get Micro-strain field from a 2D simulation in YADE
Question #706766 on Yade changed: https://answers.launchpad.net/yade/+question/706766 Status: Open => Answered Karol Brzezinski proposed the following answer: Hello Leonard, I think that the main problem is 2D formulation. I would try to prepare thicker samples (artificially replicate your 2D "layers"). Cheers, Karol -- 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 #706652]: Running code with 4 threads
Question #706652 on Yade changed: https://answers.launchpad.net/yade/+question/706652 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Carine, I could not run your example, because I don't have 'PotentialParticleVTKRecorder', but I am pretty sure that you don't have to modify the code. Just run the script with '-j' parameter. For example yade -j4 yourscript.py Cheers, Karol -- 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 #706653]: Modifying the size of potential particles
Question #706653 on Yade changed: https://answers.launchpad.net/yade/+question/706653 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Carine, I could not run your example, because I don't have 'PotentialParticleVTKRecorder', but I am pretty sure that you don't have to modify the code. Just run the script with '-j' parameter. For example yade -j4 yourscript.py Cheers, Karol -- 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 #706654]: Position of particles become NaN after using Break Function
Question #706654 on Yade changed: https://answers.launchpad.net/yade/+question/706654 Status: Open => Answered Karol Brzezinski proposed the following answer: Hello Ketian, As you noticed the real problem is that NaN interactions are produced during your simulation. The breakage function needs to know the forces acting on the particle in order to evaluate its strength. It is not related to the particle breakage. If you want to test it, just remove 'cbcontroller' from engines and comment out the mainlogic() command. Then just run the simulation. You will get a similar error, because of NaN interactions. It is because TriaxialController also needs to get proper (not the NaN) interactions to compute stress. Most likely it is related to the rolling friction because I could proceed with the whole simulation after turning off the 'IncludeMoment'. I am not sure what is wrong with the rolling friction in this simulation, but it is another issue (maybe you could try with nonzero eta [1]). Best wishes, Karol PS. I noticed that you have 10% of clumps in simulation, and you evaluate only the clumps so the spheres cannot break. Consider evaluating both spheres and clumps as in this example [2]. [1] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_MindlinPhys.eta [2] https://gitlab.com/yade-dev/trunk/blob/master/examples/clumps-breakage/oedometric.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 #706626]: attach force to a certain point of the box
Question #706626 on Yade changed: https://answers.launchpad.net/yade/+question/706626 Status: Open => Needs information Karol Brzezinski requested more information: Hi Ramin, Could you elaborate a little bit more on what you want to achieve in your simulation? Right now I have some remarks: - I think you could replace ForceEngine with just prescribing a permanent force to the box [1] - You can add torque to the body so it pretends that the force is shifted. Initially, its value should be Force * boxHeight/2. But the torque needs to be updated when the body rotates (the distance between force and body center changes). Cheers, Karol https://yade-dem.org/doc/yade.wrapper.html?highlight=permf#yade.wrapper.ForceContainer.setPermF -- 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 #706573]: Troble with porosity calculation
Question #706573 on Yade changed: https://answers.launchpad.net/yade/+question/706573 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Huanm it should be top = abs(plate.state.pos[2] + height/2) Cheers, Karol -- 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 #706553]: About simulating constant volume condition in a triaxial test
Question #706553 on Yade changed: https://answers.launchpad.net/yade/+question/706553 Karol Brzezinski posted a new comment: After second thought I think that I misunderstood the problem. Because you are actually checking if the obtained strain is equall to the value expected from the prescribed rate. Maybe strainDamping is [1] is the source of the error... I cannot check right now, but it looks like a good clue, since affects the change in strain rate. Cheers, Karol [1] https://yade- dem.org/doc/yade.wrapper.html?highlight=triaxialstresscontroller#yade.wrapper.TriaxialStressController.strainDamping -- 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 #706553]: About simulating constant volume condition in a triaxial test
Question #706553 on Yade changed: https://answers.launchpad.net/yade/+question/706553 Karol Brzezinski proposed the following answer: After some 'gymnastics', I would propose: triax.goal2=-(2*rate+rate**2)/(1+2*rate+rate**2) triax.goal1=rate triax.goal3=rate Cheers, Karol -- 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 #706553]: About simulating constant volume condition in a triaxial test
Question #706553 on Yade changed: https://answers.launchpad.net/yade/+question/706553 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, triax.goal2=rate triax.goal1=-0.5*rate triax.goal3=-0.5*rate Comes from the fact that volumetric strain is equal to e11+e22+e33 for small deformations. One assumes e22=e33 and wants e11+e22+e33 = 0. So 2*e22 = -e11, hence e22=e33=0.5*e11. The error comes from the inaccuracy of the formula for large strains (apparently, your strains are large if the error is not acceptable). You can propose your own triax.goals by taking into account that the actual volumetric strain is (1+e11)*(1+e22)*(1+e33). Cheers, Karol -- 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 #706540]: Trouble in generating sphere packing
Question #706540 on Yade changed: https://answers.launchpad.net/yade/+question/706540 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Huan, For each radius, I prescribed some 'spread', so the radii of particles fall between given sieve sizes (rRelFuzz1 = (0.019-0.0125)/4/rMean1). If you want to have all the particles in a given size to have equal radius, set rRelFuzz = 0 everywhere. In such a case, your colouring method should work. As Jan said, please open a new topic for the new question. Cheers, Karol -- 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 #706533]: Visualise forcechain in paraview
Question #706533 on Yade changed: https://answers.launchpad.net/yade/+question/706533 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, OK, I get it. You need to apply the 'tube' filter to the "CellDatatoPointData1', not directly to the 'example.vtk'. Cheers, Karol -- 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 #706533]: Visualise forcechain in paraview
Question #706533 on Yade changed: https://answers.launchpad.net/yade/+question/706533 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, Exactly, it is the list that you pointed to in [3]. Your example file [2] works well on my computer. Maybe there is something wrong with the previous filter... so you don't see the proper data. Generally, external links are not recommended... but we are discussing some already. So, could you save and upload the Paraview state file as well? Cheers, Karol -- 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 #706533]: Visualise forcechain in paraview
Question #706533 on Yade changed: https://answers.launchpad.net/yade/+question/706533 Status: Open => Answered Karol Brzezinski proposed the following answer: I mean that you should have selected the 'forceN' from the drop-down list at the top of the 'tube' filter settings (it is not selected on the screen that you attached). This point is not mentioned in the instructions because Paraview usually does this part automatically (I tested it on versions 5.7.0 and 5.10.1). Cheers, Karol -- 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 #706540]: Trouble in generating sphere packing
Question #706540 on Yade changed: https://answers.launchpad.net/yade/+question/706540 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Huan, The good news is that you can cal makeCloud() multiple times with different radii and new spheres are added to the SpherePack. Cheers, Karol import random import math from yade import geom, pack, utils, plot, ymport # Define material properties youngModulus = 1e7 poissonRatio = 0.25 density = 2000 # Create material material = O.materials.append(FrictMat(young=youngModulus, poisson=poissonRatio, density=density)) # Define cylinder with funnel parameters center = (0, 0, 0) diameter = 0.102 height = 0.064 # 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) # assign material to each body in the cylinder for body in cylinder: body.bodyMat = material # add cylinder to simulation O.bodies.append(cylinder) # Define cylinder with funnel parameters center1 = (0,0,height/2) dBunker = 0.2 dOutput = 0.102 hBunker = 0 hOutput = 0.08 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) # assign material to each body in the funnel for body in funnel: body.bodyMat = material # add funnel to simulation O.bodies.append(funnel) ## new part rMean1 = (0.0125+0.019)/4 rRelFuzz1 = (0.019-0.0125)/4/rMean1 num1 = 28 # (other sizes) rMean4 = (0.00475+0.00236)/4 rRelFuzz4 = (0.00475-0.00236)/4/rMean4 num4 = 18997 sp = pack.SpherePack() ## just call makeCloud() multiple times before sending to simulation sp.makeCloud((-dBunker/3,-dBunker/3,2*height),(dBunker/3,dBunker/3,10*height), rMean = rMean1, rRelFuzz = rRelFuzz1, num = num1) #(...) sp.makeCloud((-dBunker/3,-dBunker/3,2*height),(dBunker/3,dBunker/3,10*height), rMean = rMean4, rRelFuzz = rRelFuzz4, num = num4) sp.toSimulation() -- 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 #706529]: Seeking any guidance on beginning using yade
Question #706529 on Yade changed: https://answers.launchpad.net/yade/+question/706529 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Hongwei, I guess that Yade should work more stable on LST Ubuntu versions (e.g. 22.04), since it is tested for those versions when a new feature is merged in the master branch. Cheers, Karol -- 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 #706533]: Visualise forcechain in paraview
Question #706533 on Yade changed: https://answers.launchpad.net/yade/+question/706533 Karol Brzezinski posted a new comment: I noticed that instructions don't mention this part, but it is usually selected automatically (e.g., I didn't have to do this in my Paraview). Karol -- 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 #706533]: Visualise forcechain in paraview
Question #706533 on Yade changed: https://answers.launchpad.net/yade/+question/706533 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, Please select 'forceN' from 'Scalar' list at the top of the tubÄ™ filter settings. Cheers, Karol -- 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 #706533]: Visualise forcechain in paraview
Question #706533 on Yade changed: https://answers.launchpad.net/yade/+question/706533 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, If you follow the instructions it should be OK. Try to play with Radous and Radius Factor parameters. Cheers, Karol -- 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 #706494]: Spherical packing of binary mixtures in a cylindrical container
Question #706494 on Yade changed: https://answers.launchpad.net/yade/+question/706494 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Soheil, As you can find in the documentation [1] "distributeMass (bool) – if True, given distribution will be used to distribute sphere’s mass rather than radius of them." So if you set distributeMass=True , you obtain PSD based on the particles' weight. The makeCloud() can only create loose packing inside a box shape. So you need to create a container much higher than your expected sample. Then generate a cloud inside this container and allow the particles to fall. Since you are beginning with Yade, I recommend reading first chapters of documentation (Introduction, Tutorial, DEM formulation, User's Manual), at least the Tutorial [3]. You can find there most of the answers (e.e., gravity deposition example [4]). Cheers, Karol [3] https://yade-dem.org/doc/tutorial.html [4] https://yade-dem.org/doc/tutorial-examples.html -- 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 #706494]: Spherical packing of binary mixtures in a cylindrical container
Question #706494 on Yade changed: https://answers.launchpad.net/yade/+question/706494 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Soheil, I recommend using the makeCloud() [1] method which allows you to create packing with a prescribed size distribution (see the example [2[). Please note to set distributeMass=True in your case. This method creates loose packing, so you need to create 'higher' packing, and allow the particles to fall under gravity. Cheers, Karol [1] https://yade-dem.org/doc/yade.pack.html?highlight=psd#yade._packSpheres.SpherePack.makeCloud [2] https://answers.launchpad.net/yade/+question/681691 -- 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 #706506]: How to output volumetric strain (micro strain field) in vtk file
Question #706506 on Yade changed: https://answers.launchpad.net/yade/+question/706506 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, MWE would be appreciated [1]. Using the' calculator filter', you can always compute anything in ParaView from matrix components. Load the VTK file, and then use the calculator filter. You can type the formula: "Strain_matrix_0"+"Strain_matrix_4"+"Strain_matrix_8" or select other components using the "Scalar" button. Next, you can visualize the 'Result'. The MWE that I used to generate the file is as follows: centers = [] for x in range(2): for y in range(2): for z in range(2): centers.append((x,y,z)) O.bodies.append([ sphere(center=center,radius=1,) for center in centers ]) sp = SpherePack() sp.fromSimulation() TW=TesselationWrapper() TW.triangulate() TW.computeVolumes() TW.setState(0) shiftBodies([4,5,6,7],(1,0,0)) # move spheres without engines (I am just being lazy) shiftBodies([2,3,6,7],(0,1,0)) shiftBodies([1,3,5,7],(0,0,1)) TW.setState(1) TW.defToVtk("strain.vtk") ### Cheers, Karol [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
Re: [Yade-users] [Question #706106]: Load the data to plot
Question #706106 on Yade changed: https://answers.launchpad.net/yade/+question/706106 Status: Needs information => Answered Karol Brzezinski proposed the following answer: Hi Przemek, MVE always makes it easier for everyone[1]. Do you mean something like this? # MVE from yade import plot import matplotlib.pyplot as plt s =sphere((0,0,0),0.001) O.bodies.append(s) s.state.vel = (0,0,1) O.engines += [PyRunner(command = "plot.addData(t = O.time, z = s.state.displ()[2])", virtPeriod = 10)] O.dt = 1e-8 plot.plots = {'t':'z'} plot.plot() ### adding own data ax = plt.gcf().gca()# get current 'plot' by using standard Python library ax.plot((10,20,30,40,50,60,70),(s10,20,30,40,50,60,70),'o', linewidth = 3)# add own data O.run(int(1e7)) Cheers, Karol [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
Re: [Yade-users] [Question #705760]: How to get the runtime or CPU time?
Question #705760 on Yade changed: https://answers.launchpad.net/yade/+question/705760 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Danny, It may be a little bit of a workaround, but every periodic engine (e.g. PyRunner) stores the information about the time of the last run. You could use it to track the time of the simulation. For example, if the last engine in the list is PyRunner, you can check: O.engines[-1].realLast Cheers, Karol -- 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 #705642]: Workstation
Question #705642 on Yade changed: https://answers.launchpad.net/yade/+question/705642 Karol Brzezinski posted a new comment: Hi, Consider cloud computing if you need a machine for running some scripts once. There is a tutorial on how to use Yade with Amazon EC2 [1]. Cheers, Karol [1] https://yade-dem.org/doc/amazonEC2.html?highlight=amazon -- 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 #705075]: replace by clump
Question #705075 on Yade changed: https://answers.launchpad.net/yade/+question/705075 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, The size of the clump is adjusted to balance the mass (~volume for the same material) of the replaced sphere. Every figure with the same mass would stick out of the sphere. You have a relatively flat shape, hence its dimensions need to be much larger than the sphere. For sphere with diameter D: Vs = pi*D^3/2 For a prism (more or less similar to your clump, with edges equal to A, 4A/9, and A/9: Vp = 4*A^3/81 So if Vp=Va A/D = (81*pi/8)^(1/3) So the clumps should be more than three times longer than spheres. Cheers, Karol -- 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 #705016]: Can we generate randomly particles shape in yade eg.rocks?
Question #705016 on Yade changed: https://answers.launchpad.net/yade/+question/705016 Status: Open => Answered Karol Brzezinski proposed the following answer: Hello, I think that polyhedra_utils.fillBox()[1] could be helpful. It generates random polyhedral particles according to the algorithm described in [2]. Cheers, Karol [1] https://yade-dem.org/doc/yade.polyhedra_utils.html?highlight=polyhedra%20fill#yade.polyhedra_utils.fillBox [2] Eliáš, J. (2014). Simulation of railway ballast using crushable polyhedral particles. Powder Technology, 264, 458-465. -- 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 #705007]: contact model for overlappped part of a clump
Question #705007 on Yade changed: https://answers.launchpad.net/yade/+question/705007 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Guo, Yade is really well-documented. I recommend reading the Guided Tour, DEM Formulation, and User's Manual. There is a section about clumps as well [1]. You can find there that "In Yade (class Clump), clump members behave as stand-alone particles during simulation for purposes of collision detection and contact resolution, except that they have no contacts created among themselves within one clump. " Hence, there are no interactions between the clump members. Clump members' arrangement is rigid. Cheers, Karol [1] https://yade-dem.org/doc/formulation.html#clumps-rigid-aggregates -- 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 #705005]: problem of erasing particle
Question #705005 on Yade changed: https://answers.launchpad.net/yade/+question/705005 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Guo, You are removing particles while the simulation is still in process. You need to make the script wait, units the simulation pauses: O.run(20, wait=True) Cheers, Karol -- 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 #704485]: bodies which are controlled by "setPermF" does not move. Is it right?
Question #704485 on Yade changed: https://answers.launchpad.net/yade/+question/704485 Karol Brzezinski posted a new comment: Hi, Please open separate threads for new questions [1]. Also, remember about MVE (especially for the sphere-facet interaction question because there are no spheres in your first MVE ). Regarding your second question - it depends. Try to describe your problem in more detail when you open a new topic. Cheers, Karol [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
Re: [Yade-users] [Question #704551]: How to make VTK file of relative particle rotation angle from state1 to state2
Question #704551 on Yade changed: https://answers.launchpad.net/yade/+question/704551 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, I think that you can use 'rot()' method of body state or Jan's proposal in VTKExporter. MVE from yade import export exporter = export.VTKExporter('tmp-') s = O.bodies.append(sphere((0,0,0),1)) #set current state as reference setRefSe3() # set angular velocity O.bodies[s].state.angVel = (0,0,1) # rotate O.run(1000,wait = True) # export exporter.exportSpheres(ids='all',what=dict(rotation_method_1 = 'b.state.rot()',rotation_method_2 = '(b.state.refOri.conjugate()*b.state.ori).toRotationVector() ')) ## Cheers, Karol -- 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 #704485]: bodies which are controlled by "setPermF" does not move. Is it right?
Question #704485 on Yade changed: https://answers.launchpad.net/yade/+question/704485 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Jinsun, The major issue is not the setPermF function but the fact that facets are massless and not dynamic bodies by default. You can move such bodies by applying velocity to them. If you want to move them with force, they should have mass and be freed. You can achieve it by the following (example) code placed right before O.run(): for i in [-2,-1]: b = O.bodies[i] b.state.mass = 1# set 1 kg of mass to the facet b.state.blockedDOFs = 'xyXYZ'# block all the degrees of freedom except for z (by default everything is blocked, even z) Please note, that the movement of the facets will also be affected by gravity. Also, it is strange that there is no particles in your simulation yet ;) Cheers, Karol -- 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 #704389]: Problem with OpenMP
Question #704389 on Yade changed: https://answers.launchpad.net/yade/+question/704389 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Roxana, Please note that this was discussed in this forum several times, and you can find more information on other topics (e.g., [1]). Very briefly, I would summarise it in two points: - First, parallelization efficiency depends on the simulation. If one person can paint the room in eight hours, it doesn't mean that 48 people would paint the room in ten minutes :) - Secondly, the source code needs to be prepared for OpenMP parallelization. In Yade, it is usually realized by "#pragma omp parallel for" directive [2]. It tells the program where computations can be split in several threads without causing problems. It is usually used for long loops of independent operations (e.g. newtonIntegrator). So, if your engine does not have such a directive inside, your simulation will use one core most of the time. Best wishes Karol [1] https://answers.launchpad.net/yade/+question/699458 [2] https://yade-dem.org/doc/prog.html#parallel-execution -- 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 #704293]: How to use TW.triangulate() to calculate strain between two states by importing samples
Question #704293 on Yade changed: https://answers.launchpad.net/yade/+question/704293 Karol Brzezinski posted a new comment: Sorry, but I am 'computerless' right now, and I cannot check it to confirm. Can you please take the above example, comment out the triangulation part and see if you get the same results? Cheers, Karol -- 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 #704293]: How to use TW.triangulate() to calculate strain between two states by importing samples
Question #704293 on Yade changed: https://answers.launchpad.net/yade/+question/704293 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, Regarding your questions: 1. Yes - the order of spheres in files must be identical. 2. You still need to triangulate and compute volumes. Sorry, if it was not clear previously linked topic. Please see the example provided here [2]. Two approaches are compared on one example, but the code should be self-explanatory. Cheers, Karol [2] https://answers.launchpad.net/yade/+question/696150 -- 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 #704293]: How to use TW.triangulate() to calculate strain between two states by importing samples
Question #704293 on Yade changed: https://answers.launchpad.net/yade/+question/704293 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Leonard, How about strings the packing at different states in external txt files, and computing strains between pairs of files? [1] Best wishes, Karol [1] https://answers.launchpad.net/yade/+question/700439 -- 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 #703735]: Bonded (CohFrictMat) particles freeze during collision
Question #703735 on Yade changed: https://answers.launchpad.net/yade/+question/703735 Karol Brzezinski posted a new comment: Thank you for your comment. Maybe it is a particular example where damping oscillations 'inside agglomerate' can affect its movement as a whole. This would have to be a strong numerical artifact since it occurs even though the gravity acceleration is not damped. I prepared another example. Only agglomerate of two grains is free falling, hence there is no impact. The oscillations are introduced after 1e6 of iterations. Adding very small damping causes freezing of the particle. So indeed the oscillations cause the problem. Cheers, Karol MWE ### MVE from yade import plot ### params # default parameters or from table readParamsFromTable(noTableOk=True, youngGrain = 7e9, poisson = .3, frictionAngle = atan(0.8), grainDensity = 2504, dtSafetyCohFrictMat = 0.9, sphereRadius = 0.15e-2, normalCohesion = 1e10, shearCohesion = 1e10, ) from yade.params.table import * global introducedOscillations introducedOscillations = False def addPlotData(): global introducedOscillations if not(introducedOscillations) and O.iter>1e6: O.bodies[grain1[0]].state.pos += Vector3(0,0,1e-5) introducedOscillations = True v1 = O.bodies[grain1[0]].state.vel[2] plot.addData(t = O.time, i = O.iter, v1=v1) # material cfmId = O.materials.append(CohFrictMat( young = youngGrain, poisson = poisson, frictionAngle = frictionAngle, density = grainDensity, normalCohesion = normalCohesion, shearCohesion = shearCohesion, )) ## spheres # grain 1 grain1=O.bodies.append([sphere(center=(0,0,1.5*i*sphereRadius),radius=sphereRadius,material = O.materials[cfmId],color=(0,1,0)) for i in [0,1]]) # engines O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label = 'phys')], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment(label = 'law', creep_viscosity = 100.)], ), NewtonIntegrator(damping=0.0, gravity = (0,0,-9.81), dampGravity = False), PyRunner(command = 'addPlotData()', virtPeriod=0.01), ] phys.setCohesionNow = True # to create cohesive contacts in the next step ## grow particles to create overlap O.dt = 0 O.step() # do one step in zero timestep just to create interaction # cancel out the force between the bonded particles for i in O.interactions: i.phys.unp = i.geom.penetrationDepth # time step O.dt = dtSafetyCohFrictMat*PWaveTimeStep() prepare plots plot.plots={'t':('v1')} plot.plot() ### O.run(int(5e6)) -- 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 #704035]: O.save/O.load problem
Question #704035 on Yade changed: https://answers.launchpad.net/yade/+question/704035 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Roxana, I don't have your full code, so I cannot run exactly the same example. But maybe you could try my previous idea to store only the parameters you need, and then load it in the second script. I prepared an example for storing Fv and Fn, but you can add the parameters you need. ## put this at the end of the first script import pandas as pd intrState = pd.DataFrame(columns = ['id1','id2','Fn','Fv']) for ii in O.interactions: iiState = pd.DataFrame({'id1':[ii.id1],'id2':[ii.id2],'Fn':[ii.phys.Fn],'Fv':[ii.phys.Fv]}) intrState = intrState.append(iiState,ignore_index = True) intrState.to_csv('tmpIntrState.csv') ### put this in the second script before run import pandas as pd intrState = pd.read_csv('tmpIntrState.csv') for i in range(len(intrState)): iiSaved = intrState.iloc[i] ii = O.interactions[int(iiSaved.id1), int(iiSaved.id2)] ii.phys.Fn = iiSaved.Fn ii.phys.Fv = iiSaved.Fv Cheers, Karol -- 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 #704065]: particle size distribution
Question #704065 on Yade changed: https://answers.launchpad.net/yade/+question/704065 Karol Brzezinski proposed the following answer: Hi, First of all, please remember to create MVE to support your question, to save some time for people who are trying to help you [1]. Secondly, note that particle size in psdSizes should be provided as diameters - not radii (hence you need to double the values). There are multiple ways to solve your problem. 1) If you know the exact number of particles you can simply run makeCloud() twice, before appending particles to simulation; from yade import pack sp = pack.SpherePack() sp.makeCloud((0,0,0),(0.05,0.05,0.05), rMean = 0.002, num = 80) sp.makeCloud((0,0,0),(0.05,0.05,0.05), rMean = 0.001, num = 20) sp.toSimulation() 2) The makeCloud() method is rather dedicated to continuous size distributions. But you can pass a "stepwise" distribution: from yade import pack psdSizes = [0.002,0.002,0.004,0.004]# you have to pass here diameter, not radius psdCumm = [0,0.2,0.2,1.0] sp = pack.SpherePack() sp.makeCloud((0,0,0),(0.05,0.05,0.05), psdCumm = psdCumm, psdSizes = psdSizes, distributeMass = False) sp.toSimulation() # Note, that this "trick" doesn't work very well with distributeMass = True. In the example above, the NUMBER of smaller particles is 20% of the total number of particles. 3) I had to "manually" compute the proper content to obtain the prescribed mass distribution. Modification of the above example is as follows: from yade import pack massContentOfSmallerParticles = 0.2 smallRadius = 0.001 bigRadius = 0.002 volumeProportion = (bigRadius/smallRadius)**3 tmpNumberOfSmallerParticles = massContentOfSmallerParticles*volumeProportion tmpNumberOfBiggerParticles = 1-massContentOfSmallerParticles tmpTotalNumber = tmpNumberOfSmallerParticles+tmpNumberOfBiggerParticles newContentOfSmallerParticles = tmpNumberOfSmallerParticles / tmpTotalNumber psdSizes = [smallRadius*2,smallRadius*2,bigRadius*2,bigRadius*2]# you have to pass here diameter not radius psdCumm = [0,newContentOfSmallerParticles,newContentOfSmallerParticles,1.0] sp = pack.SpherePack() sp.makeCloud((0,0,0),(0.1,0.1,0.1), psdCumm = psdCumm, psdSizes = psdSizes, distributeMass = False) sp.toSimulation() just checking the distribution smallerParticlesMass = 0 biggerParticlesMass = 0 otherParticlesMass = 0 for b in O.bodies: r = b.shape.radius m = b.state.mass if r == smallRadius: smallerParticlesMass += m elif r == bigRadius: biggerParticlesMass += m else: otherParticlesMass += m totalMass = smallerParticlesMass + biggerParticlesMass + otherParticlesMass print("Content of particles with radius r = {:.3f} equals {:.1f}% [m/m].".format(smallRadius,100*smallerParticlesMass/totalMass)) Cheers, Karol [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
Re: [Yade-users] [Question #704048]: aabbDim() and Triax.box volume difference ?
Question #704048 on Yade changed: https://answers.launchpad.net/yade/+question/704048 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Ahmad, could you provide the MWE (Minimum Working Example)[1] that shows the difference that you are talking about? 1 - aabbDim() computes dimensions of a minimum axis aligned bounding box containing all the spheres from the simulation. 2 - triax.boxvolume probably computes volume from periodic cell dimensions. There are multiple reasons to get different results (e.g using non- spherical particles in the simulation, the cell is not fully filled with spheres, particles are 'outside' the cell, etc.). Cheers, Karol [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
Re: [Yade-users] [Question #704035]: O.save/O.load problem
Question #704035 on Yade changed: https://answers.launchpad.net/yade/+question/704035 Karol Brzezinski posted a new comment: Hi Roxana, I wanted to try to store the interaction state separately and load it in the second script. But there is something wrong with the serialization of interaction physics. For example, if ii is an interaction, calling 'ii.phys.dict()' returns an error: "No to_python (by-value) converter found for C++ type: yade::CapType" If you can do your own modifications in the source code, you could try to investigate this line: https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/ViscoelasticCapillarPM.hpp#L31 Best wishes, Karol -- 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 #704035]: O.save/O.load problem
Question #704035 on Yade changed: https://answers.launchpad.net/yade/+question/704035 Karol Brzezinski posted a new comment: Hi, In my opinion there is something wrong with saving the interactions. I don't know how to fix the source. If you inspect interactions right after loading the simulation (before running it) you will notice that many parameters have 'nan' values. After running the simulation you can observe that some spheres just disappear. You can prevent this by resetting the interactions 'O.interactions.clear()', but I guess that is not a solution that you are looking for... Cheers, Karol -- 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 #704035]: O.save/O.load problem
Question #704035 on Yade changed: https://answers.launchpad.net/yade/+question/704035 Status: Open => Needs information Karol Brzezinski requested more information: Hi, Are you sure it is a working example? ViscElCapMat has no attribute 'eta'. Cheers, Karol -- 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 #703735]: Bonded (CohFrictMat) particles freeze during collision
Question #703735 on Yade changed: https://answers.launchpad.net/yade/+question/703735 Status: Expired => Open Karol Brzezinski is still having a problem: Hi, thank you for your comments. I believe you are talking about this equation (https://gitlab.com/yade- dev/trunk/-/blob/master/pkg/dem/NewtonIntegrator.cpp#L34 ) in a slightly different form. It is hard to imagine how it could have such an effect on the simulation, but it is my strongest lead. The simulation is more or less predictable when I use the same material for standalone spheres. The same for the case with no damping (or very small <1e-5). However, the damping used in the example (0.01) stops the free-falling aggregates as soon as they touch each other. Moreover, even after the separation, they do not start to fall again. Cheers, Karol PS. I noticed that indentations are broken when the example is copied back to the editor from the launchpad. It was probably poorly formatted in the first place (guilty of using tabs). Sorry for 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 #703940]: How can I remove Somengines from the existing O.engines?
Question #703940 on Yade changed: https://answers.launchpad.net/yade/+question/703940 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, To remove the last engine from the list do this: O.engines = O.engines[:-1] That means take all the engines from the existing list, except of the last one. Cheers, Karol -- 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 #703735]: Bonded (CohFrictMat) particles freeze during collision
Question #703735 on Yade changed: https://answers.launchpad.net/yade/+question/703735 Karol Brzezinski gave more information on the question: Hi, I haven't found out the solution, but I wanted to comment that using very small damping ( <1e-5) seems to give decent results. For some reason, the damping effect is exaggerated for this type of material. Do you have any clue why? Cheers, Karol -- 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 #703626]: How does yade import models externally
Question #703626 on Yade changed: https://answers.launchpad.net/yade/+question/703626 Status: Open => Needs information Karol Brzezinski requested more information: Hi, would you mind sharing with us how the problem was solved? Cheers, Karol -- 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 #703734]: Get force on Facet
Question #703734 on Yade changed: https://answers.launchpad.net/yade/+question/703734 Status: Open => Needs information Karol Brzezinski requested more information: Hi Ginna, Are you sure that you provided the working example (except for the plotting issue of course)? - There are no spheres in your simulation, so there won't be any forces acting on your facet. - Module plot is not imported from yade. - While defining plots you use 'O.energy.keys', but I think it should be 'O.energy.keys()'. - Also you want to plot 'Fz' vs 'w', but 'w' is not added to the plot data. - BTW, why do you sum all the components of the force acting on the facet? Regarding my previous guess, I see now that the "Barrera1" stores the id of the facet. So the previous version was ok 'O.force.f(Barrera1)". Best wishes, Karol -- 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 #703734]: Get force on Facet
Question #703734 on Yade changed: https://answers.launchpad.net/yade/+question/703734 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, please provide more information (e.g., MVE [1]). Do you have any errors, or just nothing happens? You need to pass body id to the O.forces.f() function. If 'barrier' is references directly to your facet (body) you should try something like this: F = O.forces.f(barrier.id) print(F) Cheers, Karol [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 #703735]: Bonded (CohFrictMat) particles freeze during collision
New question #703735 on Yade: https://answers.launchpad.net/yade/+question/703735 Hi, Recently I encountered I strange behavior of bonded particles (CohFrictMat). I wanted to simulate gravity deposition, and I noticed that if two agglomerates touch, their velocity drops to zero. This problem occurs if damping > 0 is applied. Please find MVE below. There are two grains one above another. One of them has prescribed velocity, so it "chases" another one. As soon as they touch, their speed suddenly drops to zero (even though they move in the same direction). I am using Ubuntu 20.04 and yadedaily 20221027-6847~7952bc1~focal1. Cheers, Karol ### MVE from yade import plot ### params # default parameters or from table readParamsFromTable(noTableOk=True, youngGrain = 7e9, poisson = .3, frictionAngle = atan(0.8), grainDensity = 2504, dtSafetyCohFrictMat = 0.9, sphereRadius = 0.15e-2, normalCohesion = 1e99, shearCohesion = 1e99, ) from yade.params.table import * def addPlotData(): v1 = O.bodies[grain1[0]].state.vel[2] v2 = O.bodies[grain2[0]].state.vel[2] plot.addData(t = O.time, i = O.iter, v1=v1,v2=v2) # material cfmId = O.materials.append(CohFrictMat( young = youngGrain, poisson = poisson, frictionAngle = frictionAngle, density = grainDensity, normalCohesion = normalCohesion, shearCohesion = shearCohesion, )) ## spheres # grain 1 grain1=O.bodies.append([sphere(center=(0,0,1.5*i*sphereRadius),radius=sphereRadius,material = O.materials[cfmId],color=(0,1,0)) for i in [0,1]]) # grain 2 grain2=O.bodies.append([sphere(center=(0,0,0.1+1.5*i*sphereRadius),radius=sphereRadius,material = O.materials[cfmId],color=(0,0,1)) for i in [0,1]]) # prescribe vel of grain 2 for sp in grain2: O.bodies[sp].state.vel = (0,0,-0.2) # engines O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()], [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label = 'phys')], [Law2_ScGeom6D_CohFrictPhys_CohesionMoment(label = 'law')], ), NewtonIntegrator(damping=0.01, gravity = (0,0,-9.81)), PyRunner(command = 'addPlotData()', virtPeriod=0.01), ] phys.setCohesionNow = True # to create cohesive contacts in the next step ## grow particles to create overlap O.dt = 0 O.step() # do one step in zero timestep just to create interaction # cancel out the force between the bonded particles for i in O.interactions: i.phys.unp = i.geom.penetrationDepth # time step O.dt = dtSafetyCohFrictMat*PWaveTimeStep() prepare plots plot.plots={'t':('v1','v2')} plot.plot() ### O.run(int(2e6)) -- 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 #703498]: Young's modulus or the effect of the wall on the test
Question #703498 on Yade changed: https://answers.launchpad.net/yade/+question/703498 Status: Open => Needs information Karol Brzezinski requested more information: Hi, Please provide the MVE [1]. If the results are not symmetric, the simulation is not symmetric either. You described symmetric boundary conditions, but we don't know anything about loading or granular packing in your simulation. Best wishes, Karol [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
Re: [Yade-users] [Question #703446]: Feasibility of deep-sea mining simulation using Yade
Question #703446 on Yade changed: https://answers.launchpad.net/yade/+question/703446 Status: Open => Needs information Karol Brzezinski requested more information: Hi Ziyu, I would call Yade a multibody dynamics software :) What effects do you want to include? Does it need to be a coupled simulation? Maybe you can start with a kinematically driven tool made of facets. Next step of complexity would be making a dynamic clump of facets and drive the tool with force controlling function (programmed in Python). Alternatively, one can add such a function in the C++ source code to speed up the simulation. Cheers, Karol -- 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 #703351]: Simulation of Dynamic compaction
Question #703351 on Yade changed: https://answers.launchpad.net/yade/+question/703351 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Sirasak, As previously mentioned, you should open separate questions for separate problems [1]. You are at an early stage of the simulation, and it is hard to tell what will work out the best for you. I would start with modeling the footing with a dynamic clump of facets (see the first answer in this [3] topic to see how to clump facets). The footing can be loaded by dropping a single sphere on it. There are multiple ways to 'move the weigh up', for example, using function shiftBodies() [4]. Good luck! Karol [3] https://answers.launchpad.net/yade/+question/696056#1 [4] https://yade-dem.org/doc/yade.utils.html?highlight=shift%20bodies#yade._utils.shiftBodies -- 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 #703351]: Simulation of Dynamic compaction
Question #703351 on Yade changed: https://answers.launchpad.net/yade/+question/703351 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Sirasak, As Jan said you should try to explain better how you imagine your code should work. Your code is a little bit messy, but I will focus only on major issues: - You can pass sphere properties when the sphere pack is added to the simulation by the sp.toSimulation() command. You can follow the first couple of lines of this example [2] - Since your 'soil' particles are relatively soft (default young=1.0MPa), so the computed timestep is big. After you add stiff, steel elements, you should change the timestep again. Otherwise, your simulation becomes unstable, and bodies 'disappear'. - You add PyRunner with the 'compaction()' command twice. First time when setting up the simulation. Secondly, when 'checkUnbalanced()' changes to the 'compaction()' . Also, are you sure you want to add weights all the time? Or rather move the same weight up, and then drop again. Cheers, Karol [2] https://yade-dem.org/doc/tutorial-short-course-fluids.html -- 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 #703169]: Energy conservation of clump
Question #703169 on Yade changed: https://answers.launchpad.net/yade/+question/703169 Karol Brzezinski posted a new comment: Hi Xu, Thank you for your MWE. It looks like it is not what I thought at the beginning. I don't know what is the reason. My last clue is that 'utils.getStress()' may give slightly different results for clumps and spheres. I modified oedometric test example [1] to check this. But the results for different simulations are scattered. from yade import pack, plot useClumps = True readParamsFromTable(rMean=.075, rRelFuzz=.3, maxLoad=1e6) from yade.params.table import * # create box with free top, and ceate loose packing inside the box O.bodies.append(geom.facetBox((.5, .5, 1), (.5, .5, 1), wallMask=31)) sp = pack.SpherePack() sp.makeCloud((0, 0, 0), (1, 1, 2), rMean=rMean, rRelFuzz=rRelFuzz) sp.toSimulation() # make material frictionless to avoid force acting on vert walls O.materials[0].frictionAngle = 0 # I just make spheres smaller to avoid overlapping after replacing by clumps for b in O.bodies: if isinstance(b.shape, Sphere): b.shape.radius*=0.8 if useClumps: relRadList2 = [1,1] relPosList2 = [[0.5,0,0],[-0.5,0,0]] templates= [] templates.append(clumpTemplate(relRadii=relRadList2,relPositions=relPosList2)) O.bodies.replaceByClumps(templates,[1.],discretization=10) O.engines = [ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Facet_Aabb(), Bo1_Wall_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom(), Ig2_Wall_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()] ), NewtonIntegrator(gravity=(0, 0, 0), damping=0.1), PyRunner(command='checkUnbalanced()', virtPeriod=1, label='checker'), ] O.dt = .5 * PWaveTimeStep() def checkUnbalanced(): # at the very start, unbalanced force can be low as there is only few contacts, but it does not mean the packing is stable if O.iter < 5000: return # the rest will be run only if unbalanced is < .1 (stabilized packing) if unbalancedForce() > .1: return # add plate at the position on the top of the packing # the maximum finds the z-coordinate of the top of the topmost particle O.bodies.append(wall(max([b.state.pos[2] + b.shape.radius for b in O.bodies if isinstance(b.shape, Sphere)]), axis=2, sense=-1)) global plate # without this line, the plate variable would only exist inside this function plate = O.bodies[-1] # the last particles is the plate # Wall objects are "fixed" by default, i.e. not subject to forces # prescribing a velocity will therefore make it move at constant velocity (downwards) plate.state.vel = (0, 0, -.01) # start plotting the data now, it was not interesting before O.engines = O.engines + [PyRunner(command='addPlotData()', iterPeriod=200)] # next time, do not call this function anymore, but the next one (unloadPlate) instead checker.command = 'unloadPlate()' def unloadPlate(): # if the force on plate exceeds maximum load, start unloading if abs(O.forces.f(plate.id)[2]) > maxLoad: plate.state.vel *= -1 O.pause() print('Stress underestimated by the factor {:.2f}'.format(max(plot.data['Fz'])/max(plot.data['szz']))) def addPlotData(): if not isinstance(O.bodies[-1].shape, Wall): plot.addData() return Fz = O.forces.f(plate.id)[2] szz=-1*utils.getStress()[2,2] plot.addData(Fz=Fz,szz=szz, w=plate.state.pos[2] - plate.state.refPos[2], unbalanced=unbalancedForce(), i=O.iter) # besides unbalanced force evolution, also plot the displacement-force diagram plot.plots = {'w': ('Fz','szz')} plot.plot() O.run() Best wishes, Karol [1] https://yade-dem.org/doc/tutorial-examples.html#oedometric-test PS Jan, sorry for suggesting this 'interaction inside clump' issue, but I can swear I encountered this some time ago. -- 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 #703169]: Energy conservation of clump
Question #703169 on Yade changed: https://answers.launchpad.net/yade/+question/703169 Karol Brzezinski posted a new comment: Hi, Sorry, but I cannot run this. There are some syntax errors and the script requires loading external files. Please try to prepare MWE [2]: "Do your best to send it as a MWE (Minimal Working Exampleâ„¢). The MWE should actually be the smallest script possible showing the same problem you faced probably in a much longer script, initially. It must be: - minimal = short. It is difficult to find mistakes in long pieces of code and it is usually much more annoying. Any post-processing command should for instance be banned. - working = before sending, test it to be sure it is working (it has no syntax errors etc.)." Cheers, Karol [2] 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
Re: [Yade-users] [Question #703169]: Energy conservation of clump
Question #703169 on Yade changed: https://answers.launchpad.net/yade/+question/703169 Status: Open => Needs information Karol Brzezinski requested more information: Hi, If you provided MWE, I could show what I mean based on your example. The simplest approach is to create a single clump of two overlapping spheres (no other bodies, no gravity). Run one iteration of the simulation. What is the energy state in such a simulation? Cheers, Karol -- 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 #703169]: Energy conservation of clump
Question #703169 on Yade changed: https://answers.launchpad.net/yade/+question/703169 Karol Brzezinski posted a new comment: Hi, I endorse all the comments from Jan. I can add one more. It is very likely that there are some interactions between clump members. Those interactions do not affect the simulation. However, they may contribute to the potential energy if you are taking them into account. Cheers, Karol -- 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 #703130]: How to integrate motion in only one direction?
Question #703130 on Yade changed: https://answers.launchpad.net/yade/+question/703130 Karol Brzezinski posted a new comment: It is because you can give a new attribute to the body this way. For example, if you want to discriminate between groups of bodies, you can do something like this. ### if b.state.pos[2]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 #703130]: How to integrate motion in only one direction?
Question #703130 on Yade changed: https://answers.launchpad.net/yade/+question/703130 Karol Brzezinski proposed the following answer: Hi, Try PPClump.state.blockedDOFs='xyXYZ' Instead of PPClump.state.blockDOFs='xyXYZ' Cheers, Karol -- 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 #703130]: How to integrate motion in only one direction?
Question #703130 on Yade changed: https://answers.launchpad.net/yade/+question/703130 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Guo, You can block all degrees of freedom, except for 'z'. Let's say 'b' is your body, so: b.state.blockedDOFs='xyXYZ' the above code constrains body, and allows only for vertical movement (capital letters control rotation). Best wishes, Karol -- 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 #703121]: Torque output for STL
Question #703121 on Yade changed: https://answers.launchpad.net/yade/+question/703121 Karol Brzezinski posted a new comment: Hi, I cannot test it right now on the computer, but it would be something like this: clumpId = O.bodies.appendClumped(EO) You, can drive this clump as one body by changing velocity, and angular velocity (angVel). O.bodies[clumpId].state.angVel = (0,0,1) All the degrees of freedom should stay blocked. This way you obtain kinematic boundary condition. If you want to have constant force or moment, you will need to program a servo. You can alternatively make clump dynamic, apply mass and inertia and release degrees of freedom. In such a way, you will be able to controll it by applying force. Cheers, Karol PS I don't know if it works well with mpi. -- 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 #703121]: Torque output for STL
Question #703121 on Yade changed: https://answers.launchpad.net/yade/+question/703121 Karol Brzezinski posted a new comment: Just a comment: instead of using CombinedKinematicEngine, I would clump all the facets together, and drive them as one body. Cheers, Karol -- 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 #703121]: Torque output for STL
Question #703121 on Yade changed: https://answers.launchpad.net/yade/+question/703121 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Nima, I guess that you want to compute 'global' torque acting on your 'vane' (driving torque of your tool/probe). So you need to include the torque from all the forces: Moment of force = F x d F is the force applied, d is the distance from the fixed axis (vane axis). Cheers, Karol -- 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 #703098]: Trying to pass on property from python to shape
Question #703098 on Yade changed: https://answers.launchpad.net/yade/+question/703098 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Danny, are you sure that you need to modify the *.hpp file? You can add a new property to the body directly from Yade (Python) console. Since you are modifying the utils file, I guess that your function is pure Python. Try this: bid = O.bodies.append(sphere((0,0,0),1)) b = O.bodies[bid] b.shape.myProperty = Vector3(1,2,3) print(b.shape.myProperty) The disadvantage of this approach is that the property won't be saved by O.save function. Cheers, Karol -- 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 #703024]: Particles in the middle of the cylinder disappeared after adding the thermal engine
Question #703024 on Yade changed: https://answers.launchpad.net/yade/+question/703024 Karol Brzezinski posted a new comment: Hi, I don't know whether such a coupling can be used for your problem. I noticed that the example from tutorial [1] uses extremely high density. Maybe someone else could provide a better answer... Cheers, Karol [1] https://gitlab.com/yade- dev/trunk/-/blob/master/examples/ThermalEngine/thermoHydroMechanical_coupling.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 #703024]: Particles in the middle of the cylinder disappeared after adding the thermal engine
Question #703024 on Yade changed: https://answers.launchpad.net/yade/+question/703024 Status: Open => Needs information Karol Brzezinski requested more information: Hi Ziyu, I tried to run your example but it requires loading sphere packing from an external file: >OSError: packing-cylinder.spheres not found. Cheers, Karol -- 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 #703030]: run yade
Question #703030 on Yade changed: https://answers.launchpad.net/yade/+question/703030 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, maybe it is just a typo? I see in the error that you have an extra space in the filename: 'script .py' instead of 'script.py'. You just need to Navigator with your terminal to the directory where script is save and then type 'yade script.py' (just as you typed in question). Cheers, Karol -- 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 #702962]: How to disable function in PyRunner
Question #702962 on Yade changed: https://answers.launchpad.net/yade/+question/702962 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, You can set some lab for a specific PyRunner, and at some point of simulation use this label as reference to your PyRunner, e.g PyRunner(..., label="myEngine") For example you can disable this engine by setting myEngine.dead = True [1] Best wishes, KB [1] https://yade-dem.org/doc/yade.wrapper.html?highlight=pyrunner#yade.wrapper.PyRunner -- 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 #702665]: How to calculate the height of particle accumulation?
Question #702665 on Yade changed: https://answers.launchpad.net/yade/+question/702665 Karol Brzezinski posted a new comment: If you use (xmin,ymin,zmin),(xmax,ymax,zmax) = aabbExtrema() zmax is the highest point. If you use (xdim,ydim,zdim)= aabbDim() zdim is packing height (the highest point minus the lowest) Karol -- 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 #702665]: How to calculate the height of particle accumulation?
Question #702665 on Yade changed: https://answers.launchpad.net/yade/+question/702665 Karol Brzezinski proposed the following answer: Hi, The information about the height is printed. It is just between "initial lines". If you want to know the height anytime later during the simulation, you need to run those two lines again: ### (xdim,ydim,zdim)= aabbDim() print("Height is ",zdim) ### Cheers, Karol -- 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 #702665]: How to calculate the height of particle accumulation?
Question #702665 on Yade changed: https://answers.launchpad.net/yade/+question/702665 Karol Brzezinski posted a new comment: Are you sure? What is the console output after running this code? -- 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 #702665]: How to calculate the height of particle accumulation?
Question #702665 on Yade changed: https://answers.launchpad.net/yade/+question/702665 Karol Brzezinski posted a new comment: aabbDim() gives you dimensions (three values), so it should rather be: # O.bodies.append(geom.facetBox((0.05, 3, 4), (0.1, 3, 4), wallMask=63)) sp = pack.SpherePack() sp.makeCloud(Vector3(0.05,0,0),Vector3(0.05,6,8), rMean=0.05, rRelFuzz=0) sp.toSimulation() (xdim,ydim,zdim) = aabbDim() print("Height is ",zdim) Cheers, Karol -- 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 #702665]: How to calculate the height of particle accumulation?
Question #702665 on Yade changed: https://answers.launchpad.net/yade/+question/702665 Karol Brzezinski proposed the following answer: Hi, Yes, first you generate facets, next particles. I only meant that facetbox() function creates facets, not particles (as stated in the first post). Referring to your question, this is how you can obtain the height of spherical particle packing: # O.bodies.append(geom.facetBox((0.05, 3, 4), (0.1, 3, 4), wallMask=63)) sp = pack.SpherePack() sp.makeCloud(Vector3(0.05,0,0),Vector3(0.05,6,8), rMean=0.05, rRelFuzz=0) sp.toSimulation() O.engines[4].gravity = (0,0,-10) O.run(3000,True) (xmin,ymin,zmin),(xmax,ymax,zmax) = aabbExtrema() # you can use aabbDim() instead in those two lines if you only need height height = zmax-zmin print("Height is ",height) Cheers, Karol -- 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 #702665]: How to calculate the height of particle accumulation?
Question #702665 on Yade changed: https://answers.launchpad.net/yade/+question/702665 Karol Brzezinski posted a new comment: And one more comment Are you sure that you generate particles with this function geom.facetbox ((,), (,), wallmask=)? You generate bodies (facets), but I wouldn't call them particles by default. Cheers, Karol -- 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 #702665]: How to calculate the height of particle accumulation?
Question #702665 on Yade changed: https://answers.launchpad.net/yade/+question/702665 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi, Function aabbExtrema() returns boundary box of particle packing (min and max corner positions). If you are only interested in dimension, you can use aabbDim(). Both functions work for spherical bodies. Cheers Karol [1] https://yade-dem.org/doc/yade.utils.html?highlight=aabbextrema#yade._utils.aabbExtrema [2] https://yade-dem.org/doc/yade.utils.html?highlight=aabbdim#yade.utils.aabbDim -- 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 #702205]: facet disappear when adding flowengine to the examples/concrete/triax.py
Question #702205 on Yade changed: https://answers.launchpad.net/yade/+question/702205 Status: Needs information => Answered Karol Brzezinski proposed the following answer: Hi, your example still needs some patching before working at all ('damp' not defined etc.). However, the issue is that the facets have zero mass (any force divided by zero mass gives infinite acceleration). You try to prescribe some mass: >mass = O.bodies[0].state.mass but unfortunatelly O.bodies[0] is a wall that has no mass either. Cheers, Karol -- 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 #702229]: yade and terminal
Question #702229 on Yade changed: https://answers.launchpad.net/yade/+question/702229 Status: Open => Answered Karol Brzezinski proposed the following answer: Hi Haoding, when you create a function in 'live' terminal Yade doesn't see it. It is always better tonrun scripts. However, you can make it work in the terminal. After creating functions run the line: globals().update(locals()) Cheers, Karol -- 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