Re: [Yade-users] [Question #643878]: Uniaxial strainer source

2017-06-20 Thread loiseaurare
Question #643878 on Yade changed:
https://answers.launchpad.net/yade/+question/643878

loiseaurare 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 #643878]: Uniaxial strainer source

2017-06-20 Thread loiseaurare
Question #643878 on Yade changed:
https://answers.launchpad.net/yade/+question/643878

Status: Answered => Solved

loiseaurare confirmed that the question is solved:
All right, thanks a lot guys for all your answers. I got a little bit
confused and thought I could plot stress and sigma for a Brazilian test
using the features of the uniaxial strainer, which are obviously not
adapted. I mean, I guess you could set the cross section area so that
you would actually have the rigth tensile stress, but the strain would
have to be change I think.

I' m just going to plot force-displacement for now !

cheers, and thanks a lot for your attention and time,

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


Re: [Yade-users] [Question #643878]: Uniaxial strainer source

2017-06-19 Thread loiseaurare
Question #643878 on Yade changed:
https://answers.launchpad.net/yade/+question/643878

Status: Answered => Open

loiseaurare is still having a problem:
Hi Jerome and Jan,
Thanks for your explanation, after re-reading it the documentation seems now 
clearer to me, I guess my hesitation about the Negative and Positive Ids came 
from the fact that I did not have a visual support, maybe it could be 
worthwhile to add the image from [1] in the documentation, if so can be done

[1] http://beta.arcig.cz/lide/eudoxos/smilauer2010-phd-thesis.pdf

I have another question related to the calculation of average stress :
is it possible to obtain the cross section used by uniaxial strainer for
the calculation ? I mean it's location.

>From what I read it seems like if one would like to adapt
uniaxialStrainer to implement a Brazilian test, the crossSection area
would have to be specified in order to get the correct tensileSigma
right ?  Otherwise, it seems to me like the convex hull would define the
cross section area a bit fantastically.

Or maybe it would'nt be right to use avgSigma at all, and it should be
calculated using the force recording ?

-- 
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 #643878]: Uniaxial strainer source

2017-06-15 Thread loiseaurare
Question #643878 on Yade changed:
https://answers.launchpad.net/yade/+question/643878

Status: Answered => Open

loiseaurare is still having a problem:
Hi Jan, thanks for your answer. Let me precise my question : when you
say they are the ids of bodies of one or the other side, what are we
talking about ?

Are they the one and other side of a middle plan defined along the
straining axis or perpendicular to this one ?

-- 
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 #643878]: Uniaxial strainer source

2017-06-14 Thread loiseaurare
New question #643878 on Yade:
https://answers.launchpad.net/yade/+question/643878

Hi everybody, 

I am trying to understand how exactly are calculated averageStress and strain 
in the uniaxialStrainer class.
I am not sure  understand what means "negativeIds" or "positiveIds", or why 
those have been defined in that way, and I am not familiar with cpp, so I 
thought I'd ask fo a bit of help on that issue.

If anybody can help, I'd be glad !

Cheers all, 
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


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

2017-05-15 Thread loiseaurare
Question #632092 on Yade changed:
https://answers.launchpad.net/yade/+question/632092

loiseaurare posted a new comment:
Hi Bruno and Janek,

Thanks for your answers, somehow I had come to the same conclusion. Now,
what happens is exactly as you describe it, there is bond breakage when
the strength limit is reached, and at the next step, contact is reset,
but in a frictional way, with effectively unp set back to zero. That
causes instability in a lot of my simulations using the feature fragile
= True, because when Fragile = false the interaction Force stays on the
strenght limit until the particles are set apart. Now, since this is
microscale behavior, maybe I could achieve in doing what I want using
microscale platic behavior, and calibrating it that way. However, I
still feel it is physically more correct to describe rock behavior as
fragile at the micro level ...

To give you more information, I have been testing the sensitivity of
this overlapping problem, I was thinking that maybe a very small initial
overlap would prevent the "jump" in forces to be too strong, or maybe
setting a high value of cohesion would allow the particles to break away
before strenght limit could be reached. But I have found that even a
very small value of overlap with a high value of cohesion definitively
messes the data, and actually usually make the sample explode.

Now, this feature, of keeping fn = 0 until the particles are set apart is what 
is implemented in jcfPM I think, so that was probably the choice made by Luc 
Scholtes.
I don't understand it when you say that some volume will be created overall, 
can you maybe be a little more specific ?

-- 
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 #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


Re: [Yade-users] [Question #631624]: How to select a proper model to model breakage of brittle material

2017-05-08 Thread loiseaurare
Question #631624 on Yade changed:
https://answers.launchpad.net/yade/+question/631624

Status: Open => Answered

loiseaurare proposed the following answer:
Hi Xavier,

In [1], you should find a way of making packings with differents shapes, if I 
understood well what you are after ?
I think the main idea is, you've got you're randomDensePack, and comparing it 
with the predicates it return true or false according to the positions of the 
spheres. I think randomDensePack does perform compression on the packing...

I' m not sure I answered you question, did I understand what you were
after?

[1] https://yade-
dem.org/doc/search.html?q=predicate&check_keywords=yes&area=default

-- 
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 #631624]: How to select a proper model to model breakage of brittle material

2017-05-08 Thread loiseaurare
Question #631624 on Yade changed:
https://answers.launchpad.net/yade/+question/631624

Status: Open => Answered

loiseaurare proposed the following answer:
Hello Xavier,

Really ? I have had so many troubles with the CohFrictMat, I prefer the
JCFPMmat, I find it a lot more stable. What kind of simulation have you
implemented ?

I think, but I'm not an expert here, that those parameter are related to
bending and twisting moments, I guess they depend on the type of
material you are using, and how you would like to describe interactions
of particles with one another. So I think it also depends on the scale
of your particles.

So, a clump is unbreakable, so I would say it is not the best to model
crushing or breakage^^ You could however use clumps to model irregularly
shaped particles. I think I saw another thread on the launchpad of a guy
modelling crushing of particles with agglomerates, can't find it right
now, but you should try and have  look in the topics !

-- 
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 #631624]: How to select a proper model to model breakage of brittle material

2017-05-07 Thread loiseaurare
Question #631624 on Yade changed:
https://answers.launchpad.net/yade/+question/631624

Status: Open => Answered

loiseaurare proposed the following answer:
Hi Xavier,

I am also working on the modelling of breakage of rock, and have been
investigating that question for a bit of time.

I have found that CohFrictMat and JCFpmMat are quite similar, meaning they have 
the same expression of contact stiffnesses, however JCFpmMat has a few built in 
functions that come in handy :
the "equilibrium distance" is automatically set when creating a pack of 
spheres, while for the moment you still have to set it manually when you write 
a script using CohFrict Mat, although I think someone might be implementing 
that precise feature.

With JCFpmMat the number of shear-broken or tensile broken bonds is
tracked automatically, so that's quite cool as well, because you can
easily track bond failure. Don't think such a function is implemented in
CohFrictMat.

However it is not clear to me how you handle plastic behavior with
JCFpm, while it is a bit more clearer with CohFrictMat.

Oh, and in JCFpm you can introduce weak planes, that could represent
foliated plans in a rock for example, depends which kind of rock you
want to model, but it seems like a good way to introduce macro-scale
defect, and maybe microscale.


CpmMat is a bit different, because it was designed for concrete material. The 
parameters used to describe the model are eps and sigma limit, whereas in the 
two other models you work with shearCohesion and tensileCohesion In the 
examples on CPMMat you can find a uniaxial test on a sample that is a good 
starting point for some calibration model.

As far as I know, none of those contact law include viscous damping
though

Hope that was of any help,
Cheers

-- 
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 #273426]: Calculate the energy released when the bond between two particles breaks

2017-05-03 Thread loiseaurare
Question #273426 on Yade changed:
https://answers.launchpad.net/yade/+question/273426

loiseaurare posted a new comment:
Hi Jerome,

Do you have any more informations about that state function ?
Like, what does mean "broken" from that point of view ? Does it consider the 
initial cohesive interactions only ?
I wasn't able to get that when looking at the yade code...

-- 
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 #630910]: Uniaxial test with CohFrictMat

2017-05-03 Thread loiseaurare
Question #630910 on Yade changed:
https://answers.launchpad.net/yade/+question/630910

Status: Answered => Solved

loiseaurare confirmed that the question is solved:
Hi Jan !

Oh ok, I thought using the O.bodies.dynamic = False on the first loop
would work, like I saw in [2], but I guess this only freezes movement
and not force  development ?

Anyway, thanks, that solved my problem.

-- 
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 #630910]: Uniaxial test with CohFrictMat

2017-05-03 Thread loiseaurare
Question #630910 on Yade changed:
https://answers.launchpad.net/yade/+question/630910

loiseaurare 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


[Yade-users] [Question #630910]: Uniaxial test with CohFrictMat

2017-05-02 Thread loiseaurare
New question #630910 on Yade:
https://answers.launchpad.net/yade/+question/630910

Hi everybody, 

I am trying to determine which cohesive contact law I should be using in order 
to model rock fragmentation. So I have been implementing tests on JcfPM, 
CohFrictMat and CpmMat.

I have adapted the uniaxial tension-Compression Test from CpmMat examples in 
order to use it with both CohfrictMat and JcfPM.

Seems to work not too badly with JcfPM (although I can't see fracture), but 
there is an issue with the CohfrictMat.

When I try to run the test there is an initial value of averageStress that is 
very high,  up to -102754.2 pa. 

This values quickly goes back to around zero, and then increases in an 
'expectable' way, but that messes up the curve a lot, and I haven't been able 
to find to what it is due ? 

I have tried setting the equilibrium distance following this thread : 
https://answers.launchpad.net/yade/+question/266828, but that didn't change 
much ( plus I wouldn't expect initial overlapping forces to be that great ?)

I have also noticed that another script posted by a Yade user, also an 
adaptation of the CPM uniaxialcompression test but using CohFrictMat, on  this 
thread https://answers.launchpad.net/yade/+question/372295, may also be facing 
the same problem.

The averageStress that I get running this code ( modifying the packing in order 
for the warning about porosity to disappear) is -1027113730.45 Pa. Then this 
value also decreases inexpectantly.

The adaptation with JCFpm shows no sign of such a problem, although I am using 
the exact same set of parameters

Any ideas on what is going on ?

Here is the code 


# -*- coding: utf-8 -*-
from __future__ import division

from yade import plot,pack,timing
import time, sys, os, copy

#import matplotlib
#matplotlib.rc('text',usetex=True)
#matplotlib.rc('text.latex',preamble=r'\usepackage{concrete}\usepackage{euler}')


def addPlotData():
yade.plot.addData   
({'t':O.time,'i':O.iter,'eps':strainer.strain,'sigma':strainer.avgStress+isoPrestress,

'sigma.25':forcesOnCoordPlane(coord_25,axis)[axis]/area_25+isoPrestress,

'sigma.50':forcesOnCoordPlane(coord_50,axis)[axis]/area_50+isoPrestress,

'sigma.75':forcesOnCoordPlane(coord_75,axis)[axis]/area_75+isoPrestress,
})



# default parameters or from table
readParamsFromTable(noTableOk=True, # unknownOk=True,
young=1e9,
poisson=0.25,

densityCohFrictMat = 2600.,
FrictAngSphere = 30.*pi/180.,
NCohesionCohFrictMat = 4000,
SCohesionCohFrictMat = 4000,


intRadius=1.5,
dtSafety=.8,
damping=0.4,
strainRateTension=.0005,
strainRateCompression=.005,
setSpeeds=True,
# 1=tension, 2=compression (ANDed; 3=both)
doModes=3,

specimenLength=0.05,
specimenRadius=0.1,
sphereRadius=3.5e-3,

# isotropic confinement (should be negative)
isoPrestress=0.
)

from yade.params.table import *

if 'description' in O.tags.keys(): 
O.tags['id']=O.tags['id']+O.tags['description']


# make geom; the dimensions are hard-coded here; could be in param table if 
desired

O.materials.append(
 CohFrictMat(
 young=young,
 frictionAngle=FrictAngSphere,
 poisson=poisson,
 density=densityCohFrictMat,
 normalCohesion=NCohesionCohFrictMat,
 shearCohesion=SCohesionCohFrictMat,
 fragile = True,
 label = 'concreteId'))

sps=SpherePack()
sp=pack.randomDensePack(
 pack.inCylinder(
 (0,0,-.5*specimenLength),(0,0,.5*specimenLength),specimenRadius),
 spheresInCell=2000,radius=sphereRadius,
 memoizeDb='/tmp/   triaxPackCache.sqlite',returnSpherePack=True)


sp.toSimulation(material='concreteId')


bb=uniaxialTestFeatures(axis = 2)
negIds,posIds,axis,crossSectionArea=bb['negIds'],bb['posIds'],bb['axis'],bb['area']
O.dt=dtSafety*PWaveTimeStep()
print 'Timestep',O.dt

mm,mx=[pt[axis] for pt in aabbExtrema()]
coord_25,coord_50,coord_75=mm+.25*(mx-mm),mm+.5*(mx-mm),mm+.75*(mx-mm)
area_25,area_50,area_75=approxSectionArea(coord_25,axis),approxSectionArea(coord_50,axis),approxSectionArea(coord_75,axis)




O.engines=[
ForceResetter(),

InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intRadius,label='is2aabb')],verletDist=.05*sphereRadius),
InteractionLoop(

[Ig2_Sphere_Sphere_ScGeom6D(interactionDetectionFactor=intRadius,label='ss2sc')],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True)],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm = 
True, label='cohlaw')]
),
NewtonIntegrator(damping=damping,label='damper'),


