Re: [Yade-users] [Question #688643]: How to do model bearing capacity of soil

2020-02-11 Thread veerawat
Question #688643 on Yade changed:
https://answers.launchpad.net/yade/+question/688643

Status: Solved => Open

veerawat is still having a problem:
I want to make a model bearing capacity  of soil . But I can’t  resize
the pressure wall. I want to resize the pressed wall, what to do?

This is my code###

from yade import pack

sp=pack.SpherePack()
## corners of the initial packing
mn,mx=Vector3(0,0,0),Vector3(10,10,10)

## box size, radius, number of ball
sp.makeCloud(minCorner=mn,maxCorner=mx,rRelFuzz=.1,num=1500)

## create material #0, which will be used as default
O.materials.append(FrictMat(young=1500,poisson=.4,frictionAngle=radians(30),density=2600,label='spheres'))
O.materials.append(FrictMat(young=1500,poisson=.4,frictionAngle=0,density=0,label='frictionless'))


## copy spheres from the packing into the scene
## use default material, don't care about that for now
O.bodies.append([sphere(center,rad,material='spheres') for center,rad in sp])
## create walls around the packing
walls=aabbWalls(thickness=1e-10,material='frictionless')
wallIds=O.bodies.append(walls)
# wall of each side
triax=TriaxialCompressionEngine(
wall_bottom_id=wallIds[2],
wall_top_id=wallIds[2],
wall_left_id=wallIds[0],
wall_right_id=wallIds[2],
wall_back_id=wallIds[2],
wall_front_id=wallIds[2],
internalCompaction=False,

sigmaIsoCompaction=-5,
sigmaLateralConfinement=-5,
max_vel=10,
strainRate=0.01,
label="triax"
)

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()]
),

GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
triax,

NewtonIntegrator(damping=.4)
]

from yade import plot
O.engines=O.engines[0:5]+[PyRunner(iterPeriod=20,command='history()',label='recorder')]+O.engines[5:7]
def history():
plot.addData(e11=-triax.strain[0], e22=-triax.strain[1], 
e33=-triax.strain[2],
s11=-triax.stress(0)[0],
s22=-triax.stress(2)[1],
s33=-triax.stress(4)[2],
i=O.iter)

plot.plots={'i': ('e11','e22','e33',None,'s11','s22','s33')}

O.saveTmp()
plot.plot()

-- 
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 #688643]: How to do model bearing capacity of soil

2020-02-11 Thread veerawat
Question #688643 on Yade changed:
https://answers.launchpad.net/yade/+question/688643

veerawat gave more information on the question:
This is my video
https://drive.google.com/file/d/1KV1itxmcYKAJHl-qE3ip0av4_ddgeBzB/view?usp=sharing

-- 
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 #688690]: pack.SpherePack.save() function saved particles data format

2020-02-11 Thread gaoxuesong
New question #688690 on Yade:
https://answers.launchpad.net/yade/+question/688690

Hi. I have a file of spherical particles saved by function of 
pack.SpherePack().save(). It has the format as follows, 

0.000919246 0.000859971 0.000602774 1.20067e-05 -1
0.000959836 0.00055149 0.000975021 2.11065e-05 -1
. 

I want to translate all the particles in x direction and conduct it by the 
following python code,  
===
===
import numpy as np 

data = np.loadtxt('initial_spheres.txt', delimiter=' ', skiprows=0)

with open('initial_spheres_translate_x.txt','w') as fd:
for i in range(len(data)):
fd.write('%.9f %.9f %.9f %.5e %d\n' % (data[i,0]+0.5e-3, data[i,1], 
data[i,2], data[i,3], -1))
===
===
 and i got the data as this, 

0.001919246 0.000859971 0.000602774 1.20067e-05 -1
0.001959836 0.000551490 0.000975021 2.11065e-05 -1

The format seems the same, however, there is an format error when reading the 
file by pack.SpherePack().load() function.  
By the way, i have tried the delimiter as space and tab and both don't work. 

Thanks. 




-- 
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 #688345]: Precrack

2020-02-11 Thread mrhappy
Question #688345 on Yade changed:
https://answers.launchpad.net/yade/+question/688345

Status: Answered => Open

mrhappy is still having a problem:
Hey Robert,

