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

2018-02-13 Thread Anay Joshi
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

2018-02-13 Thread feda
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

2018-02-13 Thread Bruno Chareyre
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

2018-02-13 Thread Bruno Chareyre
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

2018-02-13 Thread Jan Stránský
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

2018-02-13 Thread JOHN
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?

2018-02-13 Thread Andrea Puglisi
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

2018-02-13 Thread JOHN
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

2018-02-13 Thread JOHN
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