UniaxialStrainer
(   

strainRate=strainRateTension,axis=axis,asymmetry=0,
posIds=posIds,negIds=negIds,
crossSectionArea=crossSectionArea,blockDisplacements=False,
 

Re: [Yade-users] [Question #630468]: CPMMat Stiffness formulation versus other cohesive laws

2017-04-30 Thread loiseaurare
Question #630468 on Yade changed:
https://answers.launchpad.net/yade/+question/630468

loiseaurare posted a new comment:
Hi Robert,

Thanks for the answer on the Aeq quantity, I suspected something like
that but was unsure...

Well, you've asked my second question, I also wonder why in the
formulation of this contact law he chose to use the minimum of the two.
Maybe the CPM mat was meant to be used for materials with an homogeneous
size distribution in the particles ? Or to model granular material at a
scale where particles do not represent material particles, and thus
might not need a specific size distribution. Then the difference of
radius between two given spheres could be neglected ?

However, since in this formulation the li~ equals Aeq over li, I am
right in assuming that the li distance corresponds to ri ?

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 #630468]: CPMMat Stiffness formulation versus other cohesive laws

2017-04-30 Thread loiseaurare
New question #630468 on Yade:
https://answers.launchpad.net/yade/+question/630468

Hi everybody, 

I have been browsing through the description of different cohesive contact 
laws, and I am now trying to understand the differences between JCFpmMat, 
CPMMat and cohFrictMat.

My question is on the formulation on the contact normal stiffness Kn, 

I read in the JcfPMMat and CPMMat description that this is defined by the 
function kn = 2*EcRaRB/(Ra+Rb)
Ec being the "Young modulus" parameter introduced in each of those contact 
laws, that actually does NOT define macroscopical youngs modulus. Ra and Rb 
being the radiuses of the two interacting particles.

In Dr Smilauer thesis, this formulation is introduced in a more general way, 
stating that kn in the algorithm is computed with the formula :

kn = k1k2/(K1 + K2)  => kn = E1l1~*E2l2~/(E1l1~+E2l2~) . Assuming that E1 and 
E2 are the same between the two particles, this yields

kn = E(l1~*l2~)/(l1~+l2~)

It is then precised in the thesis that for 'The most used class computing 
interaction properties Ip2_FrictMat_FrictMat_FrictPhys uses  ̃ l i~= 2ri. "

I think that Cohfrictmat and JcfPMat also use this formulation, am I correct ?

Then the concept of the equivalent cross section is introduced, as being 
another way to define the li~ length.

"Some formulations define an equivalent cross-section A eq , which in that case 
appears in the  li~ term 
as Ki = E i  * l i~ = Ei Aeq/li . Such is the case for the concrete model 
(Ip2_CpmMat_CpmMat_CpmPhys)
described later, where A eq = min(r 1 , r 2 ) "

And that is where I get lost. I do not understand the dimension of this Aeq 
over li quantity. I think that in the way it is expressed here, it actually has 
no dimension, where it should have a m dimension ?

If anybody can give a hint, I will appreciate ! 
Thanks in advance,
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


Re: [Yade-users] [Question #266828]: How to reset the repulsive forces at the beginning of a compression test

2017-04-30 Thread loiseaurare
Question #266828 on Yade changed:
https://answers.launchpad.net/yade/+question/266828

loiseaurare posted a new comment:
Well, 
Thanks Bruno and Jerome, I understood this issue. I am still working on 
understanding how Yade fully works.

that's why I read archives !

Regards,

-- 
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 #266828]: How to reset the repulsive forces at the beginning of a compression test

2017-04-27 Thread loiseaurare
Question #266828 on Yade changed:
https://answers.launchpad.net/yade/+question/266828

loiseaurare posted a new comment:
Hi Jerome,

I have been reading your comment on the introduction of an equilibrium distance 
using cohFrictMat.
I am not sure I understood properly what you point out :  my interrogation 
comes from reading this previous thread
 --> https://answers.launchpad.net/yade/+question/295035,

where the problem of initial offset or undesired movements was not
raised.

I do not understand why there should be a problem in the first
computational loop, is it not possible to loop over all interactions in
order to set i.phys.unp = i.geom.penetrationDepht BEFORE entering the
actual computation loop ? Or does Yade need to actually perform a first
loop in order to set initial values of the simulation ?

Plus, I was also reading the thread
https://answers.launchpad.net/yade/+question/269724

 discussing whether Yade would match the BPM model features, and you
mentioned that in JCFpmMat, the initial distance between particles is
automatically set as the equilibrium distance ? So there is no need to
use the initD function in order to achieve a zero stress state for
initial overlapping particles using that contact law ?

Regards

-- 
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 #629227]: TriaxialStressController does not compute

2017-04-26 Thread loiseaurare
Question #629227 on Yade changed:
https://answers.launchpad.net/yade/+question/629227

loiseaurare confirmed that the question is solved:
Thanks Jérôme Duriez, 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 #629227]: TriaxialStressController does not compute

2017-04-26 Thread loiseaurare
Question #629227 on Yade changed:
https://answers.launchpad.net/yade/+question/629227

Status: Answered => Solved

loiseaurare confirmed that the question is solved:
Hi Jerome,

sorry about the error in the title, I've corrected it by now, so it is
not misleading !

you were actually right, in my code the walls were appended after the
spheres, so this was in some way related to my use of the clump function
: in the original code the spheres are appended at the same time as the
clump is created,  and I had them appended before and clumped afterwards
! So the walls where not recognized as being part of the triax.

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 #629227]: TriaxialStressController does not compute

2017-04-26 Thread loiseaurare
Question #629227 on Yade changed:
https://answers.launchpad.net/yade/+question/629227

Summary changed to:
TriaxialStressController does not compute

Description changed to:
Hi everybody,

I'm having a bit of a trouble here with the TriaxialStressController.
Sad thing is, I'm sure it is stupid, but I really can't get round the
problem.

I have adapted the agglomerate examples from github, in order to create
a packed sample of agglomerates ( which it already did, but in three
different simulations, and I wanted just one).

I am having trouble with the compaction process, it seems like the triax would 
simply not work.
I ran the simulation, and found the sample had'nt been packed. I have modifies 
the code in order that when I run the simulation, it will produce the 
agglomerates, and I could press run so that I see if anything is going wrong or 
happening. Well, seems that the walls don't move.

I tried activating the walls, like in the triax example (scenery 2), but that 
didn't change much.
Do you think maybe it is the clump function ? I haven't found that 
O.bodies.clump is much used, you can find much more on appendClumped, so I 
wondered if maybe the clump function did not fix particles in space or 
something...

the code is there :

# -*- coding: utf-8 -*-

from yade import export
from yade import export,ymport
import random



dim= (15,15,15) # dimensions for makeCloud
radius = 1
fuzz   = 0.2

# use of makeCloud function
sp = pack.SpherePack()
sp.makeCloud((0,0,0), dim, rMean=radius, rRelFuzz=fuzz, seed=1)


random.seed(1) # to make colors always the same

attrs = []

colors = [randomColor() for s in sp]
# each macroparticle is filled randomDensePack
for si,s in enumerate(sp):
sphere = pack.inSphere(s[0],s[1])
sp1 = pack.randomDensePack(
sphere,
spheresInCell = 500,
radius = .2,
memoizeDb = '/tmp/agglomeratepackaux.db',
returnSpherePack = True,
)
ids = sp1.toSimulation(color=colors[si]) # add the result to simulation 
with uniform color


for i in ids:
O.bodies[i].agglomerate = si # tell each particle who is its 
agglomerate
attrs.append(O.bodies[i].agglomerate)

#random.seed(1)

sp2 = []
for b in O.bodies :
if isinstance(b.shape,Sphere):
sp2.append(b)

# add walls first
dim = (15,15,15)
walls = aabbWalls(((0,0,0),(dim)))
wallIds = O.bodies.append(walls)

# clump agglomerates
n = max(a for a in attrs)+1
colors = [randomColor() for _ in xrange(n)]
agglomerates = [[] for _ in xrange(n)]


for s,a in zip(sp2,attrs):
aa = a
s.agglomerate = aa
s.shape.color = colors[aa]
agglomerates[aa].append(s.id)

for g in agglomerates:
O.bodies.clump(g)

triax=TriaxialStressController(
maxMultiplier=1.005,
finalMaxMultiplier=1.002,
thickness = 0,
stressMask = 7,
internalCompaction=False,

)

triax.wall_bottom_activated=True
triax.wall_top_activated=True
triax.wall_left_activated=True
triax.wall_right_activated=True
triax.wall_back_activated=True
triax.wall_front_activated=True


O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
triax,
TriaxialStateRecorder(iterPeriod=100,file='WallStresses'),
NewtonIntegrator(damping=.6),
]


O.dt = PWaveTimeStep()
O.usesTimeStepper=True

# compress the sample
triax.goal1 = triax.goal2 = triax.goal3 = -1e-7

#O.run(5,True) 

#triax.goal1 = triax.goal2 = triax.goal3 = -1e-5
#O.run(3,True)



# save the result, including information of agglomerates which the particle 
belongs to
export.textExt('/tmp/compressed.txt','x_y_z_r_attrs',attrs=['b.agglomerate'])

try:
from yade import qt
qt.View()
except:
pass


def getClumpInfo():
for b in O.bodies:
if b.isClump:
print 'Clump ',b.id,' has following members:'
keys = b.shape.members.keys()
for ii in range(0,len(keys)):
print '- Body ',keys[ii]
print 'inertia:',b.state.inertia
print 'mass:',b.state.mass,'\n'
else: 
print 'no clumps'

Thanks in advance to anybody that can help !

-- 
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 #629227]: TriaxialCompressionEngine does not compute

2017-04-26 Thread loiseaurare
New question #629227 on Yade:
https://answers.launchpad.net/yade/+question/629227

Hi everybody,

I'm having a bit of a trouble here with the TriaxialCompressionEngine. Sad 
thing is, I'm sure it is stupid, but I really can't get round the problem.

I have adapted the agglomerate examples from github, in order to create a 
packed sample of agglomerates ( which it already did, but in three different 
simulations, and I wanted just one).

I am having trouble with the compaction process, it seems like the triax would 
simply not work.
I ran the simulation, and found the sample had'nt been packed. I have modifies 
the code in order that when I run the simulation, it will produce the 
agglomerates, and I could press run so that I see if anything is going wrong or 
happening. Well, seems that the walls don't move.

I tried activating the walls, like in the triax example (scenery 2), but that 
didn't change much.
Do you think maybe it is the clump function ? I haven't found that 
O.bodies.clump is much used, you can find much more on appendClumped, so I 
wondered if maybe the clump function did not fix particles in space or 
something...

the code is there :

# -*- coding: utf-8 -*-

from yade import export
from yade import export,ymport
import random



dim= (15,15,15) # dimensions for makeCloud
radius = 1
fuzz   = 0.2

# use of makeCloud function
sp = pack.SpherePack()
sp.makeCloud((0,0,0), dim, rMean=radius, rRelFuzz=fuzz, seed=1)



random.seed(1) # to make colors always the same

attrs = []

colors = [randomColor() for s in sp]
# each macroparticle is filled randomDensePack
for si,s in enumerate(sp):
sphere = pack.inSphere(s[0],s[1])
sp1 = pack.randomDensePack(
sphere,
spheresInCell = 500,
radius = .2,
memoizeDb = '/tmp/agglomeratepackaux.db',
returnSpherePack = True,
)
ids = sp1.toSimulation(color=colors[si]) # add the result to simulation 
with uniform color


for i in ids:
O.bodies[i].agglomerate = si # tell each particle who is its 
agglomerate
attrs.append(O.bodies[i].agglomerate)

#random.seed(1)

sp2 = []
for b in O.bodies :
if isinstance(b.shape,Sphere):
sp2.append(b)

# add walls first
dim = (15,15,15)
walls = aabbWalls(((0,0,0),(dim)))
wallIds = O.bodies.append(walls)

# clump agglomerates
n = max(a for a in attrs)+1
colors = [randomColor() for _ in xrange(n)]
agglomerates = [[] for _ in xrange(n)]


for s,a in zip(sp2,attrs):
aa = a
s.agglomerate = aa
s.shape.color = colors[aa]
agglomerates[aa].append(s.id)

for g in agglomerates:
O.bodies.clump(g)

triax=TriaxialStressController(
maxMultiplier=1.005,
finalMaxMultiplier=1.002,
thickness = 0,
stressMask = 7,
internalCompaction=False,

)

triax.wall_bottom_activated=True
triax.wall_top_activated=True
triax.wall_left_activated=True
triax.wall_right_activated=True
triax.wall_back_activated=True
triax.wall_front_activated=True


O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
triax,
TriaxialStateRecorder(iterPeriod=100,file='WallStresses'),
NewtonIntegrator(damping=.6),
]


O.dt = PWaveTimeStep()
O.usesTimeStepper=True

# compress the sample
triax.goal1 = triax.goal2 = triax.goal3 = -1e-7

#O.run(5,True) 

#triax.goal1 = triax.goal2 = triax.goal3 = -1e-5
#O.run(3,True)




# save the result, including information of agglomerates which the particle 
belongs to
export.textExt('/tmp/compressed.txt','x_y_z_r_attrs',attrs=['b.agglomerate'])

try:
from yade import qt
qt.View()
except:
pass


def getClumpInfo():
for b in O.bodies:
if b.isClump:
print 'Clump ',b.id,' has following members:'
keys = b.shape.members.keys()
for ii in range(0,len(keys)):
print '- Body ',keys[ii]
print 'inertia:',b.state.inertia
print 'mass:',b.state.mass,'\n'
else: 
print 'no clumps'

Thanks in advance to anybody that can help !


-- 
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 #628595]: Problem creating clumps from existing spheres

2017-04-26 Thread loiseaurare
Question #628595 on Yade changed:
https://answers.launchpad.net/yade/+question/628595

Status: Answered => Solved

loiseaurare confirmed that the question is solved:
Hi christian,

thanks for your answer !

However, I thought I was trying to append a list of object, because that
is what is stores in each occurence of the agglomerates list, as defined
here :

# clump agglomerates
n = max(a for a in attrs) -- > numbers af agglomerates
colors = [randomColor() for _ in xrange(n)]
agglomerates = [[] for _ in xrange(n)] ---> create a list af list with n 
occurences

for s,a in zip(sp2,attrs):  > here sp2 is a list of bodies
aa = a
 s.agglomerate = aa
 s.shape.color = colors[aa]
agglomerates[aa].append(s) ---> so it's bodies that are appended in 
each of the agglomerates lists.

Anyway, I actually think I solved my problem. I was explained that
actually the function appendClumped appends the bodies that are given as
a list, whereas the bodies I wanted to clump where already appended in
the simulation ( with the sphereToSimulation function ).

So I used the clump function, which however does not take a list of
BODIES, like appendClumped, but a list of IDS of bodies. I didn't get
that while reading the documentation, I thought the two functions used
the same args, so I didn't succeed in using clump at first.

-- 
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 #628595]: Problem creating clumps from existing spheres

2017-04-25 Thread loiseaurare
New question #628595 on Yade:
https://answers.launchpad.net/yade/+question/628595

Hi everybody, 

I have been using the agglomerate examples that can be found in the docs from 
yadedaily, in order to generate a packed sample of clumped particles. In the 
example this was done in three scripts (Makecloud, divide and compress) , 
creating at the end of each file a temporary file that was reloaded in the 
subsequent simulation.

I figured that I would like to have those three scripts all in one go, in order 
to launch this simulation, have the package and then save it to be used in 
other simulations.

But I am having trouble when it comes to actually clump assemblies of particle. 
The strange thing is I haven't been changing much of the existing code !

The code creates a list of groups of spheres, which are to be later on 
assembled in a clump. 
So the spheres are added one after another, based on their agglomerate number, 
that has been set previously by creating an initial sphere pack, and then 
packing in each of the spheres another sphere pack. So the agglomerate number 
would be the id of the initials bigger spheres, I guess.

Once they are all stored in the same occurence of the list, each element of the 
list ( that is, each group of spheres), is called in order to be clumped.
and then I get this error :

Traceback (most recent call last):
  File "/usr/bin/yadedaily", line 182, in runScript
execfile(script,globals())
  File "agglomerate.py", line 74, in 
O.bodies.appendClumped(g)
IndexError: Body already has id 0 set; appending such body (for the second 
time) is not allowed.

I am not sure what this means, but it seems like the program is trying to 
append the spheres once again, when they are already in the simulation. But 
that results strange to me, since I thought the appendClumped function could 
work with existing spheres..

Here is the full script :

# -*- coding: utf-8 -*-

from yade import export
from yade import export,ymport
import random

def getClumpInfo():
for b in O.bodies:
if b.isClump:
print 'Clump ',b.id,' has following members:'
keys = b.shape.members.keys()
for ii in range(0,len(keys)):
print '- Body ',keys[ii]
print 'inertia:',b.state.inertia
print 'mass:',b.state.mass,'\n'
else: 
print 'no clumps'

dim= (15,15,15) # dimensions for makeCloud
radius = 1
fuzz   = 0.2

# use of makeCloud function
sp = pack.SpherePack()
sp.makeCloud((0,0,0), dim, rMean=radius, rRelFuzz=fuzz, seed=1)



random.seed(1) # to make colors always the same

attrs = []

colors = [randomColor() for s in sp]
# each macroparticle is filled randomDensePack
for si,s in enumerate(sp):
sphere = pack.inSphere(s[0],s[1])
sp1 = pack.randomDensePack(
sphere,
spheresInCell = 500,
radius = .2,
memoizeDb = '/tmp/agglomeratepackaux.db',
returnSpherePack = True,
)
ids = sp1.toSimulation(color=colors[si]) # add the result to simulation 
with uniform color

for i in ids:
O.bodies[i].agglomerate = si # tell each particle who is its 
agglomerate
attrs.append(O.bodies[i].agglomerate)

#random.seed(1)

sp2 = []
for b in O.bodies : 
sp2.append(b)

# add walls first
dim = (15,15,15)
walls = aabbWalls(((0,0,0),(dim)))
wallIds = O.bodies.append(walls)

# clump agglomerates
n = max(a for a in attrs)+1
colors = [randomColor() for _ in xrange(n)]
agglomerates = [[] for _ in xrange(n)]


for s,a in zip(sp2,attrs):
aa = a
s.agglomerate = aa
s.shape.color = colors[aa]
agglomerates[aa].append(s)

for g in agglomerates:
O.bodies.appendClumped(g)


O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
TriaxialStressController(
thickness = 0,
stressMask = 7,
internalCompaction = False,
label = 'compressor',
),
NewtonIntegrator(damping=.6),
]
O.dt = PWaveTimeStep()

# compress the sample
compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-7
O.run(5,True)
compressor.goal1 = compressor.goal2 = compressor.goal3 = -1e-5
O.run(3,True)

# save the result, including information of agglomerates which the particle 
belongs to
export.textExt('/tmp/compressed.txt','x_y_z_r_attrs',attrs=['b.agglomerate'])

try:
from yade import qt
qt.View()
except:
pass



Welle, if anybody has an idea, it would be of great help !


-- 
You received this 

Re: [Yade-users] [Question #515400]: Introduction of defects

2017-03-13 Thread loiseaurare
Question #515400 on Yade changed:
https://answers.launchpad.net/yade/+question/515400

loiseaurare posted a new comment:
Hi Luc Scholtès,

Thanks for the advice, actually I am aware that this class exists,
however at the moment I am still trying to understand the functioning of
YADE and DEM. I will come to that later !

-- 
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 #515400]: Introduction of defects

2017-03-03 Thread loiseaurare
Question #515400 on Yade changed:
https://answers.launchpad.net/yade/+question/515400

loiseaurare 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 #515400]: Introduction of defects

2017-03-03 Thread loiseaurare
Question #515400 on Yade changed:
https://answers.launchpad.net/yade/+question/515400

Status: Answered => Solved

loiseaurare confirmed that the question is solved:
Thanks Jan Stransky, 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 #515400]: Introduction of defects

2017-03-02 Thread loiseaurare
New question #515400 on Yade:
https://answers.launchpad.net/yade/+question/515400

Hi everybody, 

I am new to Yade, and I am trying to model the fragmentation of a very simple 
sample.

Up to now I have managed to create the sample, and make it fall on a plate. I 
would like to complexify this model and introduce a serie of defects in the 
bonds of the material.

Initially I thought working directly on the interaction would be a good idea, 
but then searching trough the launchpad, I found out that apparently it was 
possible to add forces directly in the force container.

However Yade seems to say it is not possible to iterate on the force container. 
Does anybody have an idea of how to deal with that ?

Here is my script :

from yade import pack

# INPUTS
# Geometry
LxBox = 0.1 
LyBox = 0.1 
LzBox = 0.1 
LzImp = 0.3
RadSphere = 0.02
WallPos = -LzBox
WallAxis = (0.,0.,1.)

# Material
EyCohFrictMat = 1e7
poissonCohFrictMat = 0.25
densityCohFrictMat = 2600.
FrictAngSphere = 30.*pi/180.
NCohesionCohFrictMat = 6.5e4
SCohesionCohFrictMat = 6.5e4


EyFrictMat = 1e7
poissonFrictMat = 0.25
densityFrictMat = 2600.
FrictAngWall = 30.*pi/180.

# Calculation
damp=0.5
gz=-9.81





"
# 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 ,
  momentRotationLaw=False,
  etaRoll=0.1,
  isCohesive =True,
  label='MatSpheres'))


O.materials.append(
  FrictMat(
  young = EyFrictMat,
  poisson= poissonFrictMat,
  frictionAngle=FrictAngWall,
  density= densityFrictMat ,
  label='MatFrictWalls'))


## CREATE SPHERES - CREATE SPHERES - CREATE SPHERES -
pred=pack.inAlignedBox((0.,0.,0.),(LxBox,LyBox,LzBox))

block=pack.randomDensePack(pred,radius=0.005, material = 'MatSpheres', 
rRelFuzz=0.3,spheresInCell=200,color=(1,0,1), returnSpherePack = False)

O.bodies.append(block)


### Create BOX - Create BOX - Create BOX (Changer )
O.bodies.append(utils.box(center=(0.,0.,-LzImp),extents=(25*LxBox,25*LyBox,0.01*LxBox),material='MatFrictWalls',fixed=True))

#O.bodies.append( à tester sur un autre script )
#utils.wall(
#position=WallPos, 
#axis=WallAxis, 
#sense=0, 
#color=(10, 25, 51), 
#material='MatFricWalls'
#))

## CALCULATION - CALCULATION - CALCULATION
newton=NewtonIntegrator(damping=damp)
newton.gravity=(0,0,gz)

def introduceDefects () :
print O.iter 
for f in O.forces :
f.addF((-1,0,0))

