next up previous contents
Next: Structure of xpl2lis Up: Implementation Previous: Implementation

Structure of EGO

egmach.c:
EGO is designed to run on different parallel computers employing PVM, MPI or PARIX{\.{T}}his module contains our ``Parallel Computer Interface'' (PCI) of EGO employing one of above named parallel interface languages. This is done via a lot of preprocessor compiler directives and, therefore, this file is hard to read. All other functions in EGO call these PCI-functions defined in egmach.c.
egmaster.c:
This module contains the main loop over all integration steps on the master node. During every integration step the energy values sent from the worker nodes are collected, summed up and printed out. Periodically also atom coordinates are collected for saving in EGO-output files or restart files.
egnode.c:
This module contains initialization and the main loop over all integration steps performed on a worker node. After initialization multipole moments of any clusters on the own node are calculated. Together with atom positions these data are distributed to all other worker nodes via ``data packets''. During one integration step data packets from all other worker nodes have to be collected. The evaluation of such a data packet includes the summing up of short range forces like bonding and angle forces. The long range forces are calculated by FAMUSAMM. After the evaluation of each data packet the forces acting on all own atoms are known and a verlet integration step is performed. Energy and periodically the new coordinates are sent to the master node.
egtree.c:
This module contains all things concerning FAMUSAMM.
egclust.c:
This module manages the clustering of structural units to clusters and builds up the tree structure which is needed for the FMM.


next up previous contents
Next: Structure of xpl2lis Up: Implementation Previous: Implementation
Helmut Heller
2000-04-19