← Back to team overview

yade-users team mailing list archive

Re: [Question #652185]: when i give a zero strain at the first step

 

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

Description changed to:
when i give a [0,0,0] strain to the Yade, the Yade gives back a stress that is not zero, and then give a zero strain to Yade, and Yade will give back a different stress. 
the question is when i set different young of the balls, i think the stress is no doubt different, however, when i give a strain like[1e-7,0,0],[0,1e-7,0],[0,0,1e-7] at the beginning of steps, the stress Yade get is different.
part of the code is as shown below:

.................................................................................................

O.load('/tmp/cccc.gz') 
O.dt=1e-8 

# see the example of peri3dcontroller, 1.5 is used to speed up the computation
EnlargeFactor=1.5 
EnlargeFactor=1.0
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=EnlargeFactor,label='bo1s')]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=EnlargeFactor,label='ig2ss')],
		[Ip2_CpmMat_CpmMat_CpmPhys()],[Law2_ScGeom_CpmPhys_Cpm()]),
	NewtonIntegrator(),
	
O.cell.velGrad=utils.Matrix3(0,0,0,0,0,0,0,0,0)
O.step()
bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.    


......................................................................................................................................................................


		for b in O.bodies:
			b.material.young = 1.0001*17e10     #change it to get different stress
     			
			ag = [0]*3      
			ag[0] = arr[0] - arrcc[0] #arr means current step stain and arrcc means last step strain
			ag[1] = arr[1] - arrcc[1]
 			ag[2] = arr[2] - arrcc[2]

			ns=100
			
			dstrain = utils.Matrix3(ag[0],ag[2],0,0,ag[1],0,0,0,0)      # the goal strain xx xy xz, yx yy yz, zx zy zz
			O.cell.velGrad=dstrain/(ns*O.dt)

			O.run(ns,True)                                               
	
			stressValue=utils.getStress()
			stressxx=stressValue[0,0]                                   # the return stress xx
			stressyy=stressValue[1,1]                                   # the return stress yy
			stressxy=(stressValue[0,1]+stressValue[1,0])/2              # the return stress xy = (xy + yx)/2

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