úÎ./,`"      !(c) 2011 Brent YorgeyBSD-style (see LICENSE)byorgey@cis.upenn.eduNone=KMWA particle has a current position, current velocity, and current force acting on it.An Ensembleÿ* is a physical configuration of particles. It consists of a mapping from particle IDs (unique integers) to particles, and a list of forces that are operative. Each force has a list of edges to which it applies, and is represented by a function giving the force between any two points. *An edge is a pair of particle identifiers. $Used to uniquely identify particles.<Create an initial particle at rest at a particular location.%Options for customizing a simulation.bDamping factor to be applied at each step. Should be between 0 and 1. The default is 0.8.<Kinetic energy below which simulation should stop. If Nothing?, pay no attention to kinetic energy. The default is  Just 0.001..Maximum number of simulation steps. If NothingD, pay no attention to the number of steps. The default is  Just 1000.PSimulate one time step for an entire ensemble, with the given damping factor.„Simulate one time step for a particle (assuming the force acting on it has already been computed), with the given damping factor.JRecalculate all the forces acting in the next time step of an ensemble.0Compute the total kinetic energy of an ensemble.„Simulate a starting ensemble according to the given options, producing a list of all the intermediate ensembles. Useful for, e.g.P, making an animation. Note that the resulting list could be infinite, if a … is not specified and either the kinetic energy never falls below the specified threshold, or no energy threshold is specified.rRun a simluation from a starting ensemble, yielding either the first ensemble to have kinetic energy below the U (if given), or the ensemble that results after a number of steps equal to the 1 (if given), whichever comes first. Otherwise  forceLayout will not terminate.distForce f p1 p2a computes the force between two points as a multiple of the unit vector in the direction from p1 to p2, given a function fZ which computes the force's magnitude as a function of the distance between the points. hookeForce k l p1 p2 computes the force on p1, assuming that p1 and p23 are connected by a spring with equilibrium length l and spring constant k.!coulombForce kr computes the electrostatic repulsive force between two charged particles, with constant of proportionality k.#  !""  !"   !  !"#      !"#force-layout-0.4.0.2Physics.ForceLayoutParticle_pos_vel_forceEnsemble_forces _particlesEdgePIDforceposvel initParticleForceLayoutOptsFLOpts_damping _energyLimit _stepLimitforces particles ensembleStep particleStep recalcForces kineticEnergydamping energyLimit stepLimitsimulate forceLayout distForce hookeForce coulombForce$fDefaultForceLayoutOpts