## Lattice Models

The Lattice Model Category integrates and displays the equations of motion for a one dimensional lattice of "oscillators" with nearest neighbor interactions. This is interesting in itself of course, but in addition it provides an important general method for making discrete approximations to many continuous wave equations.

An excellent introduction to lattice models will be found in the book "Waves Called Solitons: Concepts and Experiments" by Michel Remoissenet (Springer-Verlag, 1994, ISBN 3--540--57000--4) and in fact the implementation of the Lattice Model category in 3D-XplorMath, and the choice of particular models was strongly influenced by Remoissenet's treatment of the subject. For this reason we will only cover below what a user of 3D-XplorMath needs to know to use the Lattice Model category, and refer to the above text for the theoretical background.

For various reasons the number N of oscillators in the lattice is restricted to be one greater than a power of 2. (One not so obvious reason is that choice greatly speeds up the computation of the amplitudes of the normal modes for the linearized lattice.) Currently N can be any one of 3, 5.9. 17.33, 65, 129, 257, or 513.

The characteristics that determine the equations of motion of the lattice are:

• The mass of an oscillator,
• The "internal" force an oscillator exerts on a neighboring oscillator,
• The external force on an oscillator.

The mass of an oscillator is not set directly, but rather is derived from a parameter called the density, which has a default value of 1, but can be set to another value by the user. The mass satisfies the relation that the number N of oscillators times the mass of an oscillator is equal to the length of the lattice times its density.

The force between two neighboring oscillators is assumed to be a function, F(d), of the distance d separating them. If x_i is the displacement of the i-th oscillator from its equilibrium position, then the total force on the i-th oscillator due to its two neighbors is F(x_i - x_{i-1}) - F(x_{i+1} - x_i). The external force on the i-th oscillator is also assumed to be some function G(x_i) of the displacement x_i from equilibrium.

There are four preprogrammed Lattices: Fermi-Pasta-Ulam, Toda, Discrete Sine-Gordon, and Discrete Klein-Gordon. The internal forces between oscillators for these four are as follows:

• Fermi-Pasta-Ulam: F(d) = -aa d - bb d^2 - cc d^3 - dd d^4
• Toda: F(d) = aa (exp(-bb d) - 1)
• Discrete Sine-Gordon: F(d) = (cc/aa) d
• Discrete Klein-Gordon: F(d) = (cc/aa) d

and the external forces are:

• Fermi-Pasta-Ulam: G(d) = 0
• Toda: G(d) = 0
• Discrete Sine-Gordon: G(d) = bb^2 sin(d)
• Discrete Klein-Gordon: G(d) = bb^2 d.

In addition their is a User Defined... item in the Lattice menu that brings up a dialog that lets the user define internal and external forces.

The equations of motion can be integrated either with zero boundary conditions (i.e., x_1=x_N=0) or with periodic boundary conditions (x_1=x_N).

Various choices including initial conditions can be changed from their default values using the dialog brought up by the Set Lattice Parameters... menu item of the Lattice Model menu.