--- trunk/mdtools/headers/SimInfo.hpp 2002/09/30 20:35:42 124 +++ trunk/mdtools/headers/SimInfo.hpp 2003/01/27 21:28:19 249 @@ -1,28 +1,18 @@ #ifndef __SIMINFO_H__ #define __SIMINFO_H__ -#include + #include "Atom.hpp" #include "Molecule.hpp" #include "AbstractClasses.hpp" -#ifdef MPI -#include "mpiSimulation.hpp" -#endif +#include "MakeStamps.hpp" + class SimInfo{ public: - SimInfo(){ - excludes = NULL; - n_constraints = 0; - n_oriented = 0; - n_dipoles = 0; - longRange = NULL; - the_integrator = NULL; - setTemp = 0; - thermalTime = 0.0; - } + SimInfo(); ~SimInfo(){} int n_atoms; // the number of atoms @@ -48,7 +38,10 @@ class SimInfo{ (public) SRI **sr_interactions;// the array of short range force objects LRI *longRange; // the long range force object + double lrPot; // the potential energy from the long range calculations. + double box_x, box_y, box_z; // the periodic boundry conditions + double rList, rCut; // variables for the neighborlist double dt, run_time; // the time step and total time double sampleTime, statusTime; // the position and energy dump frequencies @@ -57,15 +50,43 @@ class SimInfo{ (public) int n_mol; // n_molecules; Molecule* molecules; // the array of molecules + + int nComponents; // the number of componentsin the system + int* componentsNmol; // the number of molecules of each component + MoleculeStamp** compStamps;// the stamps matching the components + LinkedMolStamp* headStamp; // list of stamps used in the simulation + + Integrator *the_integrator; // the integrator of the simulation char finalName[300]; // the name of the eor file to be written char sampleName[300]; // the name of the dump file to be written char statusName[300]; // the name of the stat file to be written -#ifdef MPI - mpiSimulation* mpiSim; -#endif + + + // refreshes the sim if things get changed (lode balanceing, volume + // adjustment, etc.) + + void refreshSim( void ); + + + // sets the internal function pointer to fortran. + + void setInternal( void (*fSetup)( int*, double*, double*, double*) ){ + setFsimulation = fSetup; + } + +private: + + // function to wrap the fortran function + void wrapMe(); + + // private function to initialize the fortran side of the simulation + void (*setFsimulation)(int* nLocal, double *boxSizeArray, + double* rList, double* rCut ); + + };