Thanks for your help. I used i.phys.isCohesive = False; however, I
noticed that the nodes are still bonded. I then made a funtion that
removes the bond every iteration step. I check to see if the bond
exisits by pressing the inspect button, then going to bodies, and syping
in the element number to see whos attached to it.  Can you have a look
at my code and suggest a method that will permanently delete the bond
between these specific spheres? I want to create a precrack.

Thank you sooo much!


#MATERIAL PROPERTIES 
intR =   3.00 #connectivity parameter 
DENS = 2500.00 #Density (kg/mm^3) 
YOUNG = 1800.00 #Young's modulus (N/mm^2) 
FRICT =  18.00 #Friction angle (degrees) 
ALPHA =   0.20 #Poisson's ratio 
TENS = 1.00 #Tensile strength (N/mm^2) 
COH = 100.00 #Shear strength (N/mm^2) 
iterMax =   1.00 #Max Itteration 
rate =   0.00 #pull rate 

O.materials.append(JCFpmMat(type=1,density=DENS,young=YOUNG,poisson=ALPHA,frictionAngle=radians(FRICT),tensileStrength=TENS,cohesion=COH,label='mat1'))

# PARTICLES 
O.bodies.append([ 
#ALOT OF SPHERES WHICH I AM NOT SHOWING NOW.
])
nbSpheres = 400.00

# BOUNDARY CONDITIONS

# FUNCTIONAL COMPONENTS 
def addPlotData1(): 
plot.addData(t=O.time,Displacement = O.bodies[209].state.pos[1] - 
11.000, DX1 = O.bodies[210].state.pos[0], DY1 = O.bodies[210].state.pos[1], DX2 
= O.bodies[211].state.pos[0], DY2 = O.bodies[211].state.pos[1], DX3 = 
O.bodies[212].state.pos[0], DY3 = O.bodies[212].state.pos[1], DX4 = 
O.bodies[213].state.pos[0], DY4 = O.bodies[213].state.pos[1], DX5 = 
O.bodies[214].state.pos[0], DY5 = O.bodies[214].state.pos[1], DX6 = 
O.bodies[215].state.pos[0], DY6 = O.bodies[215].state.pos[1], DX7 = 
O.bodies[216].state.pos[0], DY7 = O.bodies[216].state.pos[1], DX8 = 
O.bodies[217].state.pos[0], DY8 = O.bodies[217].state.pos[1], DX9 = 
O.bodies[218].state.pos[0], DY9 = O.bodies[218].state.pos[1], DX10 = 
O.bodies[219].state.pos[0], DY10 = O.bodies[219].state.pos[1],  ) 

def saveData1(): 

plot.saveDataTxt('/home/nabid/Desktop/SCRIPTS/Fracture_Model/ForceBC/ForceFD.txt',vars=('t','Displacement'))

def saveData2(): 

plot.saveDataTxt('/home/nabid/Desktop/SCRIPTS/Fracture_Model/ForceBC/Data.txt',vars=('t','DX1',
 'DY1','DX2', 'DY2','DX3', 'DY3','DX4', 'DY4','DX5', 'DY5','DX6', 'DY6','DX7', 
'DY7','DX8', 'DY8','DX9', 'DY9','DX10', 'DY10',) ), 

def ForceBC(): 
if O.time < 800: 
O.forces.setPermF(209,(0,0.01000*O.time,0)) 
O.forces.setPermF(210,(0,0.01000*O.time,0)) 
O.forces.setPermF(189,(0,-0.01000*O.time,0)) 
O.forces.setPermF(190,(0,-0.01000*O.time,0)) 
else: 
O.forces.setPermF(209,(0,8.0,0)) 
O.forces.setPermF(210,(0,8.0,0)) 
O.forces.setPermF(189,(0,-8.0,0)) 
O.forces.setPermF(190,(0,-8.0,0)) 
 
# PRINTING 
from yade import plot 
from pprint import pprint 

# SIMULATION LOOP 
O.engines=[ 
PyRunner(command='addPlotData1()',iterPeriod=1), 
PyRunner(command='saveData1()',iterPeriod=1000), 
PyRunner(command='saveData2()',iterPeriod=1000), 
PyRunner(command='DelEle()',iterPeriod=1), 
PyRunner(command='ForceBC()',iterPeriod=1), 
ForceResetter(), 
InsertionSortCollider([Bo1_Sphere_Aabb()]), 
InteractionLoop( 
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intR)], 
[Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1)], 
[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM()] 
), 
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=10,timestepSafetyCoefficient=0.5,
 defaultDt=utils.PWaveTimeStep()), 
