Re: [Yade-users] [Question #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?

2022-03-22 Thread Xifan Li
Question #700980 on Yade changed:
https://answers.launchpad.net/yade/+question/700980

Status: Answered => Solved

Xifan Li confirmed that the question is solved:
https://answers.launchpad.net/yade/+question/701030

I just solved this 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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?

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

Jérôme Duriez proposed the following answer:
Please do not repeat yourself in two different questions (here and
https://answers.launchpad.net/yade/+question/700957)

-- 
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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?

2022-03-21 Thread Xifan Li
Question #700980 on Yade changed:
https://answers.launchpad.net/yade/+question/700980

Xifan Li posted a new comment:
Thank you Robert, I have changed the engine I use from
TriaxialCompressionEngine to TriaxialStressController,

My code is below.

This code can run normally, but it still cannot make the cyclic loading
realizable.

[1] So I would like to know how to change the parameters in the
TriaxialStressController engine while the simulation is running? (Like
change the triax.goal1 and tiax.goal2 and the stressMask?

###

from yade import pack
# The following 5 lines will be used later for batch execution
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=-0.02 # 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(10,10,.1) # corners of the initial packing


## create materials for spheres and plates
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'))

## create walls around the packing
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

## use a SpherePack object to generate a random loose particles packing
sp=pack.SpherePack()

sp.makeCloud(minCorner=mn,maxCorner=mx,rRelFuzz=0,num=2000)
sp.toSimulation(material='spheres')

triax=TriaxialStressController(

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

internalCompaction=False,

stressMask = 1,
goal1=-2e5,
goal2=rate,

)


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.txt'),
NewtonIntegrator(damping=damp),
PyRunner(command='triaxload()',iterPeriod=1, label='triaxload'),

#PyRunner(command='triaxload()',realPeriod=2, label='triaxload')
]

triax.stressMask = 1
triax.goal1=-2e5
triax.goal2=rate


def triaxload():
O.triax.goal1=-3e5
if abs(O.triax.stress(triax.wall_top_id)[1])> 15:
O.triax.stressMask = 1
O.triax.goal1=-3e5
O.triax.goal2=rate
triaxload.command=('triaxunload')

def triaxunload():
if abs(triax.stress(triax.wall_top_id)[1])< 5e4:
triax.stressMask = 1
triax.goal1=-1e5
triax.goal2=rate




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], 
s11=-triax.stress(triax.wall_right_id)[0],
s22=-triax.stress(triax.wall_top_id)[1],

i=O.iter)

plot.plots={'e11': ('s11',),'e22': ('s22',)}

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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?

2022-03-21 Thread Robert Caulk
Question #700980 on Yade changed:
https://answers.launchpad.net/yade/+question/700980

Status: Open => Answered

Robert Caulk proposed the following answer:
Hello,

I would like to help you, but will you please separate your questions so
that we can answer them individually? One question per thread, thank you
so much for taking the time to read [2] to understand how we are working
to make this knowledge base sustainable and reusable for future users.

As we point out in [1]:

"Warning This engine is deprecated, please switch to
TriaxialStressController if you expect long term support."

So I would suggest you switch to TriaxialStressController.

Cheers,

Robert

[1]https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.TriaxialCompressionEngine
[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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?

2022-03-21 Thread Bret Ritchie
Question #700980 on Yade changed:
https://answers.launchpad.net/yade/+question/700980

Bret Ritchie posted a new comment:
Most studies on strain rate effects on shearing behavior of saturated clay have 
employed quasi-static triaxial compression tests under strain-controlled 
conditions, potentially with either pore water pressure measurements, or 
impulse loading compression tests which were under stress-controlled 
conditions. 
https://www.vwcredit.me/

-- 
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 #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?

2022-03-18 Thread Xifan Li
Question #700980 on Yade changed:
https://answers.launchpad.net/yade/+question/700980

Description changed to:
The problem I have got:
[1]https://answers.launchpad.net/yade/+question/700957

In the last two days of trial and error and thinking, I have discovered
that the strain rate in TriaxialCompressionEngine can be changed when
the stress loading axis becomes negative,

[2] so what I want to know is whether I can have a situation in the
simulation where the strain rate can become negative when the stress in
a certain axis reaches a certain value.

[3] However, I have found that once the simulation is started, it seems
that the preset code in the engine cannot be changed later in the code
(i.e. the strainRate set in the engine is constant at the beginning), so
I would like to know if there is a way to make the strainRate change
during a process?

[4] I have also noticed that there is a code that can be used for making
an engine temporarily deactivated and only resurrect it at a later point
---dead(=false). So I want to know how to apply this code to my
simulation code.

[5] I have put the code 'dead = True' to my simulation code, yes the
simulation did not run at all. But regarding to the demonstration of the
code: ' can be used for making an engine temporarily deactivated and
only resurrect it at a later point.' How can I activate this engine 'at
a later point'? And How to define the 'later point'?

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


[Yade-users] [Question #700980]: How to change the strainRate value of TriaxialCompressionEngine during the simulation period?

2022-03-18 Thread Xifan Li
New question #700980 on Yade:
https://answers.launchpad.net/yade/+question/700980

The problem I have got: [1]https://answers.launchpad.net/yade/+question/700957

In the last two days of trial and error and thinking, I have discovered that 
the strain rate in TriaxialCompressionEngine can be changed when the stress 
loading axis becomes negative, 

[2] so what I want to know is whether I can have a situation in the simulation 
where the strain rate can become negative when the stress in a certain axis 
reaches a certain value.

[3] However, I have found that once the simulation is started, it seems that 
the preset code in the engine cannot be changed later in the code (i.e. the 
strainRate set in the engine is constant at the beginning), so I would like to 
know if there is a way to make the strainRate change during a process?

[4] I have also noticed that there is a code that can be used for making an 
engine temporarily deactivated and only resurrect it at a later 
point---dead(=false). So I want to know how to apply this code to my 
simulation code.

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