Re: [Yade-users] [Question #699998]: How to simulate small-strain triaxial compression test

2023-04-14 Thread Leonard
Question #68 on Yade changed:
https://answers.launchpad.net/yade/+question/68

Leonard posted a new comment:
Hi William,

>However, the unbalanced force is nan and the mean stress is 0 all the
time whlie I modfy this using your code.

The reason I think is that: you modify only the young from 5e6 to 29e9,
while in

triax=TriaxialStressController(
 maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth)
 finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth)
 thickness = 0,

 stressMask = 7,
 internalCompaction=True, # If true the confining pressure is generated by 
growing particles
)

The radii expansion multiplier is associated with the young value in my
MWE, which means you set it very small when you change young very high.
Actually, the particles are growing but very slowly, so that you didn't
observe any contacts between particles and hence there is no unb and
mean stress. If you wait enough time (could be very long), you may
observe the unb and mean stress increase.

You may play with the parameters in the TriaxialStressController, for
example, using a fixed value of maxMultiplier.


Cheers
Leonard

-- 
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 #699998]: How to simulate small-strain triaxial compression test

2023-04-14 Thread Jan Stránský
Question #68 on Yade changed:
https://answers.launchpad.net/yade/+question/68

Jan Stránský posted a new comment:
Hello,

please open a new question for a new problem [2], try not to continue in 
long-closed questions.
You can reference this conversation in the new question.

Quick response (to be continued in the new question :-)

>> young=5e6 # contact stiffness
> Many researchers adopt young=29e9 in their papers.

"Many researchers" is vague, please reference specific paper(s).
The stiffness values depends on actual material.
Also, Yade just counts numbers, without units, so 5e6 in one script and 29e9 in 
another can theoretically be the same physical property.

> However, the unbalanced force is nan and the mean stress is 0 all the
time whlie I modfy this using your code.

both symptoms suggest zero number of interactions.
Please check it.

>> Decrease TriaxialStressController.max_vel
> How much should TriaxialStressController.max_vel go down to?

It would pretty much depend on your needs and requirements, I doubt
there is one universal value..

Cheers
Jan

[2] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #699998]: How to simulate small-strain triaxial compression test

2023-04-12 Thread William
Question #68 on Yade changed:
https://answers.launchpad.net/yade/+question/68

William posted a new comment:
Hi, Leonard
I have read your code and the conversation. There are some questions still 
trouble me. I hope you or some other friends could help me.

> young=5e6 # contact stiffness
Many researchers adopt young=29e9 in their papers. However, the unbalanced 
force is nan and the mean stress is 0 all the time whlie I modfy this using 
your code.

> Decrease TriaxialStressController.max_vel 
How much should TriaxialStressController.max_vel  go down to?

Thanks,
William

-- 
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 #699998]: How to simulate small-strain triaxial compression test

2022-01-06 Thread Bruno Chareyre
Question #68 on Yade changed:
https://answers.launchpad.net/yade/+question/68

Bruno Chareyre posted a new comment:
Transitioning between phases is often based on the ubalanced force (see 
"stabilityThreshold=0.01").
That's basically a residual amount of dynamic noise we accept.
If you want a very clean equilibrium state before imposing a strain increment 
you can aim at an even smaller value.

I'm surprised decreasing max_vel alone is a sufficient answer.

Bruno

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #699998]: How to simulate small-strain triaxial compression test

2022-01-06 Thread Leonard
Question #68 on Yade changed:
https://answers.launchpad.net/yade/+question/68

Status: Answered => Solved

Leonard 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 #699998]: How to simulate small-strain triaxial compression test

2022-01-05 Thread Jérôme Duriez
Question #68 on Yade changed:
https://answers.launchpad.net/yade/+question/68

Status: Open => Answered

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

Decrease TriaxialStressController.max_vel ?

Which is the first responsible for lateral stress fluctuations (or
absence of)

-- 
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 #699998]: How to simulate small-strain triaxial compression test

2021-12-26 Thread Leonard
Question #68 on Yade changed:
https://answers.launchpad.net/yade/+question/68