NewtonIntegrator(damping=  0.80), 
]

#TIME STEP 
O.dt=0.5e-4*PWaveTimeStep() 

#Precrack 
def DelEle(): 
ncrack = 0 
for i in O.interactions: 
if (i.id1 == 189 and i.id2 == 208): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 189 and i.id2 == 209): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 189 and i.id2 == 210): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 208 and i.id2 == 189): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 209 and i.id2 == 189): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 210 and i.id2 == 189): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 190 and i.id2 == 209): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 190 and i.id2 == 210): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if (i.id1 == 190 and i.id2 == 211): 
i.phys.isCohesive = False 
ncrack = ncrack + 1
if 

Re: [Yade-users] [Question #688685]: permeability - PFV

2020-02-11 Thread Robert Caulk
Question #688685 on Yade changed:
https://answers.launchpad.net/yade/+question/688685

Status: Open => Needs information

Robert Caulk requested more information:
Hello,

What happens when you follow the solution provided in [1]?

[1]https://answers.launchpad.net/yade/+question/688195

-- 
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 #688649]: Another startup crash at GlobalError::PushToStack() () from */libapt-pkg.so.5.0

2020-02-11 Thread Robert Caulk
Question #688649 on Yade changed:
https://answers.launchpad.net/yade/+question/688649

Status: Open => Needs information

Robert Caulk requested more information:
Hey Jérôme,

>>It's a modified version, without my changes everything is OK

Please indicate to us which files you have modified (and what the
changes are) in comparison to the current most recent trunk [1].

Cheers,

Robert

[1]472f4cbb

-- 
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 #688643]: How to do model bearing capacity of soil

2020-02-11 Thread Robert Caulk
Question #688643 on Yade changed:
https://answers.launchpad.net/yade/+question/688643

Robert Caulk posted a new comment:
I am sorry, I do not understand what you are asking. Can you please
rephrase your 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 #688652]: CpmMat elastic calibration difficulty

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

Jérôme Duriez posted a new comment:
Did you visually check whether your lateralStrain = f(axialStrain)
curves change when you change CpmMat.poisson ?

This should be the case, provided that CpmMat model (which I do not
know) is similar enough to FrictMat / FrictPhys in this aspect.

-- 
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 #688652]: CpmMat elastic calibration difficulty

2020-02-11 Thread Mumić
Question #688652 on Yade changed:
https://answers.launchpad.net/yade/+question/688652

Mumić gave more information on the question:
I did, indeed. Below there are two simulations using the code above, one
using poisson=0.1 and another with poisson=0.4, the curves based on
Šmilauer's thesis can be found in the following links:

poisson = 0.1 ⇒ 
https://user-images.githubusercontent.com/19715340/74239131-fb78a200-4cb5-11ea-89c6-bfb86774663b.png
poisson = 0.4 ⇒ 
https://user-images.githubusercontent.com/19715340/74239098-ea2f9580-4cb5-11ea-9281-8102668205d6.png

As you can see, by changing the poisson value, the obtained macro value
remained the same.

-- 
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 #688649]: Another startup crash at GlobalError::PushToStack() () from */libapt-pkg.so.5.0

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

Status: Needs information => Open

Jérôme Duriez gave more information on the question:
Hi Robert,

It's actually about "22 files changed [half of it are brand new files],
2172 insertions(+), 26 deletions(-)", so I'm afraid exact details will
have to wait a proper Merge Request (or several of those...)

Note though I touched for instance py/_utils.cpp, py/utils.py,
py/wrapper/customConverters.cpp in case you would advice to start
looking therein..

I understand specifics are lacking here, but I'm actually hoping more
for a debugging method... Thank you,

-- 
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 #688649]: Another startup crash at GlobalError::PushToStack() () from */libapt-pkg.so.5.0

2020-02-11 Thread Robert Caulk
Question #688649 on Yade changed:
https://answers.launchpad.net/yade/+question/688649

Robert Caulk posted a new comment:
>I'm actually hoping more for a debugging method...

Ok I see. Well I am sure Anton et al. have a better way of doing this,
but if I were you I would start by narrowing down which files are
causing the problem. I guess I would start by adding file groups one at
a time to the newest trunk. Compiling as I add each file group. Once you
reach the error, then you know which file group is causing the problem.
Then the debugging should be relatively straightforward.

-- 
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 #688652]: CpmMat elastic calibration difficulty

2020-02-11 Thread Jan Stránský
Question #688652 on Yade changed:
https://answers.launchpad.net/yade/+question/688652

Status: Open => Needs information

Jan Stránský requested more information:
Hi,

> even though I change in the CpmMat the values of ... 'poisson'

in what range?

> I am currently trying to make the elastic calibration
> epsCrackOnset=1e-5

if you are interested in elastic calibration, set parameters influencing
INELASTIC behavior such that the model remain elastic

> As you can see, by changing the poisson value, the obtained macro
value remained the same.

as you can see, by changing the poisson value, the obtained macro value DID NOT 
remain the same.
Please provide what a why did you expect

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 #688653]: How to make the boundaries flexible?

2020-02-11 Thread Jan Stránský
Question #688653 on Yade changed:
https://answers.launchpad.net/yade/+question/688653

Status: Open => Answered

Jan Stránský proposed the following answer:
Hi,

I think it is not possible directly in Yade at the moment.. and also in
general it might be a tricky task (e.g. the mass of the flexible
boundary is low, not very good for explicit dynamic simulations, the
formulation how the membrane should behave etc.).

One option is to discretize the boundaries with facets. Based on the
resultant forces on facets, you can change their vertices. How? It would
be difficult answer :-)

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 #688652]: CpmMat elastic calibration difficulty

