← Back to team overview

yade-users team mailing list archive

Re: [Question #688791]: Unable to locate NewtonIntegrator within O.engines.

 

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

    Status: Answered => Solved

Leonard confirmed that the question is solved:
Thanks rcaulk and jduriez,

Sorry for getting back late.

I met this problem by:
###
Firstly run script1 to generate  sample and save it:
O.save('sample.yade.gz')
Then using script2 to reload the sample: O.load('sample.yade.gz'),
Then, carrying out triaxial test in script2.
In script2, when I define the O.engines as follow, it shows error:
###Following engines shows error###
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()],
		[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(),
		 Ip2_FrictMat_FrictMat_FrictPhys()],
		[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),Law2_ScGeom_FrictPhys_CundallStrack()]
	),
	GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
	triax,
	TriaxialStateRecorder(iterPeriod=100,file='WallStresses'),
	PyRunner(command='stopIfDamaged()',iterPeriod=1000),
	NewtonIntegrator(damping=0.4),
]

When I change the engines into the following one, it works well. The
difference between the error one and good one is the position of
NewtonIntegrator(damping=0.4).

##Following O.engines works well###
O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()],
		[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(),
		 Ip2_FrictMat_FrictMat_FrictPhys()],
		[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),Law2_ScGeom_FrictPhys_CundallStrack()]
	),
	GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
	triax,
	TriaxialStateRecorder(iterPeriod=100,file='WallStresses'),
	NewtonIntegrator(damping=0.4),
    PyRunner(command='stopIfDamaged()',iterPeriod=1000),
]

I don't know why but it works.

Cheers,

Leonard

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