← Back to team overview

yade-users team mailing list archive

Re: [Question #269405]: Poisson ratio calibration in the uniaxial tension test

 

Hi Alexander,

sorry for not noticing before. neverDamage=True works ok for tensile part
(no spheres are cut from the rest of the specimen), but for shear part
there is still needed on more value: sigmaT=1e10 (any sufficiently large
value)

CpmMat(young=E,frictionAngle=0,poisson=v,density=D,neverDamage=True,sigmaT=1e10,label
= 'mat')

cheers
Jan





2015-07-19 10:51 GMT+02:00 Alexander <question269405@xxxxxxxxxxxxxxxxxxxxx>:

> New question #269405 on Yade:
> https://answers.launchpad.net/yade/+question/269405
>
> Hello everybody.
>
> I make simple uniaxial tension test for the steel plate. The tension is
> going along OY direction. The problem is that changing the poisson
> coefficient doesn't influence on the displacement along OX and along OY
> direction (http://i10.pixs.ru/storage/7/4/9/pic1JPG_7342749_18083749.jpg).
> The problem is that this range of values is constant for any value of
> poisson parameter (e.g. 0.3 like for real steel and 0.003). At the same
> time Young modulus works and influences to the displacement along OY
> direction.
>
> Here is my code:
>
> from yade import export
>
> ###################################################
> # define materials and model configuration
>
> E = 1.338e11 # Young's modulus
> v = 0.003   # Poisson's ratio
> P = 150e6    # initial pressure value
> D = 7850     # density
>
> r = 0.5     # spheres radius
> r_int = 1.5 # interaction radius
>
> # compute force per particle
> F = P*4*r**2
>
> # define plate material, create "dense" packing by setting friction to
> zero initially
> O.materials.append(CpmMat(young=E,frictionAngle=0,poisson=v,density=D,neverDamage=True,label
> = 'mat'))
>
> # represent plate like a set of regular monosized set of spheres
> # also set boundary conditions via predefined tensile force for spheres on
> ABCD and
> # fixed spheres on KGHO
>
> O.bodies.append(pack.regularOrtho(pack.inAlignedBox((0,0,0),(16.1,16.1,2.1)),r,0))
> for b in O.bodies:
>     if b.state.pos[1]+r > 15.9:
>       O.forces.addF(b.id,(0,F,0),permanent=True) # Add force for all
> spheres connected to ABCD
>     if b.state.pos[1]-r < 0.1:
>       O.forces.addF(b.id,(0,-F,0),permanent=True) # Add force for all
> spheres connected to KGHO
>
> ###################################################
> # define engines
>
> # simulation loop
> O.engines=[
>  ForceResetter(),
>
>  InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=r_int,label='bo1s')]),
>  InteractionLoop(
>
> [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=r_int,label='ig2ss')],
>     [Ip2_CpmMat_CpmMat_CpmPhys()],
>     [Law2_ScGeom_CpmPhys_Cpm()]
>  ),
>  CpmStateUpdater(realPeriod=1),
>  NewtonIntegrator(damping=0.4),
> ]
>
> ###################################################
> # start simulation and compute strain and stress
>
> # set the integration timestep to be 1/2 of the "critical" timestep
> O.dt=utils.PWaveTimeStep()/2
>
> # run one single step
> O.step()
>
> # reset interaction radius to the default value
> bo1s.aabbEnlargeFactor=1.0
> ig2ss.interactionDetectionFactor=1.0
>
> # run simulation, until static equilibrium will not reached
> while unbalancedForce()>1e-2:
>    O.run(10,True)
>
> ###################################################
> # save data to vtk. file
> vtk = export.VTKExporter('result')
>
> vtk.exportSpheres(what=[('radius','b.shape.radius'),('displacement','b.state.displ()')])
>
> So any ideas?
>
> with regards Alexander
>
> --
> You received this question notification because you are a member of
> yade-users, which 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
>

Follow ups

References