2020-02-11 Thread Mumić
Question #688652 on Yade changed:
https://answers.launchpad.net/yade/+question/688652

Status: Needs information => Open

Mumić gave more information on the question:
Hello and thanks for the reply!

> in what range?

Young was varied between 20 and 100 GPa and Poisson was varied between
0.05 and 0.9 for these inicial calibration tests

>if you are interested in elastic calibration, set parameters
influencing INELASTIC behavior such that the model remain elastic

I had tested some values on this parameter and as it did not influence
the obtained value, I kept it 1e-5, I was wrong.

But now ran a simulation using 1e-1 and 1e0, the value of Poisson
changed from 0.187 to ≃ 0.258 when moving epsCrackOnset from 1e-5 to
1e-1 but didn't change between the last two (1e-1 to 1e0), so I guess in
this case it's way safer to assume this parameter is not influencing
anymore, but yet the micro poisson didn't change much

Is the range of the other parameters I'm using way off to have an actual
effect?

>as you can see, by changing the poisson value, the obtained macro value DID 
>NOT remain the same.
>Please provide what a why did you expect

The element position was obtained for any timestep in which the material
behavior is within the elastic domain and then compared with the initial
position in order to find the deformation in that region, then, based on
the formula nu = (-0.5(ex+ey))/ez, Poisson modulus was computed.

Regarding the "the value did remain the same",  that graph was computed
on a single timestep, if I take the average, are equal up to 4 decimal
values. I agree the shown method was a poor one, hence I moved to
obtaining a linear regress of the computed strains and the results are
now more reliable than the former one.

In this new evaluation, the value for epsCrackOnset used was 1e-1, Micro
Young 50e9 and Micro Poisson 0.2 or 0.4. The results are displayed
below:

Micro Poisson = 0.2 ⇒ 
https://user-images.githubusercontent.com/19715340/74276747-0c94d380-4cf5-11ea-8a54-c9fcc8ce6e6e.png
Micro Poisson = 0.4 ⇒ 
https://user-images.githubusercontent.com/19715340/74276830-3b12ae80-4cf5-11ea-9acd-23363186a653.png

What I expected was for the values to change based on the input young
and poisson but the value I'm measuring so far is kind of static when
varying the elastic parameters. The reason of what I'm looking for is
that Macro Young is directly related to the Micro Young whereas Macro
Poisson is a function of Micro Young and Micro Poisson.

Best 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 #688575]: The speed of run is too slow ! What are the ways to run the code faster?

2020-02-11 Thread ehsan benabbas
Question #688575 on Yade changed:
https://answers.launchpad.net/yade/+question/688575

Status: Answered => Solved

ehsan benabbas confirmed that the question is solved:
I realized the most important factor in the speed of running is the
"young" parameter. In the way I define this parameter (or change it to
an arbitrary value) it influences the run time significantly.  Knowing
this, I changed "young" to the value you defined already in [1] and the
code works really fast for 2 particles (about 15 minutes). However,
there is another problem. As I want to define Kn and Ks directly, I need
to change FrictMat to ViscoElMat. But as this is another question, I
will post a new question that anyone can use. Thank you for your helps.

