← Back to team overview

yade-users team mailing list archive

Re: [Question #678440]: young in PeriTriaxController

 

Question #678440 on Yade changed:
https://answers.launchpad.net/yade/+question/678440

    Status: Open => Answered

Chareyre proposed the following answer:
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 <question678440@xxxxxxxxxxxxxxxxxxxxx>
a écrit :

> New question #678440 on Yade:
> https://answers.launchpad.net/yade/+question/678440
>
> Hi,
>
> That's my other question.  (
> https://answers.launchpad.net/yade/+question/678348)
>
> Let me give another example.Copying script from (
> https://yade-dev.gitlab.io/trunk/tutorial-examples.html)
>
> Using my own custom materials.
>
>
> materials.append(FrictMat(young=64e9,poisson=0.12,density=2650,frictionAngle=0.23)
>
> In the second compression, change triax.maxStrainRate=(0,0,0).If I adjust
> 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.use('Agg')
>
> # generate loose packing
> from yade import pack, qt, plot
>
> O.periodic=True
>
>
> sphere=O.materials.append(FrictMat(young=64e9,poisson=0.12,density=2650,frictionAngle=0.23,label='sphere'))
> sp=pack.SpherePack()
> sp.makeCloud((0,0,0),(2,2,2),rMean=.1,rRelFuzz=.3,periodic=True)
> sp.toSimulation()
>
> 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=(10,10,10),
>                 # wait until the unbalanced force goes below this value
>                 maxUnbalanced=.1,relStressTol=1e-3,
>                 # call this function when goal is reached and the packing
> is stable
>                 doneHook='compactionFinished()'
>         ),
>         NewtonIntegrator(damping=.2),
>         PyRunner(command='addPlotData()',iterPeriod=100),
> ]
> 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],
>                 # save all available energy data
>                 Etot=O.energy.total(),**O.energy
>         )
>
> # enable energy tracking in the code
> O.trackEnergy=True
>
> # define what to plot
> plot.plots={'i':('unbalanced',),'i ':('sxx','syy','szz'),'
> i':('exx','eyy','ezz'),
>         # energy plot
>         ' i ':(O.energy.keys,None,'Etot'),
> }
> # show the plot
> plot.plot()
>
> def compactionFinished():
>         # 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,-.2)
>         triax.stressMask=3
>         # allow faster deformation along x,y to better maintain stresses
>         triax.maxStrainRate=(0,0,0)
>         # next time, call triaxFinished instead of compactionFinished
>         triax.doneHook='triaxFinished()'
>         # do not wait for stabilization before calling triaxFinished
>         triax.maxUnbalanced=10
>
> 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://launchpad.net/~yade-users
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>
>

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