← Back to team overview

yade-users team mailing list archive

[Question #238289]: Use Law2_ScGeom_CpmPhys_Cpm() with two spheres

 

New question #238289 on Yade:
https://answers.launchpad.net/yade/+question/238289

Hello everyone !

I'm trying to use Law2_ScGeom_CpmPhys_Cpm() with only two spheres to do an uniaxial test. by modifying the script uniax.py I found on the examples folder.

I first created two spĥeres :

O.bodies.append([
   utils.sphere(center=(0,0,-1.5*sphereRadius),radius=sphereRadius,material=concreteId,fixed=True),
   utils.sphere((0,0,1.5*sphereRadius),radius=sphereRadius,material=concreteId)
])

then defined the engines :

UX=uniaxialTestFeatures()
negIds,posIds,axis,crossSectionArea=UX['negIds'],UX['posIds'],UX['axis'],UX['area']

O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=1.5,label='is2aabb')],verletDist=.5*sphereRadius),
        InteractionLoop(
                [Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius,label='ss2sc')],
                [Ip2_CpmMat_CpmMat_CpmPhys()],
                [Law2_ScGeom_CpmPhys_Cpm()],
        ),
        NewtonIntegrator(damping=damping,label='damper'),
        CpmStateUpdater(realPeriod=.5),
        
UniaxialStrainer(strainRate=0.05,axis=axis,asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,blockDisplacements=False,blockRotations=False,setSpeeds=setSpeeds,label='strainer'),
        
        PyRunner(virtPeriod=1e-6/0.05,realPeriod=1,command= 'addPlotData()',label='plotDataCollector',initRun=True),
        PyRunner(realPeriod=4,command='stopIfDamaged()',label='damageChecker'),
]

The definition of fucntions stopIfDamaged(), initTest(), and addPlotData() stay the same.

Question : The data plot stays empty even if the simulation shows that the two spheres are interacting (tension and compression tests are running well) and the strengths fc and and ft printed on screen show "NAN".

- Is using two spheres only can show results similar to a test on a normal specimen (of 2000 spheres) ?
- Am I using the engines right ? I am new to YADE and that may be the problem

Another question not related to this topic : Are all the parameters of a Law hard coded or is it possible to modify them when writing the python script ?

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.