-- 
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 #688575]: The speed of run is too slow ! What are the ways to run the code faster?

2020-02-11 Thread Chareyre
Question #688575 on Yade changed:
https://answers.launchpad.net/yade/+question/688575

Status: Open => Answered

Chareyre proposed the following answer:
> os.chdir('/home/ehsan/Desktop/3axresults')

Seriously?
B

Le lun. 10 févr. 2020 19:53, ehsan benabbas <
question688...@answers.launchpad.net> a écrit :

> Question #688575 on Yade changed:
> https://answers.launchpad.net/yade/+question/688575
>
> Status: Answered => Open
>
> ehsan benabbas is still having a problem:
> Minimal scripts:
>
>
> print ('** START **')
> import numpy as np
> import time
> import datetime, os
> start_time=time.time()
> from datetime import datetime
> import math
> from yade import qt, export, utils
> from yade import pack
>
> ##
> # DEFINING VARIABLES #
>
> print (' DEFINING VARIABLES ')
>
> nRead=readParamsFromTable(
>  num_spheres=2,
>  compFricDegree = 29,
>  key='_triax_',
>  unknownOk=True
> )
>
> from yade.params import table
>
> num_spheres=table.num_spheres
> key=table.key
> targetPorosity = 0.4
> compFricDegree = table.compFricDegree
> finalFricDegree = 29
> IP=100 # iteration period to record data and stuff
> micro_record_iterPeriod=IP
> ORN=3000 # O.Run Number of iterations
> micro_record_enable_normal_branch=True
> micro_record_float_type = np.float32
> damp=0.2
> thick=0
> stabilityThreshold=0.01
> PCPC=0.0001 # Precision of Confining Pressure Convergence
> r_min=0.1*1e-3 # m
> d_min=2*r_min # m
> r_max=0.3*1e-3 # m
> d_max=2*r_max # m
> r_avr=(r_min+r_max)/2 # m
> d_avr=2*r_avr # m
> r_fuz=(r_max/r_avr)-1 # m
> Kn=10e8*(d_avr) ### FIXME
> Kt=10e8*(d_avr) ### FIXME
> young=Kn/r_avr # 2 (E r1 E r2 / E r1 + E r2) >>> E = Kn/r_avr
> poisson=Kn/Kt # Kt/Kn
> Ls=0.02 # m length of specimen ### FIXME
> L_REV=7*(d_avr) # m
> if Ls < L_REV:
> sys.exit("*** ERROR! The specimen's dimension is too samll! ***")
> elif Ls==L_REV:
> print ("*** This is the minimum specimen's dimension you can take!
> ***")
> else:
> print ("*** The specimen's dimension is good enough! ***")
> mn,mx=Vector3(0,0,0),Vector3(Ls,Ls,Ls)
> Vt=-1*1e-3 # m/s # negative sign describes the compression direction
> strainRate=Vt/Ls # %/sec
> target_strain=0.25 ### FIXME %
> print ("The target strain has been set to:", target_strain)
> sigmaIso=-5e5 # Pa ### FIXME
> particleDensity=2000 #kg/m3
>
> ##
> # DEFINING MATERIALS #
>
> print (' DEFINING MATERIALS ')
>
> O.materials.append(FrictMat(young=young,poisson=poisson,frictionAngle=radians(compFricDegree),density=particleDensity,label='spheres'))
>
> O.materials.append(FrictMat(young=young,poisson=poisson,frictionAngle=0,density=0,label='walls'))
>
> 
> # DEFINING PACKING #
>
> print (' DEFINING PACKING ')
> walls=aabbWalls([mn,mx],thickness=thick,material='walls')
> for w in walls:w.shape.radius=0
> wallIds=O.bodies.append(walls)
> sp=pack.SpherePack()
> clumps=False
> sp.makeCloud(mn,mx,r_avr,r_fuz,num_spheres,False, 0.95,seed=1)
> O.bodies.append([sphere(center,rad,material='spheres') for center,rad in
> sp])
>
> from yade import export
> os.mkdir('3axresults')
> os.chdir('/home/ehsan/Desktop/3axresults')
> export.text('InitialPackingData')
>
> 
> # DEFINING TRIAXIAL TEST #
>
> print (' DEFINING TRIAXIAL TEST ')
> triax=TriaxialStressController(
>  maxMultiplier=1.+2e4/young,
>  finalMaxMultiplier=1.+2e3/young,
>  thickness = thick,
>  stressMask = 7,
>  internalCompaction=True,
> )
>
> ##
> # DEFINING FUNCTIONS #
>
> print (' DEFINING FUNCTIONS ')
> from yade import plot
> def history():
> plot.addData(
>   e11 = -triax.strain[0],
>   e22 = -triax.strain[1],
>   e33 = -triax.strain[2],
>   ev = -triax.strain[0]-triax.strain[1]-triax.strain[2],
>   s11 = -triax.stress(triax.wall_right_id)[0],
>   s22 = -triax.stress(triax.wall_top_id)[1],
>   s33 = -triax.stress(triax.wall_front_id)[2],
>   i = O.iter,
> t = O.time, # virtual (yade) time --- time of simulation
> fab = utils.fabricTensor()[0])
>
> 
> # DEFINING ENGINES #
>
> print (' DEFINING ENGINES ')
> newton=NewtonIntegrator(damping=damp)
>
> 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()]
>  ),
>
>  
> GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
> 

