Etomica Change History
Back to the Etomica page
- Under development (not yet posted)
- A Customizer for the Phase class
- A units editor for Devices and Displays
- A Gear integrator, written with Ed Maginn
- Many new classes from Rob Riggleman: MeterTensor, MeterTensorVirial, MeterTensorVelocity, MeterProfile,
MeterSurfaceTension, MeterCollisionCounter, PotentialAssociation
- A 3D space by Rob Riggleman
- A space implementing a cell-based neighborlist
- A set of classes supporting lattice constructs
- July 10, 2000. Version 0.118
- Fixed problem with DisplayPhase when used at other than the default size/shape.
- PotentialField, a single-body atom potential
- Atom.Iterator.List, to create an iterator as needed by adding atoms to it
- A configuration editor that permits point-and-click positioning and deletion of molecules
- Connection of Phase with Integrator is done by calling setIntegrator method in Phase, rather
than invoking registerPhase (or setPhase) method in Integrator (these are now deprecated).
Each phase has one integrator,
while some integrators work the multiple phases. The general approach to connecting objects
is to put the connection methods in the object having multiple instances (e.g., Phase), rather than in the
object having one instance (e.g. Integrator). The same arrangement now applies to connect Meter
and Phase (many Meters in one Phase, so connection method (setPhase) is in Meter).
- Removed ColorScheme from Phase and Species. All dealings with ColorScheme classes are handled
in DisplayPhase, which now has get/set methods to specify it. Modified all ColorScheme classes
in accordance with the re-organization.
- static methods [e.g., phase(int i)] in Simulation to easily access the simulation elements.
- Eliminated ElementManager in Simulation; now just store Element instances in a LinkedList.
- June 23, 2000. Version 0.113
- Tensor class in Space
- The IntegratorHard.Meter inner class was eliminated and replaced by a CollisionListener inner interface.
Objects wishing to be informed of every collision processed by IntegratorHard can implement
this interface and register as listeners with the integrator. The MeterPressure inner class of
IntegratorHard was made a top-level class, name MeterPressureHard. It has a main method
demonstrating its use, and this can be examined to see how a CollisionListener is implemented.
- Eliminated methods in Phase that involve adding a Meter. Specification of the Phase in which a Meter performs
its measurements is done with the setPhase(Phase p) method in Meter. Meter is informed automatically and can
act on changes to the Phase's Integrator, IteratorFactory, or Boundary.
- June 14, 2000. Version 0.110
- A DeviceSlider that interfaces a slider with a property of an object.
- Change to Dimension, making it an abstract class instead of an interface. Added method
to obtain (from current unitSystem) the default I/O units for each dimension.
- Redesign of structure of unit classes. Unit class renamed to BaseUnit, and a new Unit class
introduced which holds a BaseUnit and Prefix. This change was needed because many objects were
using a common unit class, but may have wanted to set its Prefix differently.
- Introduction of a simulate.utility package to hold classes that perform some useful, non-simulation functions.
- Constructed UnitSystem.MKS
- Moved call to elementCoordinator out of makeSimpleSimulation (see Simulation.main)
- Moved global instance of elementCoordinator from Default to Simulation.
- Removed inheritance from Component or Container for most classes.
- June 12, 2000.
- Established this site.
- Introduced Modulator as a new top-level element. This class on the input side parallels the output function
of the Meter class. It permits a field of one object to be changed by another object, with the objects and
fields selected at design or run time. A Modulator interacts with a Device the way a Meter interacts with
a Display.
- Changed name of DisplayConfiguration to DisplayPhase.
- Introduced PhaseEvent.
- Introduced DisplayPhaseEvent and DisplayPhaseListener to handle events generated by mouse
and key input actions on a DisplayPhase. Added capability to select an atom and cause firing of
a DisplayPhaseEvent.
- Introduced Simulation.ElementCoordinator to oversee connection of Simulation.Element instances. This functionality
was previously handled by the Observer functions of the set of Simulation.ElementManager classes.
- Added a toString method to the static Dimension fields of the direct subclasses of Unit. This permits a
Dimension to be expressed in a string form.
- Added main methods to Simulation, Modulator, DisplayPhase.AtomActionWrapper to demonstrate their use. Also
introduced the Simulation.makeSimpleSimulation() method to aid development.
- Added an r2 method to Space to enable calculation of distance between two points.
- Made a general Meter and Unit and Dimension classes that can be formed as ratios of other like classes. This
would be used to form an intensive property and its units/dimensions, such as energy/mole.
This work is funded by the National Science Foundation, through a grant to the
CACHE Corporation.
Permission is granted to use the material on this site for your own academic research and instruction.
All other rights to the material on this site are reserved. In particular, you may not use this material for any
commercial purposes, nor may you redistribute it in any fashion. (It is likely that these restrictions
will be relaxed in the future, when Etomica is further along in its development. If you wish to do
more with this software now, please contact us.)
David Kofke <kofke@eng.buffalo.edu>
Created: Mon Jun 12, 2000
Last modified: Tue Aug 1 08:59:13 EDT 2000