← Back to team overview

yade-users team mailing list archive

[Question #294519]: Forcing InsertionSortCollider execution

 

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

Hi,

I would like to force InsertionSortCollider to do his job on demand, and could not find how to do it. Is it possible ?

To give you some background about the issue, I'd like to introduce distant interactions at some point in a simulation, changing aabbEnlargeFactor and interactionDetectionFactor once the simulation has already started. However, I have been unsuccessful when InsertionSortCollider does not run right after the changes (and it does not always run)

The script below considers two distant spheres to illustrate the issue and the link with InsertionSortCollider executions : change O.run(10,1) to e.g. O.run(1,1) and ISC would run each timestep and I would get my distant interaction..


************************************************
 from yade import timing
O.timingEnabled=True

O.bodies.append(sphere(Vector3(0,0,0),1,fixed=True))
O.bodies.append(sphere(Vector3(0,0,3),1,fixed=True))

O.run(10,1)
print 'Number interactions = ', O.interactions.countReal()

# Attempting to introduce distant interactions
O.engines[1].boundDispatcher.functors[0].aabbEnlargeFactor = 2.0
O.engines[2].geomDispatcher.functors[0].interactionDetectionFactor = 2.0
O.engines[2].lawDispatcher.functors[0].neverErase = True

O.step()
print 'Number interactions = ', O.interactions.countReal()
# => 0 in this case, I need InsertionSortCollider to run to get my interaction

yade.timing.stats()
*******************************************************

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