[Yade-users] [Question #632092]: CohFrictMat fragile mode does not break interaction
New question #632092 on Yade: https://answers.launchpad.net/yade/+question/632092 Hi everybody ! I am trying to test what exactly do the fragile and plastic mode of CohFrictMat, and for this I have implemented a very simple simulation, appending a fixed sphere, and a second one who is moving the opposite way from initial contact, in order to break the cohesion bond by exceeding the tensile strength limit. I am plotting Fn versus un displacement, and when I run the simulation using Fragile = False in the simulation I get first elastic increase of fn, and then flat plastic behavior, then the two particles are set apart, and interaction disappears. Which is fine. However, when I use fragile = True, the same elastic behavior initially occurs, up until the fragile limit, then, at that precise timestep, no interaction is detected by Yade, and then this interaction is reset, with a very high value, and that does not drop to zero until the particles are really apart ( they are still overlapping when the strenght limit is reached, and that is because they are initially overlapping). So I don't really know what is going on here. Could it be that it is the setting of the equilibrium distance again ? since unp relates to plastic displacement ? any help would be appreciated ! Here is the script, running already until the strenght limit is reached, pressing run you can see what happens next ! # coding=utf-8 # TEST 8 : Appliance of horizontal disp one ball (rebound)-- > no grav/no coh # EXPECTED : we want to see breakage of cohesion bond from __future__ import division import numpy as np from yade import plot,pack,timing from pprint import pprint # DATA COMPONENTS nb_iter = 1 # INPUTS # Geometry RSph = 0.1 CoeffSph = 0.9 Pos1 = (RSph*CoeffSph,RSph,0.) Pos2 = (-RSph*CoeffSph,RSph,0.) # Material EyCohFrictMat = 1e7 poissonCohFrictMat = 0.25 densityCohFrictMat = 2600. FrictAngSphere = 30.*pi/180. NCohesionCohFrictMat = 3 SCohesionCohFrictMat = 3 # Calculation damp=0.5 gz=0. SphereVel= (-1.5,0.,0.) #EXPORTATION #création des différentes listes de forces lisForce = [] lisForN = [] lisForSh = [] lisTime = [] " # SIMULATION BEGINNING - SIMULATION BEGINNING - SIMULATION BEGINNING ## CREATE MATERIAL - CREATE MATERIAL - CREATE MATERIAL O.materials.append( CohFrictMat( young = EyCohFrictMat, poisson= poissonCohFrictMat, density= densityCohFrictMat , frictionAngle = FrictAngSphere, normalCohesion = NCohesionCohFrictMat , shearCohesion = SCohesionCohFrictMat , fragile = True, momentRotationLaw=True, etaRoll=0.1, etaTwist=-1, alphaKr=0., alphaKtw=0., isCohesive = True, label='MatSpheres')) ## CREATE SPHERES - CREATE SPHERES - CREATE SPHERES - # they could use the default material (utils.defaultMat) O.bodies.append([ # fixed: particle's position in space will not change sphere(center=Pos1,radius= RSph,fixed=True, material ='MatSpheres'), # this particles is free, subject to dynamics sphere(Pos2,RSph, material ='MatSpheres') ]) setBodyVelocity(1,SphereVel, 'xyz') ## FUNCTIONAL COMPONENTS - FUNCTIONAL COMPONENTS - FUNCTIONAL COMPONENTS - O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb()]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=1.5,label='ss2sc')], # collision geometry [Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow = True)], # collision "physics" [Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm = True)] # contact law -- apply forces ), #Apply gravity force to particles. damping: numerical dissipation of energy. NewtonIntegrator(gravity=(0.,0.,gz)), PyRunner(command='addPlotData()',iterPeriod=1, dead= True, label = 'dataPlot') ] def setEquilibrium(): O.dt = 0. O.step() for i in O.interactions : i.phys.unp = i.geom.penetrationDepth O.step() dataPlot.dead = False ss2sc.interactionDetectionFactor=1. # now reset the interaction radius and go ahead O.dt=5e-4*PWaveTimeStep() def addPlotData(): yade.plot.addData({'t':O.time,'i':O.iter,'Fn':O.interactions[0,1].phys.normalForce[0] ,'Fs':O.interactions[0,1].phys.shearForce[0], 'un':SphereVel[0]*O.time }) #pprint (plot.data) setEquilibrium() plot.plots={'un':('Fn')} plot.plot() O.run(250,True) yade.qt.Controller(), yade.qt.View() cheers, Manon -- 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 #632085]: Sum the energy dissipation when cohesive bonds broke
New question #632085 on Yade: https://answers.launchpad.net/yade/+question/632085 Hi, A dense packing consists of lots of sub-particles connected by cohesive bonds. Energy dissipated when cohesive bonds broke under dynamic loading. CohFrictMat was used in this simulation, can anyone tell me how to sum this energy? Thanks in advance. Xavier -- 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 #631788]: Flow of sphere clump.
Question #631788 on Yade changed: https://answers.launchpad.net/yade/+question/631788 Status: Solved => Open Ed Carlos Alves Rocha is still having a problem: Hello Jan! I created a sphere clump for the injection, following its tips. However, when I run the particle the error below appears, can you help me with this error? AttributeErrorTraceback (most recent call last) /usr/bin/yade in () /usr/bin/yade in inject() 27 v = (9.1924,9.1924,0) 28 for s in ss2: ---> 29s.state.vel = v 30 O.bodies[cid].state.vel = v 31 AttributeError: 'int' object has no attribute 'state' # # idCana=O.materials.append(FrictMat(young=24.5e6,poisson=.3,frictionAngle=.6, density=4.5e2,label="cana")) idSteel=O.materials.append(FrictMat(young=210e9,poisson=.3,frictionAngle=.8,density=7.85e3,label="steel")) O.bodies.append(geom.facetBox((12,3,1.5),(13,4,3),wallMask=31,material="steel" )) r = 0.125 def inject(): for k in arange(0,4): ss2=O.bodies.appendClumped([sphere((r*i,0,k*4*r),r, material="cana") for i in range(1,9)]) cid,bids = ss2 v = (9.1924,9.1924,0) for s in ss2: s.state.vel = v O.bodies[cid].state.vel = v O.engines = [ ForceResetter(), # sphere, facet, wall InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(),Bo1_Wall_Aabb()]), InteractionLoop( # the loading plate is a wall, we need to handle sphere+sphere, sphere+facet, sphere+wall [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_FrictPhys()], [Law2_ScGeom_FrictPhys_CundallStrack()] ), # NewtonIntegrator(gravity=(0,0,9.81),damping=0), NewtonIntegrator(gravity=(0,-9.81,0),damping=0.2), PyRunner(iterPeriod=50,command='inject()',initRun=True), ] O.dt=(1e-6)*PWaveTimeStep() #O.dt =1e-7 O.step() # from yade import qt qt.Controller() qt.View() 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
[Yade-users] [Question #632015]: gravity for certain material instance
New question #632015 on Yade: https://answers.launchpad.net/yade/+question/632015 Hi there, I was wondering if we can assign normal (negative in z direction) gravity for the model, but for certain bodies which have a different and known material we put gravity in positive z direction. The idea is to mimic a sort of evaporation phenomena in a compacted particle assembly. I tried to put negative density but it did not work. If you guys have any idea, please let me know. Bests, Behzad -- 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 #631650]: Export the model as stl format
Question #631650 on Yade changed: https://answers.launchpad.net/yade/+question/631650 Anton Gladky proposed the following answer: Hi, you can use export.gmshGeo [1] to export spheres in geo-file. It can be than imported into the GMSH, which is a three-dimensional finite element mesh generator [2]. Generated mesh exports in any available format, including STL, [1] https://github.com/yade/trunk/blob/master/py/export.py#L894 [2] http://gmsh.info/ Cheers, Anton -- 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 #631650]: Export the model as stl format
Question #631650 on Yade changed: https://answers.launchpad.net/yade/+question/631650 Klaus Thoeni proposed the following answer: Hi, here my thoughts: 1. export your packing as txt (r,x,y,z) 2. export a sphere with radius r=1 as STL from e.g. Meshlab (you can specify the subdivision level, i.e., how fine you want your mesh) 3. use the in step 2 generated sphere as a template 4. write a script that reads your txt file and generates STL-spheres according to your template, i.e., apply a translation and a scale to your coordinates of the template 5. the same script should then also write the new STL file with all spheres. HTH Klaus -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #631227]: Porosity of a packing with overlapped particles
Question #631227 on Yade changed: https://answers.launchpad.net/yade/+question/631227 Status: Open => Answered Klaus Thoeni proposed the following answer: Well, are you sure you selected the right volume? Make sure you use the methods the right way and set the right parameters. Without seeing your script I can't give any further advice. Klaus -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp
Re: [Yade-users] [Question #615092]: getCapillaryStress
Question #615092 on Yade changed: https://answers.launchpad.net/yade/+question/615092 Status: Open => Expired Launchpad Janitor expired the question: This question was expired because it remained in the 'Open' state without activity for the last 15 days. -- You received this question notification because your team yade-users is an answer contact for Yade. ___ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp