Re: [Yade-users] [Question #464190]: How to choose an appropriate material property

2017-02-17 Thread Huihuang Xia
Question #464190 on Yade changed:
https://answers.launchpad.net/yade/+question/464190

Status: Answered => Solved

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


[Yade-users] [Question #465653]: export dissipated energy in a vtk files

2017-02-17 Thread Yor1
New question #465653 on Yade:
https://answers.launchpad.net/yade/+question/465653

Hello Yade users,

I want to output the distribution of the dissipated energy on a numerical 
sample with paraview.
And you know that paraview use vtk files to give these distribution.
So my question is : it is possible to implement which enables to record the 
dissipated energy in the sample in vtk files ?

In other words : it is possible to create a recorder ( like "bstresses", 
"spheres", "boxes", "intr" etc ... 
https://yade-dem.org/doc/yade.wrapper.html?highlight=bstresses) for the 
dissipated energy : cracks energy.

the cracks energy is included in the function : 
Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM 
(https://yade-dem.org/doc/yade.wrapper.html?highlight=jointed#yade.wrapper.Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM)

Best regards.
Jabrane.
 


-- 
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 #455796]: Local energy dissipation

2017-02-17 Thread Yor1
Question #455796 on Yade changed:
https://answers.launchpad.net/yade/+question/455796

Status: Answered => Solved

Yor1 confirmed that the question is solved:
Hello Jan,

I implement the solution proposed in my precedent comment and it works
very well.

That solved my question.

Best regards.
Jabrane.

-- 
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 #464883]: porosity problem in periodic cell

2017-02-17 Thread Toufiq Alahy
New question #464883 on Yade:
https://answers.launchpad.net/yade/+question/464883

I'm trying to get values of final porosity for different internal friction 
angle after every isocompression. With the increment of 'internal friction 
angle' the value of porosity should be increased.  But I found porosity doesn't 
increasing with the increasing value of internal friction angle. I found 
friction angle=porosity: 0.1=.3855, 10=.4200, 20=.4374, 30=.4408 40=.4319 
50=4085, 60=.4114, 70=.4346, 80=.4413, 90=.4367, 100=.4240. Don't understand 
why this is happening. Please help me out

my simulation script:

# encoding: utf-8

# periodic triaxial test simulation

sigmaIso=-1e5

#import matplotlib
#matplotlib.use('Agg')

# generate loose packing
from yade import pack, qt, plot

O.periodic=True
O.materials.append(FrictMat(young=6000,poisson=.3,density=2600,frictionAngle=60,label='spheres',))
sp = pack.SpherePack()
sp.makeCloud(minCorner=(0,0,0),maxCorner=(.1,.1,.1),rMean=0.002,rRelFuzz=0.0001,num=4000,periodic=True,seed=1)
sp.toSimulation()
O.cell.hSize = Matrix3(.1,0,0, 0,.1,0, 0,0,.1)

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
PeriTriaxController(label='triax',
# specify target values and whether they are strains or stresses
goal=(sigmaIso,sigmaIso,sigmaIso),stressMask=7,
# type of servo-control
dynCell=True,maxStrainRate=(1000,1000,1000),
# wait until the unbalanced force goes below this value
maxUnbalanced=.01,relStressTol=2e-3,
# call this function when goal is reached and the packing is 
stable
doneHook='compactionFinished()'
),
NewtonIntegrator(damping=.2),
PyRunner(command='addPlotData()',iterPeriod=500),
]
O.dt=.5*PWaveTimeStep()

def addPlotData():
plot.addData(unbalanced=unbalancedForce(),i=O.iter,
sxx=triax.stress[0],syy=triax.stress[1],szz=triax.stress[2],
exx=triax.strain[0],eyy=triax.strain[1],ezz=triax.strain[2],
Z=avgNumInteractions(),
porosity=porosity(),
# save all available energy data
Etot=O.energy.total(),**O.energy
)


plot.saveDataTxt('macroFile',vars=('i','sxx','syy','szz','exx','eyy','ezz',
'unbalanced','porosity'))

# enable energy tracking in the code
O.trackEnergy=True

# define what to plot
plot.plots={'i':('porosity',),'i ':('sxx','syy','szz'),' i':('exx','eyy','ezz'),
# energy plot
'ezz':('szz'),
}
# show the plot
plot.plot()

def compactionFinished():
print 'IsoCompression Finished'
O.Pause()
# set the current cell configuration to be the reference one
O.cell.trsf=Matrix3.Identity
# change control type: keep constant confinement in x,y, 20% 
compression in z
triax.goal=(sigmaIso,sigmaIso,-0.1)
triax.stressMask=3
# allow faster deformation along x,y to better maintain stresses
triax.maxStrainRate=(1000,1000,.001)
# next time, call triaxFinished instead of compactionFinished
triax.doneHook='triax1Finished()'
# do not wait for stabilization before calling triaxFinished
triax.maxUnbalanced=0.0001


def triax1Finished():
print 'Triaxial1 Finished'
O.Pause()


Please give me suggestion what should I do? Thanks in advance.


toufiq

-- 
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 #464190]: How to choose an appropriate material property

2017-02-17 Thread Jérôme Duriez
Question #464190 on Yade changed:
https://answers.launchpad.net/yade/+question/464190

Status: Open => Answered

Jérôme Duriez proposed the following answer:
Hi,

I think the simplest solution is to just use CohFrictMat for the steel as well. 
You may just use two different CohFrictMat materials in your simulation: one 
truly cohesive for the rock particles, and another one with e.g. zero cohesive 
properties that will apply to the steel.
Doing so, you would be able to use classical CohFrictMat functors in the 
interaction loop such as Ip2_CohFrictMat_CohFrictMat_CohFrictPhys

You might need to give a look to the corresponding code source [*] to be
sure how the cohesive properties of interactions are derived from the
cohesive Material parameters

[*]
https://github.com/yade/trunk/blob/master/pkg/dem/CohesiveFrictionalContactLaw.cpp

-- 
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 #464303]: update BC in flowEngine

2017-02-17 Thread Bruno Chareyre
Question #464303 on Yade changed:
https://answers.launchpad.net/yade/+question/464303

Status: Open => Answered

Bruno Chareyre proposed the following answer:
Hi Luc,
You made me go back to class documentation and improve it. Would the following 
doc answer your question?

.def("updateBCs",...,"Update the boundary condition to reflect changes
of boundary pressure (needed typically after changing
:yref:`FlowEngine::bndCondValue`). It is not sufficient to reflect
changes of the type of boundary condition
(:yref:`FlowEngine::bndCondIsPressure`), in such case re-triangulation
is needed (see :yref:`FlowEngine::updateTriangulation`). Conversely, the
update is not necessary for point-wise imposed pressure
(:yref:`FlowEngine::imposePressure`)")

((bool, updateTriangulation, 0,,"If true the medium is retriangulated.
Can be switched on to force retriangulation after some events (else it
will be true periodicaly based on :yref:`FlowEngine::defTolerance` and
:yref:`FlowEngine::meshUpdateInterval`. Of course, it costs CPU time.
Note that the new triangulation will start to be effectively used only
after next iteration (i.e. O.run(2) gives a result with the new one,
O.run(1) does not)."))

Note that you can replace O.step() by flow.emulateAction().
And in fact the simplest way to not worry about updating BCs is to use it with 
a fresh engine each time:

for k in boundaryConditions:
flow=FlowEngine()
flow.bndCondIsPressure=k.bndCondIsPressure
flow.bndCondValue= k.bndCondValue
flow.emulateAction()
Q=flow.getBoundaryFlux(...)

-- 
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 #464303]: update BC in flowEngine

2017-02-17 Thread Luc Scholtès
New question #464303 on Yade:
https://answers.launchpad.net/yade/+question/464303

Hello guys,

I am currently using flowEngine to compute permeability of samples subjected to 
compressive loading.

I would like to compute permeabilities along the 3 directions at different 
stages of the loading. The problem is that when I change the flow boundary 
conditions to change the direction of the flow, it seems that there is some 
sort of influence of the previous calculation on the pressure field and the 
permeability measurements are thus wrong (the inlet and outlet fluxes are not 
equal in the second calculation).

This is how I do it:

print 'Flow along X!'
flow.bndCondIsPressure = [1,1,0,0,0,0]
flow.bndCondValue = [1,0,0,0,0,0]
O.step()
Qin = flow.getBoundaryFlux(0) 
Qout = flow.getBoundaryFlux(1)
permeability = abs(Qout)*flow.viscosity*X/(Y*Z) # 
k=Q*nu*Length/(Area*(Pout-Pin))
print "Qin=",Qin," Qout=",Qout," ARE THEY EQUAL? IF NOT-> NO FLOW!"
print "Permeability [m2]=",permeability

print 'Flow along Y!'
flow.bndCondIsPressure = [0,0,1,1,0,0]
flow.bndCondValue = [0,0,1,0,0,0]
flow.updateBCs()
O.step()
Qout = flow.getBoundaryFlux(3)
permeability = abs(Qout)*flow.viscosity*Y/(X*Z) # 
k=Q*nu*Length/(Area*(Pout-Pin))
print "Qin=",Qin," Qout=",Qout," ARE THEY EQUAL? IF NOT-> NO FLOW!"
print "Permeability [m2]=",permeability

What do I need to add in order to update the flow boundary conditions correctly?

Thanks

Luc

-- 
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 #464190]: How to choose an appropriate material property

2017-02-17 Thread Huihuang Xia
New question #464190 on Yade:
https://answers.launchpad.net/yade/+question/464190

Hi,

I have some questions on how to choose a suitable material property, the 
details are as follows:
I plan to model an impact crusher using YADE, rock particles are the raw 
material crushed in the crusher, and the crusher is made of steel. Thus, I try 
to use CohFrictMat and bond many sub-particles to model the rock particle, and 
choose FrictMat to define steel. But in InteractionLoop, I cannot find a 
suitable Ip2 to set the interactions between rock particles and steel.
In a word, can you recommend two appropriate material properties for me to 
define rock and steel?

Many thanks,

Huihuang Xia

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