00001 /* ---------------------------------------------------------------------- 00002 miniMD is a simple, parallel molecular dynamics (MD) code. miniMD is 00003 an MD microapplication in the Mantevo project at Sandia National 00004 Laboratories ( http://software.sandia.gov/mantevo/ ). The primary 00005 authors of miniMD are Steve Plimpton and Paul Crozier 00006 (pscrozi@sandia.gov). 00007 00008 Copyright (2008) Sandia Corporation. Under the terms of Contract 00009 DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains 00010 certain rights in this software. This library is free software; you 00011 can redistribute it and/or modify it under the terms of the GNU Lesser 00012 General Public License as published by the Free Software Foundation; 00013 either version 3 of the License, or (at your option) any later 00014 version. 00015 00016 This library is distributed in the hope that it will be useful, but 00017 WITHOUT ANY WARRANTY; without even the implied warranty of 00018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 Lesser General Public License for more details. 00020 00021 You should have received a copy of the GNU Lesser General Public 00022 License along with this software; if not, write to the Free Software 00023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00024 USA. See also: http://www.gnu.org/licenses/lgpl.txt . 00025 00026 For questions, contact Paul S. Crozier (pscrozi@sandia.gov). 00027 00028 Please read the accompanying README and LICENSE files. 00029 ---------------------------------------------------------------------- */ 00030 00031 #ifndef THERMO_H 00032 #define THERMO_H 00033 00034 #include "atom.h" 00035 #include "neighbor.h" 00036 #include "force.h" 00037 00038 class Thermo { 00039 public: 00040 int nstat; 00041 int mstat; 00042 int ntimes; 00043 int *steparr; 00044 double *tmparr; 00045 double *engarr; 00046 double *prsarr; 00047 00048 Thermo(); 00049 ~Thermo(); 00050 void setup(double,int); 00051 double temperature(Atom &); 00052 double energy(Atom &, Neighbor &, Force &); 00053 double pressure(double, Atom &); 00054 void compute(int, Atom &, Neighbor &, Force &); 00055 00056 private: 00057 double rho; 00058 }; 00059 00060 #endif