Next: , Previous: General Commands, Up: Commands



4.3 simulation Commands

— Command: seed48 [int int int]

Corresponds to libc's seed48 function. With no argument, print the current values of the internal random number seed. With three (unsigned short) integers, sets the random number seed. Note: the seed is automatically saved and restored in checkpoints. The seed value is reset to 0 0 0 with the reset command, but not with the initialize command.

— Command: place obj loc

Manually move object indexed obj to location loc, a 3D vector.

— Command: pin obj
— Command: unpin obj

Fix object obj at its current location. This is usually done for boundary terminals. unpin allows an object to move freely.

— Command: scatter

Relocates every object to some random location within the bounding box. This is often done at the start of the simulation.

— Command: step

Advances the simulation one iteration using the current time_step (parameter). Each iteration evaluates the forces (spring, repulsion, gravity) acting upon all objects, and then updates the position and velocity by numerical integration.

— Command: snap-gravity-wells

Forces all objects to re-locate to the nearest gravity well in each hyperplane. Typically, this is used for final placement legalization.

— Command: kill-momentum

Resets velocities of all objects to 0.

— Command: shake-all [maxdist]

Randomly perturbs positions of all objects in random direction, uniformly random distance bounded by maxdist. This helps the system get unstuck from some local minima. If maxdist is omitted, the global temperature parameter is used instead.

Simulation and convergence routines.

— Command: simple-converge

Runs step iteratively until some convergence criterion is met. The convergence criterion used here is when the relative maximum change in position and velocity fall below the thresholds specified in the global parameters, position_tolerance and velocity_tolerance.

— Command: descend-gradient

Accelerates all objects in a straight line (constant acceleration determined by an initial force calculation), until potential energy no longer decreases monotonically. At the start of this routine, all velocity/momentum is reset to 0.

— Command: descend-gradient-converge

Repeatedly runs descend-gradient until local minimum in potential energy is found. This is very similar to the conjugate-gradient minimization method.

— Command: descend-potential

At the start of this routine, all velocity/momentum is reset to 0. Simulates transiently step until while potential energy is monotonically decreasing. Unlike descend-gradient the force is continuously updated with every iteration, so the paths taken by each object may curve. This stops early to avoid overshooting a local minimum due to kinetic energy.

— Command: descend-potential-converge

Repeatedly runs descend-potential until local minimum in potential energy is found.