← Back to team overview

yade-users team mailing list archive

Re: Uniaxial Test results

 

On 17 April 2010 16:39, Nasibeh Moradi <nasibeh.moradi@xxxxxxxxx> wrote:

> hi,
> I have written two contact law(simple and cohesive) and lp functor,
> I want to check them, how can I check it?
>

To test a contact law I would suggest you to take a very simple case, like a
sphere-sphere interaction (or if you prefer a box-sphere interaction) as a
case of study. What (generally) you check is that the numerical solution and
the analytical solution you compare are the same. The numerical solution is
that one you obtain by the code, like the normal force at contact with
respect to the relative approach. The analytical solution is simply the law
you implemented (still in this case the relationship between forces and
displacements at contacts, both in the normal and tangential direction).

According to the code, you can proceed both in displacement or force
control. If you also include damping in the force law, you should check, for
instance, the relative displacement over the time, so that your analytical
solution is now the solution to the differential equation that represents
the motion (easy to get it by hand).
Read also this paper, it might be useful
http://cedb.asce.org/cgi/WWWdisplay.cgi?160824

cheers, Chiara



> I used UniaxialStrainer and drew the graph sigma:epsilon, and obtained
> E(young module) from slip of graph,
> but the result is bad.
> My material have E=74e9, from graph obtained ~30e9 (from my law).
> I did uniaxial test  with your law,  the graph is attached. the graph is
> same for both of compression and tension .
> I forget anything?
> The crossSection from utils.uniaxialTestFeatures() is 2*Area(Area is
> calculated by hand). it is possible?!
>
>
> The code:
>
> import itertools, time
> from yade import utils, pack,timing,plot
>
> planeSize=Vector3(0.08,0.08,0.006)
> rSphere=0.001
> strainRate=0.001
>
> #Add material
>
> O.materials.append(FrictMat(young=74.1e9,frictionAngle=0.179,poisson=0.2,density=2500,
>                        label='PlaneMaterial'))
>
> #generate a FCC Pack
> a=2*rSphere;
> Spheres=[]
> h=a*sqrt(2)/2
> ii,jj,kk=[range(0,10),range(0,20),range(0,30)]
>
> for i,j,k in itertools.product(ii,jj,kk):
>     x,y,z=0+rSphere+i*sqrt(2)*a,0+rSphere+j*h,0+rSphere+k*h
>     if j%2==0: x+= sqrt(2)*a/2. if k%2==0 else -sqrt(2)*a/2.
>     if k%2!=0: x+=sqrt(2)*a/2.
>
> Spheres+=[utils.sphere((x,y,z),radius=rSphere,color=(1,0,1),material='PlaneMaterial')]
>
> PlaneIds=O.bodies.append(Spheres)
>
> bb=utils.uniaxialTestFeatures()
>
> negIds,posIds,axis,crossSectionArea=bb['negIds'],bb['posIds'],bb['axis'],bb['area']
> O.dt=0.8*utils.PWaveTimeStep()
>
> #O.initializers=[
> #       BoundDispatcher([Bo1_Sphere_Aabb()])
> #]
> O.engines=[
>         ForceResetter(),
>
>         BoundDispatcher([
>                 Bo1_Sphere_Aabb(aabbEnlargeFactor=1.07)
>         ]),
>
>         InsertionSortCollider(),
>
>         InteractionDispatchers(
>                 [Ig2_Sphere_Sphere_Dem3DofGeom()],
>                 [Ip2_FrictMat_FrictMat_FrictPhys()],
>                 [Law2_Dem3DofGeom_FrictPhys_Basic()]
>                  ),
>
>         #GravityEngine(gravity=[0,0,-9.81]),
>         NewtonIntegrator(),
>         UniaxialStrainer(strainRate=-strainRate,axis=axis,asymmetry=0,
>
> posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,
>                     blockDisplacements=False,blockRotations=False,
>                     setSpeeds=True,label='strainer'),
>         PeriodicPythonRunner(virtPeriod=3e-7/strainRate,realPeriod=1,
>
> command='addPlotData()',label='plotDataCollector',initRun=True)
> ]
>
> plot.plots={'eps':('sigma',)}
>
> O.saveTmp('initial');
> def addPlotData():
>
> yade.plot.addData({'t':O.time,'i':O.iter,'eps':strainer.strain,'sigma':strainer.avgStress})
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users<https://launchpad.net/%7Eyade-users>
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users<https://launchpad.net/%7Eyade-users>
> More help   : https://help.launchpad.net/ListHelp
>
>

Follow ups

References