← Back to team overview

yade-users team mailing list archive

Re: [Question #695226]: RungeKuttaCashKarp54Integrator with gridConnections is causing errors

 

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

Description changed to:
Hello,

I want to use the RungeKuttaCashKarp54Integrator engine in a simulation
with cylinderConnections. I added viscous damping to the source code of
Law2_ScGeom6D_CohFrictPhys_CohesionMoment, this caused the
NewtonIntegrator to be unstable (The objects are exploding). I concluded
this may be because of the integration scheme and opted to use
RungeKuttaCashKarp54Integrator. However when I try to run the simulation
with RungeKuttaCashKarp54Integrator, I get "RuntimeError: No
IGeomDispatcher in engines or inside InteractionLoop".

The minimum working code is given below. Please help me to fix the issue

Kind regards,
Rohit John

##############################################################################
# encoding: utf-8
"An example showing bending beams."

from yade.gridpfacet import *

#### Parameter ####
L=10.		# length of the beam
n=12		# number of nodes used to generate the beam
r=L/50.	# radius of the beam element

#### Engines ####
integrator=RungeKuttaCashKarp54Integrator([
	ForceResetter(),
	GeneralIntegratorInsertionSortCollider([Bo1_GridConnection_Aabb()]),
	InteractionLoop(
		[Ig2_GridNode_GridNode_GridNodeGeom6D()],
		[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False)],
		[Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
	),
	GravityEngine(gravity=Vector3(0,0,-9.81)),
])

#Tolerances can be set for the optimum accuracy
integrator.rel_err=1e-6;
integrator.abs_err=1e-6;

O.engines=[integrator,
]

#### Create materials and set different properties ####
O.materials.append(CohFrictMat(young=1e6,poisson=0.3,density=1e1,frictionAngle=radians(10),normalCohesion=1e40,shearCohesion=1e40,momentRotationLaw=True,label='mat1'))

#### Vertices ####
vertices1=[]

for i in range(0,n):
  vertices1.append( [i*L/n,0,0] )


#### Create cylinder connections ####
nodesIds=[]
cylIds=[]
cylinderConnection(vertices1,r,nodesIds,cylIds,color=[1,0,0],highlight=False,intMaterial='mat1')


#### Set boundary conditions ####
for i in range(0,1):
   O.bodies[nodesIds[i*n]].dynamic=False


#### Set a time step ####
O.dt=1e-05

#### Allows to reload the simulation ####
O.saveTmp()

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