I am learning J and writing a program in this language to simulate a physical
phenomenon of interactions between atoms (each atom is described by
coordinates, velocities, forces, etc.). I am wondering how to store data in
such a simulation.
The simulation involves applying a function that performs a single simulation
step several times:
do_step^:42 initial_data
Simulation step consists of several substeps. Which storage option is better or
is there other way than the ones listed below?
1) Data stored in public nouns (one noun is a matrix of coordinates of atoms,
another noun is a matrix of velocities of atoms, etc.). Then do_step calls
substep functions that overwrites these public nouns:
do_step =: monad define
velocities =: forces update_velocities velocities
positions =: velocities update_positions positions
...
)
2) Data stored in an array of boxes (in the first box an array of coordinates
of atoms, in the second box an array of velocities of atoms, etc.). Then
do_step is the composition of all substep functions and each substep function
is a monad that creates modified array of boxes using m} :
do_step =: monad : 'do_substep_k ... do_substep_2 do_substep_1 y'
Martin
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm