Re: [Yade-users] [Question #661250]: I am trying to simulate uniaxial compression with DEM on yade. I would like to know how to introduce the hertz mindlin contact model to my model. Also, I need the
Question #661250 on Yade changed: https://answers.launchpad.net/yade/+question/661250 Status: Answered => Open Anay Joshi is still having a problem: Hi Luc, Thanks a lot for this descriptive information. I have a few more questions to ask, 1. I read your paper, ' A DEM model for soft and hard rocks: Role of grain interlocking on strength' in which you have modeled the granite. However, I am modeling a concrete cylinder in my work. I have read in several literatures that they used the bonded particle model (Cundall,2004). My question is, can I use JCFpm for modeling concrete? 2. I am running the simulation on the remote servers and I would like to know that is there any way to see the time-dependent animation of the whole process of my simulation? Also, can you suggest me how to see the streamlines of the DE with the yade? Thanks, Anay On Wed, Jan 24, 2018 at 9:37 PM, Luc Scholtès < question661...@answers.launchpad.net> wrote: > Your question #661250 on Yade changed: > https://answers.launchpad.net/yade/+question/661250 > > Status: Open => Answered > > Luc Scholtès proposed the following answer: > Wow... so many lines. > > I would suggest that you use the following first batch of lines to get > used to yade first. If you copy paste these lines in a file and name it > "uniaxialCompression.py", you should then be able to run it with "yade > uniaxialCompression.py". Basically, it simulates a uniaxial compression > with the JCFPM model. Then, if you want to plot some data from the > simulation, you can copy the second batch of lines, copy paste them in a > file name "plotUniaxialCompression.py" and then launch it with "python > plotUniaxialCompression.py". > > Then, once you know how to run and exploit this simulation, you'll be > able to modify the script with the contact law that suits you the most. > If not, please ask a simple question with minimum lines and clear > (short) title. > > Luc > > --- uniaxial compression: > > # -*- coding: utf-8 -*- > from yade import pack, plot > > # SIMULATIONS DEFINED HERE > > packing (previously constructed) > OUT='compressionTest_JCFPM' > > Simulation Control > rate=-0.01 #deformation rate > iterMax=1 # maximum number of iterations > saveVTK=2000 # saving output files for paraview > > Material microproperties > intR=1.1 # allows near neighbour interaction (can be adjusted for every > packing) > DENS=2500 # could be adapted to match material density: > dens_DEM=dens_rock*(V_rock/V_particles)=dens_rock*1/(1-poro_DEM) -> > packing porosity as to be computed? > YOUNG=20e9 > FRICT=7 > ALPHA=0.1 > TENS=1e6 > COH=1e6 > > material definition > def sphereMat(): return JCFpmMat(type=1,density=DENS, > young=YOUNG,poisson=ALPHA,frictionAngle=radians(FRICT), > tensileStrength=TENS,cohesion=COH) > > create the specimen > pred=pack.inCylinder((0,0,0),(0,1,0),0.25) > O.bodies.append(pack.regularHexa(pred,radius=0.025, > gap=0.,material=sphereMat)) > > R=0 > Rmax=0 > nbSpheres=0. > for o in O.bodies: > if isinstance(o.shape,Sphere): >nbSpheres+=1 >R+=o.shape.radius >if o.shape.radius>Rmax: > Rmax=o.shape.radius > Rmean=R/nbSpheres > > print 'nbSpheres=',nbSpheres,' | Rmean=',Rmean > > boundary condition (see utils.uniaxialTestFeatures > bb=utils.uniaxialTestFeatures() > negIds,posIds,longerAxis,crossSectionArea=bb['negIds'], > bb['posIds'],bb['axis'],bb['area'] > > # ENGINES DEFINED HERE > > O.engines=[ > ForceResetter(), > InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor= > intR,label='Saabb')]), > InteractionLoop( > [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor= > intR,label='SSgeom')], > [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys( > cohesiveTresholdIteration=1,label='interactionPhys')], > [Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM( > recordCracks=True,Key=OUT,label='interactionLaw')] > ), > UniaxialStrainer(strainRate=rate,axis=longerAxis, > asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea, > blockDisplacements=1,blockRotations=1,setSpeeds=0, > stopStrain=0.1,dead=1,label='strainer'), > > GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.5, > defaultDt=utils.PWaveTimeStep()), > NewtonIntegrator(damping=0.4,label='newton'), > PyRunner(iterPeriod=int(100),initRun=True,command=' > recorder()',label='data'), > VTKRecorder(iterPeriod=int(saveVTK),initRun=True, > fileName=OUT+'-',recorders=['spheres','jcfpm','cracks'], > Key=OUT,label='vtk') > ] > > # RECORDER DEFINED HERE > > def recorder(): > yade.plot.addData({'i':O.iter, >'eps':strainer.strain, >'sigma':strainer.avgStress, >'tc':interactionLaw.nbTensCracks, >'sc':interactionLaw.nbShearCracks, >
[Yade-users] [Question #664362]: filtration - PeriodicFlowEngine
New question #664362 on Yade: https://answers.launchpad.net/yade/+question/664362 Dear all, I would like to simulate the transport of small particles by downward flow like was done in (Sari et al. 2011). My packing has periodic lateral boundaries; a bottom plane and another top plane are introduced to the simulation. It seems that the PeriodicFlowEngine is not working correctly (the fine particle doesn't move), I am wondering if the setting for this engine were chosen properly (flow.bndCondIsPressure,flow.bndCondValue, flow.gradP), or if the fine particle at the top of the packing may influence the triangulation in this case. Does anyone know what I did wrong? And how can I fix that ? Thank you! Feda Sari, H., Chareyre, B., Catalano, E., Philippe, P., & Vincens, E. (2011). Investigation of internal erosion processes using a coupled dem-fluid method. In Particles 2011 II International Conference on Particle-Based Methods, E. Oate and DRJ Owen (Eds), Barcelona (pp. 1-11). from yade import pack,qt import math O.periodic=True nbofspheres=1500 width=0.04 depth=0.04 height=0.1 radius=0.002 radiusfine=0.0005 rRelFuzz=0.01 O.cell.hSize=Matrix3(width, 0, 0, 0 ,depth , 0, 0, 0, 3*height) O.materials.append(ViscElMat(kn=1e7,ks=1e7,en=0.1,et=0.1,frictionAngle=0,density=2530,label='spheres')) O.materials.append(ViscElMat(kn=1e7,ks=1e7,en=0.1,et=0.1,frictionAngle=0,density=2530,label='walls')) bottomWall = utils.box(center=(width/2,depth/2,height-0.01), extents=(width*1000,depth*1000,0) ,fixed=True,wire=False,material='walls',color=(0,0,1)) topWall = utils.box(center=(width/2,depth/2,2*height+0.01), extents=(width*1000,depth*1000,0) ,fixed=True,wire=False,material='walls',color=(0,0,1)) O.bodies.append([bottomWall,topWall]) sp=pack.SpherePack() sp.makeCloud((0,0,height),(width,depth,2*height),radius,rRelFuzz,nbofspheres,periodic=True,porosity=0.3,seed=1) O.bodies.append([utils.sphere(s[0],s[1],color=(1,1,1),material='spheres') for s in sp]) for b in O.bodies: if isinstance(b.shape,Sphere): b.state.blockedDOFs='xyzXYZ' b.state.vel=(0,0,0) b.state.angVel=(0,0,0) O.bodies.append(utils.sphere((random.uniform(0,0.04),random.uniform(0,0.04),2*height+0.005),radiusfine,highlight=True,material='spheres',color=(1,0,0))) sp.fromSimulation() O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()],allowBiggerThanPeriod=True), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()], [Ip2_ViscElMat_ViscElMat_ViscElPhys()], [Law2_ScGeom_ViscElPhys_Basic()] ), GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8,defaultDt=0.8*PWaveTimeStep(),viscEl=True), PeriodicFlowEngine(dead=1,label='flow'), NewtonIntegrator(damping=0,gravity=(0,0,0),label='newton') #PyRunner(command='checkPositions()',realPeriod=10), ] flow.dead=0 flow.defTolerance=0.3 flow.meshUpdateInterval=200 flow.useSolver=3 flow.permeabilityFactor=1 flow.viscosity=1 flow.wallIds=[-1,-1,-1,-1,1,0] flow.bndCondIsPressure=[0,0,0,0,1,0] flow.bndCondValue=[0,0,0,0,-5,0] flow.boundaryUseMaxMin=[0,0,0,0,1,1] #flow.gradP=(0,0,-5) O.run() qt.View() -- 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 #664191]: binary vtu/vtk
Question #664191 on Yade changed: https://answers.launchpad.net/yade/+question/664191 Bruno Chareyre proposed the following answer: If you manage to introduce other useful options on your side let us know, we can add them to the source code. Bruno -- 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 #664191]: binary vtu/vtk
Question #664191 on Yade changed: https://answers.launchpad.net/yade/+question/664191 Status: Open => Answered Bruno Chareyre proposed the following answer: >how do i recompile? https://yade-dem.org/doc/installation.html > Forgive me for the naive question You are welcome. :) B -- 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 #663961]: Problem importing stl cet has coincident vertices
Question #663961 on Yade changed: https://answers.launchpad.net/yade/+question/663961 Status: Open => Answered Jan Stránský proposed the following answer: Hello, as the error syas, there is a facet with coinciding vertices.. Probably it is not a problem from topology point of view (it is valid stl file), but there is a check in Yade to prevent creating a facet being line/point.. you can: 1) somehow delete the problematic facets 2) modify the source code to your needs The link you provided has been deleted.. cheers Jan -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #664191]: binary vtu/vtk
Question #664191 on Yade changed: https://answers.launchpad.net/yade/+question/664191 JOHN posted a new comment: I apologise, i meant modetobinary** -- 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 #664343]: Lack of recoil in sphere-pfacet impact?
New question #664343 on Yade: https://answers.launchpad.net/yade/+question/664343 I am studying the interaction of pfacets with other objects, since I have it not completely clear in my mind. I've seen that pfacets interact "apparently realistically" with other pfacets. However I have an example where a sphere collides with a pfacet, bounces back correctly but does not transfer any momentum to the pfacet (no nodes or connections move after the end of the impact). Why? This is my code --- from yade.gridpfacet import * from yade import pack,ymport,export,geom,bodiesHandling,qt vr=0.2 vh=0.4 rr=0.02 phimat=30. # friction angle E=1e8 # Young's modulus f = open("state.dat", "w") intf = 0 def state(si,intf): if (len(O.interactions.withBody(si))>0): forc = O.interactions.withBody(si)[0].phys.normalForce[1] else: forc = 0 intf += forc*O.dt/O.bodies[si].state.mass f.write ("%d %f %f %f %f\n" % (O.iter,O.bodies[si].state.se3[0][1],O.bodies[si].state.vel[1],forc,intf)) #tempo coord y sfera vel y sfera forza sulla sfera integr-forza f.flush() return intf Engines O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_Sphere_Aabb(), Bo1_Wall_Aabb(), Bo1_PFacet_Aabb(), Bo1_Facet_Aabb(), ]), InteractionLoop( [ Ig2_GridNode_GridNode_GridNodeGeom6D(),#internal = ScGeom6D Ig2_Sphere_PFacet_ScGridCoGeom(), #cyl-facet Ig2_Wall_Sphere_ScGeom(),#cyl-wall Ig2_Wall_PFacet_ScGeom(), Ig2_PFacet_PFacet_ScGeom(), Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom(), ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), Ip2_FrictMat_FrictMat_FrictPhys() ], [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGeom_FrictPhys_CundallStrack(), ] ), NewtonIntegrator(gravity=(0.,0,0),damping=0), # qt.SnapshotEngine(fileBase='experiment',iterPeriod=2000,label='snapshot'), PyRunner(command='intf = state(sphId,intf)',iterPeriod=1), # call myFunction every 100 steps ] Creat materials O.materials.append( CohFrictMat( young=E*1e2,poisson=0.3,density=100,frictionAngle=radians(phimat),normalCohesion=1e10,shearCohesion=1e10,momentRotationLaw=True,label='cMat' ) ) # material to create the gridConnections O.materials.append( FrictMat( young=E,poisson=0.3,density=1000,frictionAngle=radians(phimat),label='fMat' ) ) # material for general interactions # Create ONE WALL # xw = 0 yw = 0 lwall = 10*vr hwall = 2*vh v1=Vector3(xw,yw,0) v2=Vector3(xw+lwall,yw,0) v3=Vector3(xw,yw,hwall) vertices=[v1,v2,v3] pfacetCreator1(vertices,rr,nodesIds=[],cylIds=[],pfIds=[],wire=False,color=[1,1,1],fixed=False,materialNodes='cMat',material='fMat') #sphId = O.bodies.append(sphere([xw+lwall/3.,yw+rr*4,hwall/3.], radius=rr,color=(1,0,0))) sphId = O.bodies.append(sphere([0,rr*4,0], radius=rr,color=(1,0,0))) O.bodies[sphId].state.vel = Vector3(0,-0.1,0) For viewing from yade import qt qt.View() Gl1_Sphere.stripes=True qtr = qt.Renderer() Set a time step #O.dt=1e-05 O.dt=PWaveTimeStep() # non accurate time-step Allows to reload the simulation O.saveTmp() -- 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 #664191]: binary vtu/vtk
Question #664191 on Yade changed: https://answers.launchpad.net/yade/+question/664191 Status: Solved => Open JOHN is still having a problem: thank you Forgive me for the naive question if i alter the source code of yade, how do i recompile? Incidently i was thinking of setDataModetoAppend() -- 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 #664191]: binary vtu/vtk
Question #664191 on Yade changed: https://answers.launchpad.net/yade/+question/664191 Status: Answered => Solved JOHN confirmed that the question is solved: Thanks Bruno Chareyre, that solved my question. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp