young in PeriTriaxController
Hi,
That's my other question. (https:/
Let me give another example.Copying script from (https:/
Using my own custom materials.
materials.
In the second compression, change triax.maxStrain
I wonder why young's modulus can cause such a big change? How can I adjust:)
Thanks
#######
# encoding: utf-8
sigmaIso=-1e5
#import matplotlib
#matplotlib.
# generate loose packing
from yade import pack, qt, plot
O.periodic=True
sphere=
sp=pack.
sp.makeCloud(
sp.toSimulation()
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
PeriTriaxContr
# specify target values and whether they are strains or stresses
goal=
# type of servo-control
dynCell=
# wait until the unbalanced force goes below this value
maxUnbalanced
# call this function when goal is reached and the packing is stable
doneHook=
),
NewtonIntegrat
PyRunner(
]
O.dt=.5*
def addPlotData():
plot.addData(
sxx=triax.
exx=triax.
# save all available energy data
Etot=
)
# enable energy tracking in the code
O.trackEnergy=True
# define what to plot
plot.plots=
# energy plot
' i ':(O.energy.
}
# show the plot
plot.plot()
def compactionFinis
# set the current cell configuration to be the reference one
O.cell.
# change control type: keep constant confinement in x,y, 20% compression in z
triax.
triax.stressMask=3
# allow faster deformation along x,y to better maintain stresses
triax.
# next time, call triaxFinished instead of compactionFinished
triax.
# do not wait for stabilization before calling triaxFinished
triax.
def triaxFinished():
print 'Finished'
O.pause()
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Bruno Chareyre
- Solved:
- 2019-02-16
- Last query:
- 2019-02-16
- Last reply:
- 2019-02-11
Chareyre (bruno-chareyre-9) said : | #1 |
The «why» is long storry. The «how» is in my first reply to your previous
question. Please check it.
Le sam. 9 févr. 2019 07:08, jamespaul <email address hidden>
a écrit :
> New question #678440 on Yade:
> https:/
>
> Hi,
>
> That's my other question. (
> https:/
>
> Let me give another example.Copying script from (
> https:/
>
> Using my own custom materials.
>
>
> materials.
>
> In the second compression, change triax.maxStrain
> young's modulus to young=64e7, it can maintain the stress of the first
> isotropic compression, otherwise the stress becomes 0.
>
> I wonder why young's modulus can cause such a big change? How can I
> adjust:)
>
> Thanks
>
> #######
> # encoding: utf-8
>
> sigmaIso=-1e5
>
> #import matplotlib
> #matplotlib.
>
> # generate loose packing
> from yade import pack, qt, plot
>
> O.periodic=True
>
>
> sphere=
> sp=pack.
> sp.makeCloud(
> sp.toSimulation()
>
> O.engines=[
> ForceResetter(),
> InsertionSortCo
> InteractionLoop(
> [Ig2_Sphere_
> [Ip2_FrictMat_
> [Law2_ScGeom_
> ),
> PeriTriaxContro
> # specify target values and whether they are strains or
> stresses
> goal=(sigmaIso,
> # type of servo-control
> dynCell=
> # wait until the unbalanced force goes below this value
> maxUnbalanced=
> # call this function when goal is reached and the packing
> is stable
> doneHook=
> ),
> NewtonIntegrato
> PyRunner(
> ]
> O.dt=.5*
>
> def addPlotData():
> plot.addData(
>
> sxx=triax.
>
> exx=triax.
> # save all available energy data
> Etot=O.
> )
>
> # enable energy tracking in the code
> O.trackEnergy=True
>
> # define what to plot
> plot.plots=
> i':('exx'
> # energy plot
> ' i ':(O.energy.
> }
> # show the plot
> plot.plot()
>
> def compactionFinis
> # set the current cell configuration to be the reference one
> O.cell.
> # change control type: keep constant confinement in x,y, 20%
> compression in z
> triax.goal=
> triax.stressMask=3
> # allow faster deformation along x,y to better maintain stresses
> triax.maxStrain
> # next time, call triaxFinished instead of compactionFinished
> triax.doneHook=
> # do not wait for stabilization before calling triaxFinished
> triax.maxUnbala
>
> def triaxFinished():
> print 'Finished'
> O.pause()
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______
> Mailing list: https:/
> Post to : <email address hidden>
> Unsubscribe : https:/
> More help : https:/
>
>
jamespaul (jamespauljames) said : | #2 |
Thank you so much,I always trouble you.I've been losing sleep over this for a few nights. Please help me.(ㄒoㄒ)
>Depending on stiffness of particles, pseudo-mass of the cell, and damping, it will oscillate more or less.
Related parameters in PeriTriaxContro
As young's modulus increases (6e10), how do I set these values.It's a shame that I lack knowledge of physics. I don't have any experience.
I checked the documentation.
1.growDamping(=.25)
Damping of cell resizing (0=perfect control, 1=no control at all); see also wallDamping in TriaxialStressC
2.mass(=NaN)
mass of the cell (user set); if not set and dynCell is used, it will be computed as sum of masses of all particles.
I'm using dynCell, and I think it will compute as sum of masses of all particles automatically.
3.maxStrainRate
Maximum strain rate of the periodic cell.
I set it to(0,0,0)
4.O.dt=
Should I also reduce the step size as the young's modulus increases?
jamespaul (jamespauljames) said : | #3 |
>About growDamping
What's the meaning of perfect control and no control?No control means the wall won't move?
How do I adjust it?
Jérôme Duriez (jduriez) said : | #4 |
Regarding 4. of #2,
Yes, O.dt has to change when young parameter changes. This is kind of part of DEM fundamentals I would say (no offense meant), see [*] and 2.2 + Appendix of [AboulHosn2017], and related references for instance.
I would advice you use GlobalStiffness
[*] https:/
[**] https:/
Hi,
If maxStrainRate=0 then the cell geometry is fixed and then stress will not be corrected. It should be >0, and that's probably the main parameter to set if you change stiffness and want to avoid too much oscillations for stiff materials.
> No control means the wall won't move?
Yes, just like maxStrainRate=0. :)
jamespaul (jamespauljames) said : | #6 |
Thanks Bruno and Jérôme,
Because I'm doing x-axis one-dimensional compression experiment.
triax.goal=
triax.stressMask=4
triax.globUpdate=1
triax.growDamping=1
triax.maxStrain
Am I setting this up correctly?
jamespaul (jamespauljames) said : | #7 |
Hi Jérôme,
>PWaveTimeStep
Get timestep accoring to the velocity of P-Wave propagation; computed from sphere radii, rigidities and masses.
So I think it will automatically adjust according to the young's modulus of the ball and the number of particles in the ball (if each ball is the same). I do not need to adjust the coefficient before PWaveTimeStep.
>GlobalStiffnes
If i use:
GlobalStiffness
TimestepSafetyC
James
Jérôme Duriez (jduriez) said : | #8 |
I thought you were changing "young" in the course of one simulation. I realize it may not be the case, and updating time step indeed is less of a concern.
jamespaul (jamespauljames) said : | #9 |
I just changed the friction. I found that the increase of particles and young's modulus would make the simulation distorted.I don't know why.
jamespaul (jamespauljames) said : | #10 |
Thanks Bruno Chareyre, that solved my question.