O.engines=[

#introduceDefects(),
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
#Il faut rentrer toutes les lois pour tout les types de matériau
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True),
Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm = 
True, label='cohlaw'),
Law2_ScGeom_FrictPhys_CundallStrack()]
),

#GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=1,timestepSafetyCoefficient=0.2,
 defaultDt=4*PWaveTimeStep()),
NewtonIntegrator(gravity=(0,0,gz),damping=damp),
]



O.dt = 1e-4



## DISPLAY CONTROLLERS - DISPLAY CONTROLLERS - DISPLAY CONTROLLERS
yade.qt.Controller(), yade.qt.View()

## CHECK - CHECK - CHECK

O.step()
print  'maxOverlap', max(i.geom.penetrationDepth for i in O.interactions)
print  'maxNormalForce', max(i.phys.normalForce.norm for i in O.interactions)
print  'maxShearForce', max(i.phys.shearForce.norm for i in O.interactions)


O.run(1000,True)
print  'maxOverlap', max(i.geom.penetrationDepth for i in O.interactions)
print  'maxNormalForce', max(i.phys.normalForce.norm for i in O.interactions)
print  'maxShearForce', max(i.phys.shearForce.norm for i in O.interactions)



from yade import export
export.text("bloc.txt")


Cheers


-- 
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