Leonard posted a new comment:
Hi,

I came up with a way: using a small enough dt for the simulation.

Do you have any other ideas?

Cheers
Leonard

-- 
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 #699998]: How to simulate small-strain triaxial compression test

2021-12-26 Thread Leonard
New question #68 on Yade:
https://answers.launchpad.net/yade/+question/68

Hi,

I'd like to ask that how to simulate a drained triaxial compression test within 
a small-strain level.

The goal of this simulation is to get the small strain stiffness G0.

A typical way is (1) generating a sand packing and isotropically load it to 
target confining pressure, e.g., 100 kPa. (2) a small axial strain increment 
deps1 is applied on the top wall, while the lateral stresses sigma2 and sigma3 
keep constant. (3) the simulation finishes when the shear strain, gamma = 
deps1-deps2, reaches 10e-6. (4) then G0 can be calculated by G0 = 
dsigma1/(2*gamma)

What I have done is using the example code provided by Bruno[1]. I set the 
loading rate to a very small value (1e-20), and the simulations finished in one 
second. I thought this process is too quick to generate accurate results, 
actually the lateral confining pressure changes (i.e., not constant). I know 
this script works well for a classic triaxial compression test because usually 
we look at a large strain level (like 20% of axial strain), thereby a small 
amout of fluctuation on lateral stress is acceptable. But when we look at such 
a small range and in such a short time, this will lead to inaccurate results. 
So my question is  how can we make the simulation of triaxial compression test 
within a small-strain level.

Thanks,
Leonard




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

The MWE is as follow if the question is not clearly described.

from yade import pack

nRead=readParamsFromTable(
num_spheres=1000,# number of spheres
compFricDegree = 30, # contact friction during the confining phase
key='_triax_base_', # put you simulation's name here
unknownOk=True
)
from yade.params import table

num_spheres=table.num_spheres# number of spheres
key=table.key
targetPorosity = 0.43 #the porosity we want for the packing
compFricDegree = table.compFricDegree # initial contact friction during the 
confining phase (will be decreased during the REFD compaction process)
finalFricDegree = 30 # contact friction during the deviatoric loading
rate=-1e-20 # loading rate (strain rate)
damp=0.2 # damping coefficient
stabilityThreshold=0.01 # we test unbalancedForce against this value in 
different loops (see below)
young=5e6 # contact stiffness
mn,mx=Vector3(0,0,0),Vector3(1,1,1) # corners of the initial packing


O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))

walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

sp=pack.SpherePack()


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

triax=TriaxialStressController(
maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth)
finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth)
thickness = 0,

stressMask = 7,
internalCompaction=True, # If true the confining pressure is generated 
by growing particles
)

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),
triax,
TriaxialStateRecorder(iterPeriod=100,file='WallStresses'+table.key),
newton,
]

Gl1_Sphere.stripes=0
if nRead==0: yade.qt.Controller(), yade.qt.View()

triax.goal1=triax.goal2=triax.goal3=-10

while 1:
  O.run(1000, True)
  unb=unbalancedForce()
  print 'unbalanced force:',unb,' mean stress: ',triax.meanStress
  if unbtargetPorosity:
# we decrease friction value and apply it to all the bodies and contacts
compFricDegree = 0.95*compFricDegree
setContactFriction(radians(compFricDegree))
print "\r Friction: ",compFricDegree," porosity:",triax.porosity,
sys.stdout.flush()
O.run(500,1)

O.save('compactedState'+key+'.yade.gz')
print "###Compacted state saved  ###"

triax.internalCompaction=False


setContactFriction(radians(finalFricDegree))

triax.stressMask = 5
triax.goal2=rate
triax.goal1=-10
triax.goal3=-10
newton.damping=0.1


print "gamma before deviatoric loading is", abs(triax.strain[1]-triax.strain[0])
print "click run to start small-strain deviatoric loading"
from yade import plot

def history():
plot.addData(e11=-triax.strain[0], e22=-triax.strain[1], 
e33=-triax.strain[2],