[Yade-users] [Question #688685]: permeability - PFV

2020-02-11 Thread Othman Sh
New question #688685 on Yade:
https://answers.launchpad.net/yade/+question/688685

Hello All,

I wrote a code that is supposed to simulate a permeability test of a saturated 
sphere packing in a column. The spheres packing is rigid and no 
deformation/change in particle positions due to fluid flow should occur. 
However, I'm getting errors such as:
- Vh==NULL!!, 
- negative volume for an ordinary pore (temp warning, should still be safe)

Can anyone help me to make this code work? My goal is to get the average fluid 
velocity in the pores. The code is copied below. 

Thank you,

Othman

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

import numpy as np
from yade import pack, ymport, plot


radiuscyl=.05
heightcyl=.2

dP=1e3 #Pa
visc=1e-3 #Pa.sec
density=1000 #kg/m3

O.materials.append(FrictMat(young = 5e10, poisson = 0.15,frictionAngle = 
atan(.2), density=1920))

 spheres #
sp=pack.SpherePack()
sp.makeCloud((0,0,0),(.3,.3,2),rMean=0.0083,rRelFuzz=0.1)   
 cylinder extraction

pred=pack.inCylinder((.2,.2,0),(.2,.2,heightcyl),radiuscyl) 

spFilter=filterSpherePack(pred,sp,Material=Material, returnSpherePack=True) 

spFilter.toSimulation()
 facets #

facets=geom.facetCylinder((.2,.2,heightcyl/2),radiuscyl,heightcyl,segmentsNumber=150,wallMask=4)
cylinder=O.bodies.append(facets)
yade.qt.View()
Height=max(utils.aabbDim())

#Fix all particles in their positions. No deformation
for i in O.bodies:
i.state.blockedDOFs='xyzXYZ'

 Engines #
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()],label="iloop"
),
FlowEngine(dead=1,label="flow"),#introduced as a dead engine for the 
moment, see 2nd section

GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
NewtonIntegrator(damping=0.2)

]
O.dt=1e-5
O.run(1,1)

#B. Activate flow engine and set boundary conditions in order to get 
permeability
flow.dead=0
flow.useSolver=3
flow.viscosity=visc
flow.bndCondIsPressure=[0,0,0,0,1,1] #[xmin,xmax,ymin,ymax,zmin,zmax]
flow.bndCondValue=[0,0,0,0,0,dP]
flow.boundaryUseMaxMin=[0,0,0,0,1,1] #if you want wall to be boundary, set this 
0. If you don't have a wall, make it 1 so that spheres will be boundary


#Permeability calculations
Q=flow.averageVelocity()
Permeability=visc*Q*Height/dP
print ("average velocity: ",Q, "Permeability: ",Permeability)

O.run()

-- 
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 #688681]: Contact laws and Input stiffness directly rather than young parameter

2020-02-11 Thread ehsan benabbas
Question #688681 on Yade changed:
https://answers.launchpad.net/yade/+question/688681

Status: Answered => Open

ehsan benabbas is still having a problem:
Hello

Thank you, Jan. As it's been mentioned in [1], this method leads to a SO
LONG (more than 3 weeks) running time as I faced before. The problem of
the long-run is the "young" parameter. When I calculate the "young"
based on Kn, "young" will be a relatively high number, however, If I use
"ViscElMat", the code with 2 particles will be run less than 15
minutes. If I want to have the same run-time with "FrictMat" I need to
forget about my desire Kn and use the value of "young" that Bruno
already has used in his based code of triaxial test. I was wondering
setting cn = cs = 0 in "ViscElMat" gives me the same result as
"FrictMat" as the density of specimen has not changed (because of the
specimen which is the same as when I used "FrictMat") and I should get
the same behavior. For example, if I get the peak behavior (dense
sample) with "FrictMat" maybe I get the same with "ViscElMat", which
this did not happen.

[1]  https://answers.launchpad.net/yade/+question/679638

-- 
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 #688681]: Contact laws and Input stiffness directly rather than young parameter

2020-02-11 Thread ehsan benabbas
New question #688681 on Yade:
https://answers.launchpad.net/yade/+question/688681

Hello everyone,

I am using Ubuntu 18.04, and Yade 2019-08-08.git-775ae74

I developed the Triaxial test code based on [1] and working on that. I want to 
directly input Kn and Kt (like most of the papers) instead of using the "young" 
parameter. To do so, as the "FrictMat" has not Kn and Kt, I tried to define 
material and contact law based on "ViscElMat". To do so and as I do not want to 
model visco materials, I set cn = cs = 0 as follows:

O.materials.append(ViscElMat(kn=Kn,ks=Kt,cn=0.0,cs=0.0,density=particleDensity,frictionAngle=radians(compFricDegree),label='spheres'))
O.materials.append(ViscElMat(kn=Kn*100,ks=Kt*100,cn=0.0,cs=0.0,density=0,frictionAngle=0,label='walls'))

and for the contact law in Engine, I made the following changes:

newton=NewtonIntegrator(damping=damp)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
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),
triax,
PyRunner(iterPeriod=IP,command='history()',label='macro_recorder'),
TriaxialStateRecorder(iterPeriod=IP,file='WallStresses'+table.key),
newton
]

In this case, I get no error, the run speed is fast enough, but, the result is 
different than the "FrictMat" case while the specimen is the same. To be more 
specific, I get a dense behavior (Peak in the stress-strain curve) by using 
"FrictMat" however, when I use the "ViscElMat" I get a loose soil behavior 
(just gradually hardening) and never use "young" in my code. I am wondering why 
that happens? 

[1] 
https://gitlab.com/yade-dev/trunk/blob/master/examples/triax-tutorial/script-session1.py

Thank you for your help.

Minimal version of my code:

##
 TRIAXIAL PROBLEM, Y IS THE VERTICAL AXIS, X IS THE RIGHT AXIS, Z IS THE 
FRONT AXIS #
##

import numpy as np
import time
import datetime, os
import shutil
start_time=time.time()
from datetime import datetime
import math
from yade import qt, export, utils
from yade import pack
import yade.timing;
O.timingEnabled=True

#
# DEFINING VARIABLES 

nRead=readParamsFromTable(
 num_spheres=2,
 compFricDegree = 29,
 key='_triax_',
 unknownOk=True
)

from yade.params import table

num_spheres=table.num_spheres
key=table.key
targetPorosity = 0.4
compFricDegree = table.compFricDegree
finalFricDegree = 30
IP=100 # iteration period to record data and stuff
ORN=1000 # O.Run Number of iterations
damp=0.2
thick=0.01
stabilityThreshold=0.01
PCPC=0.0001 # Precision of Confining Pressure Convergence
Kn=10e7
Kt=10e7
Ls=1  
mn,mx=Vector3(0,0,0),Vector3(Ls,Ls,Ls)
volume = (mx[0]-mn[0])*(mx[1]-mn[1])*(mx[2]-mn[2])
cvs=1-targetPorosity# coefficient of solid volume ===>>> 1 - n = 1 - (Vv / 
Vt) = Vs / Vt   , cvs*volume=Vs
mean_rad = pow(0.24*cvs*volume/num_spheres,0.)
strainRate=-0.02 
target_strain=0.25
sigmaIso=-1e4 
particleDensity=2600

##
# DEFINING MATERIALS #

O.materials.append(ViscElMat(kn=Kn,ks=Kt,cn=0.0,cs=0.0,density=particleDensity,frictionAngle=radians(compFricDegree),label='spheres'))
O.materials.append(ViscElMat(kn=Kn*100,ks=Kt*100,cn=0.0,cs=0.0,density=0,frictionAngle=0,label='walls'))


