[Yade-users] [Question #693090]: Cohesive contact between a pfacet surface and a sphere
New question #693090 on Yade: https://answers.launchpad.net/yade/+question/693090 Hi every one, I would like to know is there a method to put a cohesive contact condition between a pfacet surface and spheres? It's working for a gridconnection and spheres but I try for a sphere and a pfacet surface and I could not find a way for that, as show in below simple code. Can you give me some suggestion and idea? Thanks a lot ### from builtins import range from yade import qt,plot from yade.gridpfacet import * phi=20. E=3.*1e8 r=0.005 O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_Sphere_Aabb(), Bo1_GridConnection_Aabb(), Bo1_PFacet_Aabb(), ]), InteractionLoop([ Ig2_Sphere_Sphere_ScGeom(), Ig2_Sphere_GridConnection_ScGridCoGeom(), Ig2_Sphere_PFacet_ScGridCoGeom(), Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_GridConnection_GridConnection_GridCoGridCoGeom(), Ig2_GridConnection_PFacet_ScGeom(), Ig2_PFacet_PFacet_ScGeom(), ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), #Ip2_FrictMat_FrictMat_FrictPhys() ], [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGridCoGeom_CohFrictPhys_CundallStrack(), ] ), GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'), NewtonIntegrator(gravity=(0,0,-9.81),damping=.5,label='newton'), ] O.materials.append( CohFrictMat( young=0.05*E,poisson=0.3,density=2650,frictionAngle=radians(phi),normalCohesion=3e100,shearCohesion=3e100,momentRotationLaw=True,label='cohfrictMat' ) ) O.materials.append( FrictMat( young=E,poisson=0.5,density=260050,frictionAngle=radians(phi),label='frictMat' ) ) # SPHERES O.bodies.append( sphere(center=(Vector3(0.2828,0.5,0.4253)),radius=0.1,material='cohfrictMat',fixed=False) ) # GRIDS raduis1=0.001 pf1=O.bodies.append(gridNode([ 0, .0, 0],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25])) pf2=O.bodies.append(gridNode([ 1, .0, 1],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25])) pf3=O.bodies.append(gridNode([ 1, 1, 1],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25])) pf4=O.bodies.append(gridNode([ 0, 1, 0],raduis1,wire=False,fixed=True,material='cohfrictMat',color=[0,0,25])) O.bodies.append( gridConnection(pf1,pf2, raduis1,material='cohfrictMat',color=[0,0,25] )) O.bodies.append( gridConnection(pf2,pf4, raduis1,material='cohfrictMat',color=[0,0,25] )) O.bodies.append( gridConnection(pf4,pf1, raduis1,material='cohfrictMat',color=[0,0,25] )) O.bodies.append( gridConnection(pf2,pf3, raduis1,material='cohfrictMat',color=[0,0,25] )) O.bodies.append( gridConnection(pf3,pf4, raduis1,material='cohfrictMat',color=[0,0,25] )) O.bodies.append( pfacet(pf1,pf2,pf4,wire=False,material='cohfrictMat',color=[0,0,25] )) O.bodies.append( pfacet(pf2,pf3,pf4,wire=False,material='cohfrictMat',color=[0,0,25] )) qt.Controller() qtv = qt.View() qtr = qt.Renderer() qtr.bgColor=[1,1,1] Gl1_Sphere.stripes=1 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 #692040]: How to fix a Pfacet with node
Question #692040 on Yade changed: https://answers.launchpad.net/yade/+question/692040 Ali Rafiee confirmed that the question is solved: Thanks Klaus Thoeni, 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
Re: [Yade-users] [Question #692040]: How to fix a Pfacet with node
Question #692040 on Yade changed: https://answers.launchpad.net/yade/+question/692040 Status: Answered => Solved Ali Rafiee confirmed that the question is solved: Hi Klaus, Thank you very much. So, There is not a way to fix an element inside a clump. Ali -- 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 #692040]: How to fix a Pfacet with node
New question #692040 on Yade: https://answers.launchpad.net/yade/+question/692040 Hi everybody, I have a problem with fixing (blocking) a pfacet with nodes. in fact, I wanted to fix a pfacet just from bottom part, so I fix the below nodes, but this method did not work. I do not want to completely fix the pfacet, just only lower part. here is my simple code: ### from yade import qt, pack, utils, ymport, export from yade.gridpfacet import * import gts, os.path, locale import math Engines O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_GridConnection_Aabb(),Bo1_Sphere_Aabb(),Bo1_PFacet_Aabb(), ]), InteractionLoop([ Ig2_Sphere_Sphere_ScGeom(), Ig2_Sphere_GridConnection_ScGridCoGeom(), Ig2_Sphere_PFacet_ScGridCoGeom(), Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_GridConnection_GridConnection_GridCoGridCoGeom(), Ig2_GridConnection_PFacet_ScGeom(), #Ig2_PFacet_PFacet_ScGeom(), ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), # internal cylinder physics Ip2_FrictMat_FrictMat_FrictPhys() # physics for external interactions, i.e., cylinder-cylinder interaction ], [ Law2_ScGeom_FrictPhys_CundallStrack(), # contact law for sphere-sphere Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),# contact law for "internal" cylinder forces Law2_ScGridCoGeom_FrictPhys_CundallStrack(),# contact law for cylinder-sphere Law2_GridCoGridCoGeom_FrictPhys_CundallStrack() # contact law for cylinder-cylinder interaction ] ), GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'), NewtonIntegrator(gravity=(0,0,-9.81),damping=.1,label='newton'), ] youngm=1.3e11 poissonm=0.2 densitym=5300*100 ## O.materials.append(CohFrictMat(young=200e9,poisson=0.3,density=5600,frictionAngle=radians(20),normalCohesion=1e20,shearCohesion=1e20,momentRotationLaw=True,label='cMatx')) O.materials.append(FrictMat(young=200e9,poisson=0.3,density=5600,frictionAngle=radians(20),label='fMatx')) ## ## newob0=len(O.bodies) print(newob0) raduis_1=0.005 pf_1_1=O.bodies.append(gridNode([ 8.2928,-0.1, .3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25])) pf_1_2=O.bodies.append(gridNode([ 8.4928,-0.1, .3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25])) pf_1_3=O.bodies.append(gridNode([ 8.4928,-0.1, 0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25])) pf_1_4=O.bodies.append(gridNode([ 8.2928,-0.1, 0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25])) pf_1_5=O.bodies.append(gridNode([ 8.2928, 0, .3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25])) pf_1_6=O.bodies.append(gridNode([ 8.4928, 0, .3],raduis_1,wire=False,fixed=False,material='cMatx',color=[0,0,25])) pf_1_7=O.bodies.append(gridNode([ 8.4928, 0, 0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25])) pf_1_8=O.bodies.append(gridNode([ 8.2928, 0, 0],raduis_1,wire=False,fixed=True,material='cMatx',color=[0,0,25])) O.bodies.append( gridConnection(pf_1_1,pf_1_2, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_2,pf_1_3, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_3,pf_1_1, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_1,pf_1_4, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_4,pf_1_3, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_5,pf_1_6, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_6,pf_1_7, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_7,pf_1_5, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_5,pf_1_8, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_8,pf_1_7, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_4,pf_1_8, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_5,pf_1_4, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_5,pf_1_1, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_3,pf_1_7, raduis_1,material='fMatx',color=[0,0,25] )) O.bodies.append( gridConnection(pf_1_6,pf_1_3, raduis_1,material='fMatx',color=[0,0,25] )) O.bod
Re: [Yade-users] [Question #689486]: Relationship between JCF contact law parametres and particle size
Question #689486 on Yade changed: https://answers.launchpad.net/yade/+question/689486 Status: Answered => Solved Ali Rafiee confirmed that the question is solved: Thanks Luc Scholtès, 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
Re: [Yade-users] [Question #689486]: Relationship between JCF contact law parametres and particle size
Question #689486 on Yade changed: https://answers.launchpad.net/yade/+question/689486 Status: Answered => Open Ali Rafiee is still having a problem: Thanks Luc, You are right, but as you said, if the particle sizes in a sample change, consequently the porosity and also interconnectivity between particles will be changed, what will change this balanced state in the sample. how we can find limit values for cohesion and tensile strength in an independent way from particle sizes in the model? For example by adding a phase inside the code, to check this condition and adjust the parameters regarding the particle sizes in the model. Is it possible to do in interaction level for each particle to adjust these parameters just in order to have a stable condition? Thanks again Ali -- 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 #689486]: Relationship between JCF contact law parametres and particle size
Question #689486 on Yade changed: https://answers.launchpad.net/yade/+question/689486 Status: Answered => Open Ali Rafiee is still having a problem: Hi Luc, The sample is under gravity force and this happens after first iteration. Under gravity force, the force applied on each particle is proportional to its size, so if the particle is bigger to make remain in place on stable condition (without movement) it needs more cohesion force, I think. This example can be a simple rock slope with different particle size. Thanks Ali -- 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 #689486]: Relationship between JCF contact law parametres and particle size
New question #689486 on Yade: https://answers.launchpad.net/yade/+question/689486 Hi everybody, I have a question about parameter calibration, indeed I have a model in rock mass media generated by random size spheres. just in the first step, in which I try to have a stable assembly of spheres, I put the values for tensile strength and cohesion of materials in the way that sphere particles remain just without movement under imposed cohesion between particles. but I see when the particle size changes (new range of sphere sizes), I lose this preliminary stable condition and for each particle size range I should find new values for the parameters. I would like to know how one can find the approximate values for these parameters to have just a stable condition in the model (not with very high magnitude), or how these values can be related to the size of particles? Thanks a lot Take care of yourself Ali -- 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 #687209]: Grid contact with spheres having cohesive material defintion
Question #687209 on Yade changed: https://answers.launchpad.net/yade/+question/687209 Status: Open => Solved Ali Rafiee confirmed that the question is solved: I get answer. I deleted "Law2_ScGridCoGeom_FrictPhys_CundallStrack()" and it works. -- 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 #687209]: Grid contact with spheres having cohesive material defintion
New question #687209 on Yade: https://answers.launchpad.net/yade/+question/687209 Hi every one, I wanted to create a model for interaction between a grid and the spheres having rolling friction coefficient characteristics, so I modified a simple existing example "https://github.com/yade/trunk/commit/89a57e8eede6465bf11521a525ce3fc1c48a6cce";, and I modified the materiel definition for spheres as CohFrictMat in order to use rolling friction coefficient. but I don't know why this modified code does not work. Can you give me some suggestion? Thanks a lot tested by: Yade 20191214-2896~6d5e1cb~xenial1 from yade import qt,plot from yade.gridpfacet import * phi=20. E=3.*1e8 r=0.005 O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_PFacet_Aabb(), Bo1_Sphere_Aabb(), Bo1_GridConnection_Aabb() ]), InteractionLoop([ Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_GridConnection_GridConnection_GridCoGridCoGeom(), Ig2_Sphere_GridConnection_ScGridCoGeom(), Ig2_Sphere_Sphere_ScGeom(), ], [ Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), #Ip2_FrictMat_FrictMat_FrictPhys() ], [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGeom_FrictPhys_CundallStrack(), Law2_ScGridCoGeom_FrictPhys_CundallStrack(), ] ), GlobalStiffnessTimeStepper(timestepSafetyCoefficient=0.1,label='ts'), NewtonIntegrator(gravity=(0,-9.81,0),damping=.5,label='newton'), ] O.materials.append( CohFrictMat( young=0.05*E,poisson=0.3,density=2650,frictionAngle=radians(phi),normalCohesion=3e100,shearCohesion=3e100,momentRotationLaw=True,label='gridNodeMat' ) ) O.materials.append( FrictMat( young=E,poisson=0.5,density=260050,frictionAngle=radians(phi),label='sphereMat' ) ) O.materials.append( CohFrictMat( young=0.05*E,poisson=0.3,density=2650,frictionAngle=radians(phi),isCohesive=False,alphaKr=0.25, alphaKtw=0.2, momentRotationLaw=True, etaRoll=5.0,label='Sphere1' ) ) # SPHERES O.bodies.append( sphere(center=(Vector3(0.025,-0.035,0.015)),radius=.005,material='Sphere1',fixed=False) ) O.bodies.append( sphere(center=(Vector3(0.045,-0.035,0.015)),radius=.005,material='Sphere1',fixed=False) ) O.bodies.append( sphere(center=(Vector3(0.045,-0.025,0.015)),radius=.005,material='Sphere1',fixed=False) ) # GRID L=0.1 #length l=0.05 #width nbL=10 #number of nodes for the length nbl=5 #number of nodes for the width r=L/100. #radius color=[40./255.,102./255.,50./255.] nodesIds=[] #Creating all nodes: for i in range(0,nbL): for j in range(0,nbl): nodesIds.append( O.bodies.append(gridNode([i*L/nbL,-0.1,j*l/nbl],r,wire=False,fixed=False,material='gridNodeMat',color=color)) ) #Creating connection between the nodes for i in range(0,len(nodesIds)): for j in range(i+1,len(nodesIds)): dist=(O.bodies[nodesIds[i]].state.pos - O.bodies[nodesIds[j]].state.pos).norm() if(dist<=L/nbL*1.01): O.bodies.append( gridConnection(nodesIds[i],nodesIds[j],r,material='gridNodeMat',color=color) ) #PFacet Connection O.bodies.append( gridConnection(nodesIds[11],nodesIds[17],r,color=color,material='gridNodeMat') ) # Constraining the ends of the geogrid for i in range(nodesIds[0],nodesIds[4]): O.bodies[i].state.blockedDOFs='xyzXZ' for j in range(nodesIds[-1]-(5),nodesIds[-1]+1): O.bodies[j].state.blockedDOFs='xyzXZ' qt.Controller() qtv = qt.View() qtr = qt.Renderer() qtr.bgColor=[1,1,1] Gl1_Sphere.stripes=1 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 #685539]: shape orientation for Potential Block
Question #685539 on Yade changed: https://answers.launchpad.net/yade/+question/685539 Status: Expired => Open Ali Rafiee is still having a problem: Hi Vasileios, I looked at this code in C ++, but I do not have much experience in C ++. but I think, there is no problem on finding vertex coordinates, but there is a problem on the rotation operation. I'm counting on you as soon as you find time to try to fix this problem. Thank you very much Best regards Ali -- 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 #685867]: polyhedron in pfacets- mass center
Question #685867 on Yade changed: https://answers.launchpad.net/yade/+question/685867 Ali Rafiee posted a new comment: Hi every one, for my question about polyhedron in pfacet, I have not had any answer yet. Am I wrong? Best regards Ali -- 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 #685867]: polyhedron in pfacets- mass center
New question #685867 on Yade: https://answers.launchpad.net/yade/+question/685867 Hi everyone, I have a question about mass attribution for polyhedron in pfacet form. as I guess the mass in pfacet form is attributed to the nodes (if I'm right), I would like to know if one has a complex polyhedron geometrically, the mass center in this case will not be in the real position by considering the spatial distribution of its nodes. - if I'm wrong, I would like to know for a closed polyhedron in pfacet form, the mass center how is calculated? - and is there a method to give a weight for each polyhedron and the position of its mass center? Thanks a lot Ali -- 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 #685539]: shape orientation for Potential Block
Question #685539 on Yade changed: https://answers.launchpad.net/yade/+question/685539 Ali Rafiee posted a new comment: Hi Vasileios, I see that apparently you have not had time to look at this example. if you need another example I can do it. but this problem of orientation is not always solved. Thanks a lot Best regards Ali -- 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 #685539]: shape orientation for Potential Block
Question #685539 on Yade changed: https://answers.launchpad.net/yade/+question/685539 Ali Rafiee gave more information on the question: Here is a simple example with a single polyhedron. Thanks again Ali ## simple code from yade import polyhedra_utils from yade import export, ymport from yade import plot from yade import qt import itertools import numpy as np import math import random gravel = PolyhedraMat() gravel.IsSplitable = False gravel.strength = 7.9e6 gravel.density = 2678#kg/m^3 gravel.young = 5.98e7 #Pa gravel.poisson =0.3 gravel.frictionAngle = 0.5 #rad inputfil="poly-1" inputfiln=inputfil+".txt" O.materials.append(FrictMat(young=1e10,poisson=0.25,frictionAngle=radians(0.0),density=2500,label='frictionless')) ##" O.engines=[ ForceResetter(), InsertionSortCollider([PotentialBlock2AABB()],verletDist=0.01), InteractionLoop( [Ig2_PB_PB_ScGeom(twoDimension=False, unitWidth2D=1.0)], [Ip2_FrictMat_FrictMat_KnKsPBPhys(kn_i=1e8, ks_i=1e7, Knormal=1e8, Kshear=1e7, useFaceProperties=False, calJointLength=False, viscousDamping=0.2)], [Law2_SCG_KnKsPBPhys_KnKsPBLaw(label='law',neverErase=False, allowViscousAttraction=True, traceEnergy=False)] ), #GlobalStiffnessTimeStepper(), NewtonIntegrator(damping=0.0,exactAsphericalRot=True,gravity=[0,0,-9.81]), #PotentialBlockVTKRecorder(fileName='./vtk/Arch-1',iterPeriod=1,twoDimension=False,sampleX=50,sampleY=50,sampleZ=50,maxDimension=0.2,label='vtkRecorder') ] ### chosenR=0.0001 bbb=Body() wire=False color=[0,0.5,1] highlight=False bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[0.4233422835886639,-0.0,-1.0,-0.0,-0.0,-0.2544435504552162,-0.0,0.2256157225428006,0.7071067811865475], b=[-0.4658182304526213,-1.0,0.0,1.0,-0.0,-0.0,0.2924660204513265,-0.5965652970583126,-0.0], c=[-0.4658182304526213,0.0,-0.0,-0.0,1.0,-0.8250734563293101,-0.12273156061799324,-0.4512314450856012,-0.0], d=[0.9630391247904834,1.20623023977275,1.83734355291125,0.79356976022725,1.1039638685226245,1.2066387820121347,0.3419810759564882,0.7092731583297133,1.5290583284351422], id=0) utils._commonBodySetup(bbb, bbb.shape.volume, bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False) bbb.state.pos =[0.6733279600737498,3.79366976022725,6.1040638685226245] bbb.state.ori=bbb.shape.orientation #bbb.state.ori=Quaternion((0,1,0),pi) O.bodies.append(bbb) #create a polyhedron O.bodies.append(yade.ymport.textPolyhedra(inputfiln, material=gravel, shift=Vector3(0,0,0), scale=1.0)) end of Yade code poly-1.txt file 1 8 9 -1.489228487015 3.0 5.0 -1.489228487015 3.0 7.0 -1.489228487015 5.0 5.0 -0.188776910305 3.349358081818 7.832510948181 2.510771512985 3.0 5.0 2.510771512985 3.0 7.0 2.510771512985 5.0 5.0 2.510771512985 5.0 7.0 1 3 2 7 6 2 7 5 4 6 5 1 0 4 0 2 6 4 5 7 3 1 5 3 3 7 2 0 1 2 -- 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 #685539]: shape orientation for Potential Block
Question #685539 on Yade changed: https://answers.launchpad.net/yade/+question/685539 Status: Needs information => Open Ali Rafiee gave more information on the question: Hi Vasileios, I just tested this simple example with Yade 20191104-2651 bionic version, but this orientation problem persists still. I try to send you a simple MWS. I have the orientation problem with polyhedron such this one having orthogonal and oblique faces: # 9 ## Number of facets 0.6733279600737498 3.79366976022725 6.1040638685226245 # center of block 0.4233422835886639 -0.0 -1.0 -0.0 -0.0 -0.2544435504552162 -0.0 0.2256157225428006 0.7071067811865475 # a -0.4658182304526213 -1.0 0.0 1.0 -0.0 -0.0 0.2924660204513265 -0.5965652970583126 -0.0# b -0.4658182304526213 0.0 -0.0 -0.0 1.0 -0.8250734563293101 -0.12273156061799324 -0.4512314450856012 -0.0 # c 0.9630391247904834 1.20623023977275 1.83734355291125 0.79356976022725 1.1039638685226245 1.2066387820121347 0.3419810759564882 0.7092731583297133 1.5290583284351422 # d Thanks a lot Best regards Ali -- 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 #685539]: shape orientation for Potential Block
New question #685539 on Yade: https://answers.launchpad.net/yade/+question/685539 Hi everyone, I can't understand the logic of the orientation standards for Potential Block, in particular for blocks with oblique facets. I respected all the explanations from the answers to this question: https://answers.launchpad.net/yade/+question/685375 but I see some problems specially for blocks having oblique facets as for third blocks in the simple example, below. for converting a convex block to PB, I do in this way: 1-compute center of block 2-calculate new vertex coordinates with local center 3-calculate a,b,c,d for all faces 4-(d-chosenR) for all d s what gives me the output data same as below example, but when I try to create PB, it works without problem for (straight) block, but for blocks with oblique faces, they are misdirected. I don't know why? Thanks a lot Best regards Ali a simple example chosenR=0.0001 PB parts #Number of facets # center of block # aax+by+cz+d=0 # b # c # d 6 0.0 3.0 0.0 1.0 -0.0 -1.0 -0.0 -0.0 -0.0 0.0 -1.0 0.0 1.0 -0.0 -0.0 0.0 -0.0 -0.0 -0.0 1.0 -1.0 0. 1. 0. 1. 0. 0. 6 0.0 4.0 3.0 1.0 -0.0 -1.0 -0.0 -0.0 -0.0 0.0 -1.0 0.0 1.0 -0.0 -0.0 0.0 -0.0 -0.0 -0.0 1.0 -1.0 0. 0. 0. 0. 1. 1. 9 0.6733279600737498 3.79366976022725 6.1040638685226245 0.4233422835886639 -0.0 -1.0 -0.0 -0.0 -0.2544435504552162 -0.0 0.2256157225428006 0.7071067811865475 -0.4658182304526213 -1.0 0.0 1.0 -0.0 -0.0 0.2924660204513265 -0.5965652970583126 -0.0 -0.4658182304526213 0.0 -0.0 -0.0 1.0 -0.8250734563293101 -0.12273156061799324 -0.4512314450856012 -0.0 0.9630391247904834 1.20623023977275 1.83734355291125 0.79356976022725 1.1039638685226245 1.2066387820121347 0.3419810759564882 0.7092731583297133 1.5290583284351422 6 0.0 0.0 0.0 1.0 -0.0 -1.0 -0.0 -0.0 -0.0 0.0 -1.0 0.0 1.0 -0.0 -0.0 0.0 -0.0 -0.0 -0.0 1.0 -1.0 1. 0. 1. 0. 0. 0. ### -- 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 #685375]: Converting polyhedron body to Potential Particle or Potential Block
Question #685375 on Yade changed: https://answers.launchpad.net/yade/+question/685375 Ali Rafiee confirmed that the question is solved: Thanks Vasileios Angelidakis, 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
Re: [Yade-users] [Question #685375]: Converting polyhedron body to Potential Particle or Potential Block
Question #685375 on Yade changed: https://answers.launchpad.net/yade/+question/685375 Status: Answered => Solved Ali Rafiee confirmed that the question is solved: Thank you very much Vasileios for your time. I think you're right, for the moment, I have a lot to do with your detailed explanations. I'm finishing here for this question. Best Regards Ali -- 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 #685375]: Converting polyhedron body to Potential Particle or Potential Block
Question #685375 on Yade changed: https://answers.launchpad.net/yade/+question/685375 Ali Rafiee gave more information on the question: with setting dt=0.0001, my code works but I see this error message: "analytic centre did not converge" and I need more information about input parameters for BP contact law and also about PotentialBlockVTKRecorder. thanks Ali -- 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 #685375]: Converting polyhedron body to Potential Particle or Potential Block
Question #685375 on Yade changed: https://answers.launchpad.net/yade/+question/685375 Status: Answered => Open Ali Rafiee is still having a problem: Hi Vasileios, I solve the problems related to the geometric transformation, but I think I have another problem concerning parameter setting in Potential block part, because I do not know exactly how it works. 1 ## below, you can find my code for an arch structure, it should slide with 0 degree for friction angle without cohesion, but it remains without any movement. 2 ## in order to generate vtk files with PotentialBlockVTKRecorder, the input parameters such as sampleX, how are they used? Thanks a lot Best regards Ali # code part from yade import pack,export,qt,ymport import numpy as np import math import random ## O.materials.append(FrictMat(young=1e10,poisson=0.25,frictionAngle=radians(0.0),density=2500,label='frictionless')) #The normal and shear stifness values are determined in the IPhys functor, thus the young, chosenR=0.0001 O.engines=[ ForceResetter(), InsertionSortCollider([PotentialBlock2AABB()],verletDist=0.01), InteractionLoop( [Ig2_PB_PB_ScGeom(twoDimension=False, unitWidth2D=1.0)], [Ip2_FrictMat_FrictMat_KnKsPBPhys(kn_i=1e8, ks_i=1e7, Knormal=1e8, Kshear=1e7, useFaceProperties=False, calJointLength=False, viscousDamping=0.2)], [Law2_SCG_KnKsPBPhys_KnKsPBLaw(label='law',neverErase=False, allowViscousAttraction=True, traceEnergy=False)] ), #GlobalStiffnessTimeStepper(), NewtonIntegrator(damping=0.0,exactAsphericalRot=True,gravity=[0,0,-9.81]), #PotentialBlockVTKRecorder(fileName='./vtk/cubePBscaled',iterPeriod=1,twoDimension=False,sampleX=50,sampleY=50,sampleZ=50,maxDimension=0.2,label='vtkRecorder') ] ## geometry part, by A.Rafiee bbb=Body() wire=False color=[0,0.5,1] highlight=False bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[-0.0, -1.0, -0.0, -0.0, 1.0, -0.0], b=[-1.0, -0.0, -0.0, -0.0, -0.0, 1.0], c=[0.0, -0.0, -1.0, 1.0, -0.0, -0.0], d=[1.8749, 2.8124, 0.0624, 0.0624, 2.8124, 1.8749], id=0) utils._commonBodySetup(bbb, bbb.shape.volume, bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=True) bbb.state.pos =[2.125, 0.25, -0.0625] bbb.state.ori=Quaternion((0,1,0),pi) O.bodies.append(bbb) # bbb=Body() wire=False color=[0,0.5,1] highlight=False bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[-0.995184720391626, 0.0, -0.0, -0.0, -0.0, -0.19509018176012233, 1.0], b=[2.7205239199536258e-18, -1.0, -5.551115123125783e-17, 1.0, -0.0, 1.0829680583419728e-17, -1.1102230246251564e-16], c=[0.09801720409724536, -0.0, 1.0, -0.0, -1.0, -0.9807853083018742, -2.8454080613571164e-16], d=[0.337181872405393, 0.2499, 0.17967108333414306, 0.2499, 0.21030951666585695, 0.17888318179899965, 0.303692080616296], id=1) utils._commonBodySetup(bbb, bbb.shape.volume, bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False) bbb.state.pos =[0.30379208061629603, 0.25, 0.17977108333414304] bbb.state.ori=Quaternion((0,1,0),pi) O.bodies.append(bbb) # bbb=Body() wire=False color=[0,0.5,1] highlight=False bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[0.1950901817601223, 0.9569403497890105, -1.4555161670882268e-16, -0.38268355158955414, 2.262943718606007e-16, -0.9569403375852945], b=[-4.537043464545097e-17, 1.3428361705711876e-17, -0.9951847174017722, -1.466534115884631e-17, 0.9951847174017722, 2.0392625979676485e-16], c=[0.9807853083018742, -0.2902846309153932, 1.1777448297131143e-16, -0.9238794831268877, 4.976255189356365e-18, 0.290284671145658], d=[0.1717652880563909, 0.23684874980903367, 0.14917770761026583, 0.17176528561465593, 0.14917770761026589, 0.26054366159508413], id=2) utils._commonBodySetup(bbb, bbb.shape.volume, bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False) bbb.state.pos =[0.44708096679737336, 0.25006, 0.5089911606262629] bbb.state.ori=Quaternion((0,1,0),pi) O.bodies.append(bbb) # bbb=Body() wire=False color=[0,0.5,1] highlight=False bbb.shape=PotentialBlock(k=0.0, r=chosenR, R=0.0, a=[0.38268355158955414, 0.8819212004273606, 8.127355190878246e-17, -0.703541431359, 1.958258197514367e-16, -0.8819212357727806], b=[-1.2821403426828246e-16, 6.54194554658077e-17, -0.9951847260300383, -1.7972755132828346e-16, 0.9951847260300383, -1.1957524611753766e-16], c=[0.9238794831268877, -0.47139685641374757, 1.9621163966280541e-16, -0.8314695313703745, -1.0467111550412906e-16, 0.4713967902871334], d=[0.17176529181696487, 0.2368487673900063, 0.1491777089045058, 0.17176529360968104, 0.14917770890450577, 0.2605436475477011], id=3) utils._commonBodySetup(bbb, bbb.shape.volume, bbb.shape.inertia,material=
Re: [Yade-users] [Question #685375]: Converting polyhedron body to Potential Particle or Potential Block
Question #685375 on Yade changed: https://answers.launchpad.net/yade/+question/685375 Status: Answered => Open Ali Rafiee is still having a problem: Hi Vasileios, and thank you again. just without last rotation around Y axis, the obtained PB is not same as the input polyhedron regarding to its orientation. is it related to the sign of d value? I want to convert large number of polyhedra, it is not possible to check them one by one, how can I solve this issue automatically? Merci Best regards Ali -- 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 #685375]: Converting polyhedron body to Potential Particle or Potential Block
Question #685375 on Yade changed: https://answers.launchpad.net/yade/+question/685375 Status: Solved => Open Ali Rafiee is still having a problem: Thank you very much Vasileios, I tried to do this converting method, and that is my code: from yade import pack,export,qt,ymport import numpy as np import math import random ## def dotproduct(v1, v2): return sum((a*b) for a, b in zip(v1, v2)) def length(v): return math.sqrt(dotproduct(v, v)) def veccc(pp1,pp2): pp3=[pp2[0]-pp1[0],pp2[1]-pp1[1],pp2[2]-pp1[2]] if length(pp3)>0: pp3=[pp3[0]/length(pp3),pp3[1]/length(pp3),pp3[2]/length(pp3)] return pp3 ### calculate d value of a surface with normal vector and one point def dvalue(vecn1,pp1): dd1=-1*(vecn1[0]*pp1[0]+vecn1[1]*pp1[1]+vecn1[2]*pp1[2]) return dd1 powderDensity = 2000 distanceToCentre = 0.5 meanSize = 1.0 wallThickness = 0.5*meanSize O.materials.append(FrictMat(young=-1,poisson=-1,frictionAngle=radians(0.0),density=powderDensity,label='frictionless')) #The normal and shear stifness values are determined in the IPhys functor, thus the young, young = 1e9 density=2500 FricDegree1= atan(.6) m = PolyhedraMat() m.density = density m.young = young m.poisson = 0.25 m.frictionAngle = FricDegree1 c1=polyhedron(((0.6250,0.,0.),(0.6250,0.5000,0.),(0.65382210,0.5000,0.29263550),(0.65382210,0.,0.29263550),(0.16342940,0.5000,0.39018060),(0.16342940,0.,0.39018060),(0.,0.5000,0.39018060),(0.,0.,0.39018060),(0.,0.5000,0.),(0.,0.,0.)),material=m) O.bodies.append(c1) chosenR=0.001 for b in O.bodies: aa=[] bb=[] cc=[] dd=[] if not isinstance(b.shape,Polyhedra): # skip non-polyhedra bodies continue vs = [b.state.pos + b.state.ori*v for v in b.shape.v] # vertices in global coords #print(len(vs)) face2=[] face2=b.shape.GetSurfaces() #print(face2) #print(vs) id1=0 while id12: vec1=veccc(vs[face11[2]],vs[face11[1]]) vec2=veccc(vs[face11[0]],vs[face11[1]]) vects=[] vects = list(np.cross(vec1, vec2)) #print(vects) dvalue2=dvalue(vects,vs[face11[0]]) #print("***") #print(dvalue2) dv=dvalue2-chosenR if dv<0: vects=[-1*vects[0],-1*vects[1],-1*vects[2]] dv=-1*dv aa.append(vects[0]) bb.append(vects[1]) cc.append(vects[2]) dd.append(dv) id1=id1+1 #print(aa) #print(bb) #print(cc) #print(dd) after that how can put correct values for PotentialBlock() ? bbb=Body() wire=False color=[0,0.5,1] highlight=False bbb.shape=PotentialBlock(k=0.001, r=chosenR, R=chosenR, a=aa, b=bb, c=cc, d=dd, id=len(O.bodies)) utils._commonBodySetup(bbb, bbb.shape.volume, bbb.shape.inertia,material='frictionless', pos=[0,0,0], fixed=False) bbb.state.pos = [-2,0,0] lidID = O.bodies.append(bbb) ### the values for a, b, c and d are obtained, but I can't complete all parameters required by PotentialBlock() command just with these 4 parameters. in any case, I do not know how to complete the last phase of this geometric transformation. Thanks again Ali -- 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 #685375]: Converting polyhedron body to Potential Particle or Potential Block
Question #685375 on Yade changed: https://answers.launchpad.net/yade/+question/685375 Status: Answered => Solved Ali Rafiee confirmed that the question is solved: Thanks Vasileios Angelidakis, 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
[Yade-users] [Question #685375]: Converting polyhedron body to Potential Particle or Potential Block
New question #685375 on Yade: https://answers.launchpad.net/yade/+question/685375 Dear all, I would like to know if there is a method for converting polyhedron objects to geometric format of potential particle or not. Thanks a lot Ali -- 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 #685203]: problem in moving particles and existence of weight force on each particle
Question #685203 on Yade changed: https://answers.launchpad.net/yade/+question/685203 Ali Rafiee proposed the following answer: Hi, as I can see from your model, in fact you are trying to model the "block caving". if you want to model it, that will be very difficult with polyhedra in Yade, as you will have large number of polyhedra in your model, and it is very time consuming, as I know. but for just a simple model, it will be better to use stl format for your boundary as facet objects in Yade, and put your polyhedrons inside. another solution will be to use DFN method with spheres for which Yade is more adapted. good luck Ali -- 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 #684018]: unbreakable clumps to breakable ones(glued spheres)
New question #684018 on Yade: https://answers.launchpad.net/yade/+question/684018 Hi everyone, I'm trying to convert a compact clumps to a glued spheres; the spheres inside of each clump become cohesive meanwhile the spheres of two different clumps remain without cohesion, however they may be in contact after compaction phase. I know this type of operation is possible in Yade, but I seek a method more practical in the way that after releasing spheres from a clump the spheres inside this clump become cohesive with a given cohesive material definition. Thanks a lot -- 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 #670852]: remote interaction, net&wire mats attribution by sphere's material
Question #670852 on Yade changed: https://answers.launchpad.net/yade/+question/670852 Status: Open => Solved Ali Rafiee confirmed that the question is solved: Thanks Jan Stránský, 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
Re: [Yade-users] [Question #670852]: remote interaction, net&wire mats attribution by sphere's material
Question #670852 on Yade changed: https://answers.launchpad.net/yade/+question/670852 Status: Answered => Open Ali Rafiee is still having a problem: Thanks Jan, I completed the script in this way, and it seems to be correct now? #=== # -*- coding: utf-8 -*- from yade import plot, qt tolerance=0.01 errors=0 define parameters for the net # wire diameter d = 2.7/1000. # particle radius radius = d*4. # define piecewise lineare stress-strain curve strainStressValues=[(0.0019230769,2.5e8),(0.0192,3.2195e8),(0.05,3.8292e8),(0.15,5.1219e8),(0.25,5.5854e8),(0.3,5.6585e8),(0.35,5.6585e8)] # elastic material properties particleVolume = 4./3.*pow(radius,3)*pi particleMass = 3.9/1000. density = particleMass/particleVolume young = strainStressValues[0][1] / strainStressValues[0][0] poisson = 0.3 material definition netMat = O.materials.append( WireMat( young=young,poisson=poisson,frictionAngle=radians(30),density=density,isDoubleTwist=True,diameter=d,strainStressValues=strainStressValues,lambdaEps=0.4,lambdak=0.66) ) wireMat = O.materials.append( WireMat( young=young,poisson=poisson,frictionAngle=radians(30),density=density,isDoubleTwist=False,diameter=3.4/1000,strainStressValues=strainStressValues ) ) get net s1=O.bodies.append(sphere([-0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s2=O.bodies.append(sphere([-0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s3=O.bodies.append(sphere([0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s4=O.bodies.append(sphere([0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s5=O.bodies.append(sphere([0,0.15,0],radius=0.01,wire=False,highlight=False,fixed=True, color=[1,0,0],material=wireMat)) s6=O.bodies.append(sphere([0,0.1,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,0,1],material=wireMat)) s7=O.bodies.append(sphere([0,0,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,0,1],material=wireMat)) s8=O.bodies.append(sphere([0,-0.05,0],radius=0.01,wire=False,highlight=False,fixed=True, color=[1,0,0],material=wireMat)) "" define engines to create link interactionRadius=1 # value has to be adjusted according to the particle size of the net and the mesh opening size of the net (check always if links are created) O.engines=[ ForceResetter(), InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=interactionRadius,label='aabb')]), InteractionLoop( [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=interactionRadius,label='Ig2ssGeom')], [Ip2_WireMat_WireMat_WirePhys(linkThresholdIteration=1,label='wire_wire'),Ip2_FrictMat_FrictMat_FrictPhys(label='block_wire')], [Law2_ScGeom_WirePhys_WirePM(linkThresholdIteration=1,label='Law_1'),Law2_ScGeom_FrictPhys_CundallStrack(label='Law_2')] ), NewtonIntegrator(gravity=(0.,0,-10),damping=0.5,label='newton'), ] # O.dt=1e-5 dd=createInteraction( s3,s6 ) createInteraction( s1,s6 ) createInteraction( s2,s1 ) createInteraction( s7,s2 ) createInteraction( s7,s4 ) createInteraction( s4,s3 ) createInteraction( s6,s5 ) createInteraction( s8,s7 ) ## O.step() aabb.aabbEnlargeFactor=-1. Ig2ssGeom.interactionDetectionFactor=-1. print dd.phys v = qt.Controller() v = qt.View() rr = qt.Renderer() rr.intrAllWire = True # O.run(2) #=== -- 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 #670852]: remote interaction, net&wire mats attribution by sphere's material
Question #670852 on Yade changed: https://answers.launchpad.net/yade/+question/670852 Status: Needs information => Open Ali Rafiee gave more information on the question: Hello Jan, in below simple example you can see my question in the model. I tried to have all of possible cases. I created my interactions before O.engines by createInteraction command, and I suppose this command works for this type of interaction creation. thanks a lot Ali = # -*- coding: utf-8 -*- from yade import plot, qt tolerance=0.01 errors=0 define parameters for the net # wire diameter d = 2.7/1000. # particle radius radius = d*4. # define piecewise lineare stress-strain curve strainStressValues=[(0.0019230769,2.5e8),(0.0192,3.2195e8),(0.05,3.8292e8),(0.15,5.1219e8),(0.25,5.5854e8),(0.3,5.6585e8),(0.35,5.6585e8)] # elastic material properties particleVolume = 4./3.*pow(radius,3)*pi particleMass = 3.9/1000. density = particleMass/particleVolume young = strainStressValues[0][1] / strainStressValues[0][0] poisson = 0.3 material definition netMat = O.materials.append( WireMat( young=young,poisson=poisson,frictionAngle=radians(30),density=density,isDoubleTwist=True,diameter=d,strainStressValues=strainStressValues,lambdaEps=0.4,lambdak=0.66) ) wireMat = O.materials.append( WireMat( young=young,poisson=poisson,frictionAngle=radians(30),density=density,isDoubleTwist=False,diameter=3.4/1000,strainStressValues=strainStressValues ) ) get net s1=O.bodies.append(sphere([-0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s2=O.bodies.append(sphere([-0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s3=O.bodies.append(sphere([0.04,0.075,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s4=O.bodies.append(sphere([0.04,0.025,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,1,0],material=netMat)) s5=O.bodies.append(sphere([0,0.15,0],radius=0.01,wire=False,highlight=False,fixed=True, color=[1,0,0],material=wireMat)) s6=O.bodies.append(sphere([0,0.1,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,0,1],material=wireMat)) s7=O.bodies.append(sphere([0,0,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[0,0,1],material=wireMat)) s8=O.bodies.append(sphere([0,-0.05,0],radius=0.01,wire=False,highlight=False,fixed=False, color=[1,0,0],material=wireMat)) createInteraction( s3,s6 ) createInteraction( s1,s6 ) createInteraction( s2,s1 ) createInteraction( s7,s2 ) createInteraction( s7,s4 ) createInteraction( s4,s3 ) createInteraction( s6,s5 ) createInteraction( s8,s7 ) ## v = qt.Controller() v = qt.View() rr = qt.Renderer() rr.intrAllWire = True == -- 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 #670852]: remote interaction, net&wire mats attribution by sphere's material
New question #670852 on Yade: https://answers.launchpad.net/yade/+question/670852 Hi, I have a question about the definition of material given to a remote interaction between two spheres with for example one having netMat and other one wireMat material. in fact, I am trying to create a model of net (at least with two different types of cable) by createInteraction method, but I not sure my below hypothesis is correct or not? 1- sphere netMat with sphere netMat = remote interaction in netMat 2- sphere netMat with sphere wireMat = remote interaction in netMat ??? 3- sphere wireMat with sphere wireMat = remote interaction in wireMat I hope my question is clear. Thank you very much, Ali -- 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@lists.launchpad.net
New question #670838 on Yade: https://answers.launchpad.net/yade/+question/670838 Hi everyone, I was trying to model a simple test for cohesive condition between a sphere and two small multi-parts cylinders created by gridconnection. this is a simple example just to show problem itself. while one cylinder remains in cohesive contact with fixed sphere but other one that is also in cohesive contact condition disappear from the model! thanks a lot Ali my simple script: #= # encoding: utf-8 """ Same example as CohesiveCylinderSphere.py but using gridConnections instead of chainedCylinder. """ from yade import qt from yade.gridpfacet import * from numpy import linspace ### Engines need to be defined first since the function gridConnection creates the interaction O.engines=[ ForceResetter(), InsertionSortCollider([ Bo1_Sphere_Aabb(), Bo1_GridConnection_Aabb(), ]), InteractionLoop( # Geometric interactions [ Ig2_GridNode_GridNode_GridNodeGeom6D(), Ig2_Sphere_GridConnection_ScGridCoGeom(), # used for the cohesive sphere-cylinder interaction ], [ # Interaction phusics Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False), ], # Interaction law [ Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), Law2_ScGridCoGeom_CohFrictPhys_CundallStrack(), # used for the cohesive sphere-cylinder interaction ] ), NewtonIntegrator(gravity=(0,-9.81,0),damping=0.7,label='newton'), ] O.dt=1e-7 O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=3000,frictionAngle=radians(30),normalCohesion=1e15,shearCohesion=1e15,momentRotationLaw=True,label='gridNodeMat')) O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=3000,frictionAngle=radians(30),normalCohesion=1e15,shearCohesion=1e15,momentRotationLaw=True,label='gridCoMat')) O.materials.append(CohFrictMat(young=8e5,poisson=0.3,density=3000,frictionAngle=radians(30),normalCohesion=1e15,shearCohesion=1e15,momentRotationLaw=False,label='spheremat')) rCyl=0.005 p1=O.bodies.append(gridNode([-0.3,0,0],rCyl,wire=False,fixed=False,material='gridNodeMat')) p2=O.bodies.append(gridNode([0.4,0,0],rCyl,wire=False,fixed=False,material='gridNodeMat')) p3=O.bodies.append(gridNode([0.15,0,0],rCyl,wire=False,fixed=False,material='gridNodeMat')) p4=O.bodies.append(gridNode([0,-0.3,0.02],rCyl,wire=False,fixed=False,material='gridNodeMat')) p5=O.bodies.append(gridNode([0,0.4,0.02],rCyl,wire=False,fixed=False,material='gridNodeMat')) p6=O.bodies.append(gridNode([0,0.1,0.02],rCyl,wire=False,fixed=False,material='gridNodeMat')) O.bodies.append( gridConnection(p1,p3,rCyl,material='gridCoMat')) O.bodies.append( gridConnection(p3,p2,rCyl,material='gridCoMat')) O.bodies.append( gridConnection(p4,p6,rCyl,material='gridCoMat')) O.bodies.append( gridConnection(p6,p5,rCyl,material='gridCoMat')) IdSphere=O.bodies.append(sphere([0.0,0,0.01],rCyl,wire=False,fixed=False,material='spheremat')) O.bodies[-1].state.blockedDOFs='xyzXYZ' 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