[Yade-users] [Question #632092]: CohFrictMat fragile mode does not break interaction

2017-05-10 Thread loiseaurare
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

2017-05-10 Thread Xavier Thurman
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.

2017-05-10 Thread Ed Carlos Alves Rocha
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

2017-05-10 Thread behzad
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

2017-05-10 Thread Anton Gladky
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

2017-05-10 Thread Klaus Thoeni
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

2017-05-10 Thread Klaus Thoeni
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

2017-05-10 Thread Launchpad Janitor
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