# DEFINING PACKING #

walls=aabbWalls([mn,mx],thickness=thick,material='walls')
wallIds=O.bodies.append(walls)
sp=pack.SpherePack()
clumps=False
sp.makeCloud(mn,mx,-1,0.,num_spheres,False, 0.95,seed=1) #"seed" make the 
"random" generation always the same
O.bodies.append([sphere(center,rad,material='spheres') for center,rad in sp])


# DEFINING TRIAXIAL TEST #

triax=TriaxialStressController(
 maxMultiplier=1.005,
 finalMaxMultiplier=1.002,
 thickness = thick,
 stressMask = 7,
 internalCompaction=True,
)

##
# DEFINING FUNCTIONS #

from yade import plot
def history():
plot.addData(
e11 = -triax.strain[0],
e22 = -triax.strain[1],
e33 = -triax.strain[2],
ev = -triax.strain[0]-triax.strain[1]-triax.strain[2],
s11 = -triax.stress(triax.wall_right_id)[0],
s22 = -triax.stress(triax.wall_top_id)[1],
s33 = -triax.stress(triax.wall_front_id)[2],
i = O.iter,
t = O.time, # virtual (yade) time --- time of 

Re: [Yade-users] [Question #688653]: How to make the boundaries flexible?

2020-02-11 Thread ehsan benabbas
Question #688653 on Yade changed:
https://answers.launchpad.net/yade/+question/688653

Status: Answered => Open

ehsan benabbas is still having a problem:
As the facet elements are flexible, isn't it possible to define the box
(walls) with facets? Something like:

# create box with free top, and ceate loose packing inside the box
from yade import pack, plot,qt
fIDSI=O.bodies.append(utils.geom.facetBox((.15,.15,.135),(.15,.15,.045),wallMask=15,material=steel))
fIDSII=O.bodies.append(utils.geom.facetBox((.15,.15,.045),(.15,.15,.045),wallMask=31,material=steel))
sp=pack.SpherePack()
sp.makeCloud((0,0,0),(0.3,0.3,0.3250),rMean=rMean,rRelFuzz=rRelFuzz)
sp.toSimulation(material=spheremat)

I have read this is [1]

[1] https://answers.launchpad.net/yade/+question/210746

-- 
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 #688652]: CpmMat elastic calibration difficulty

2020-02-11 Thread Jan Stránský
Question #688652 on Yade changed:
https://answers.launchpad.net/yade/+question/688652

Status: Open => Needs information

Jan Stránský requested more information:
> Is the range of the other parameters I'm using way off to have an
actual effect?

set epsCrackOnset and sigmaT to arbitrary large values (like 1e99)

please try your test with these values and let us know.

Also see [1,2] discussing similar topic.

cheers
Jan

[1] https://answers.launchpad.net/yade/+question/670047
[2] https://answers.launchpad.net/yade/+question/685862

-- 
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 #688681]: Contact laws and Input stiffness directly rather than young parameter

2020-02-11 Thread Jan Stránský
Question #688681 on Yade changed:
https://answers.launchpad.net/yade/+question/688681

Status: Open => Answered

Jan Stránský proposed the following answer:
Hello,

> I want to directly input Kn and Kt ... instead of using the "young"
parameter.

See [1,2,3] discussing similar topic

> To do so, as the "FrictMat" has not Kn and Kt, I tried to define
material and contact law based on "ViscElMat".

you can use FrictMat, see [1], #3 and #8

> but, the result is different than the "FrictMat" case while the
specimen is the same. ... I am wondering why that happens?

well, obviously, because you are using different model with different
governing equations..

cheers
Jan

[1] https://answers.launchpad.net/yade/+question/679638
[2] https://answers.launchpad.net/yade/+question/298001
[3] https://answers.launchpad.net/yade/+question/228494

-- 
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 #688653]: How to make the boundaries flexible?

2020-02-11 Thread Jan Stránský
Question #688653 on Yade changed:
https://answers.launchpad.net/yade/+question/688653

Status: Open => Answered

Jan Stránský proposed the following answer:
> isn't it possible to define the box (walls) with facets?

sure, this is easy

> As the facet elements are flexible

no, facet in Yade is a rigid triangle.
But you can change its position or set new coordinates of vertices arbitrarily 
(e.g. according to some computation how a flexible membrane should deform)

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