--- trunk/src/brains/Thermo.cpp 2008/09/12 20:51:22 1292 +++ branches/development/src/brains/Thermo.cpp 2010/07/09 23:08:25 1465 @@ -6,19 +6,10 @@ * redistribute this software in source and binary code form, provided * that the following conditions are met: * - * 1. Acknowledgement of the program authors must be made in any - * publication of scientific results based in part on use of the - * program. An acceptable form of acknowledgement is citation of - * the article in which the program was described (Matthew - * A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher - * J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented - * Parallel Simulation Engine for Molecular Dynamics," - * J. Comput. Chem. 26, pp. 252-271 (2005)) - * - * 2. Redistributions of source code must retain the above copyright + * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - * 3. Redistributions in binary form must reproduce the above copyright + * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. @@ -37,6 +28,15 @@ * arising out of the use of or inability to use software, even if the * University of Notre Dame has been advised of the possibility of * such damages. + * + * SUPPORT OPEN SCIENCE! If you use OpenMD or its source code in your + * research, please cite the appropriate papers when you publish your + * work. Good starting points are: + * + * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). + * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). + * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). + * [4] Vardeman & Gezelter, in progress (2009). */ #include @@ -49,9 +49,9 @@ #include "brains/Thermo.hpp" #include "primitives/Molecule.hpp" #include "utils/simError.h" -#include "utils/OOPSEConstant.hpp" +#include "utils/PhysicalConstants.hpp" -namespace oopse { +namespace OpenMD { RealType Thermo::getKinetic() { SimInfo::MoleculeIterator miter; @@ -103,7 +103,7 @@ namespace oopse { #endif //is_mpi - kinetic = kinetic * 0.5 / OOPSEConstant::energyConvert; + kinetic = kinetic * 0.5 / PhysicalConstants::energyConvert; return kinetic; } @@ -139,7 +139,7 @@ namespace oopse { RealType Thermo::getTemperature() { - RealType temperature = ( 2.0 * this->getKinetic() ) / (info_->getNdf()* OOPSEConstant::kb ); + RealType temperature = ( 2.0 * this->getKinetic() ) / (info_->getNdf()* PhysicalConstants::kb ); return temperature; } @@ -158,7 +158,7 @@ namespace oopse { tensor = getPressureTensor(); - pressure = OOPSEConstant::pressureConvert * (tensor(0, 0) + tensor(1, 1) + tensor(2, 2)) / 3.0; + pressure = PhysicalConstants::pressureConvert * (tensor(0, 0) + tensor(1, 1) + tensor(2, 2)) / 3.0; return pressure; } @@ -173,7 +173,7 @@ namespace oopse { tensor = getPressureTensor(); - pressure = OOPSEConstant::pressureConvert * tensor(direction, direction); + pressure = PhysicalConstants::pressureConvert * tensor(direction, direction); return pressure; } @@ -210,7 +210,7 @@ namespace oopse { Snapshot* curSnapshot = info_->getSnapshotManager()->getCurrentSnapshot(); Mat3x3d tau = curSnapshot->statData.getTau(); - pressureTensor = (p_global + OOPSEConstant::energyConvert* tau)/volume; + pressureTensor = (p_global + PhysicalConstants::energyConvert* tau)/volume; return pressureTensor; } @@ -249,16 +249,21 @@ namespace oopse { Vector3d pos1, pos2, rab; #ifdef IS_MPI + std::cerr << "tap = " << tap.first << " " << tap.second << std::endl; int mol1 = info_->getGlobalMolMembership(tap.first); int mol2 = info_->getGlobalMolMembership(tap.second); - + std::cerr << "mols = " << mol1 << " " << mol2 << std::endl; + int proc1 = info_->getMolToProc(mol1); int proc2 = info_->getMolToProc(mol2); + std::cerr << " procs = " << proc1 << " " <getIOIndexToIntegrableObject(tap.first); + std::cerr << " on proc " << proc1 << ", sd1 has global index= " << sd1->getGlobalIndex() << std::endl; pos1 = sd1->getPos(); data[0] = pos1.x(); data[1] = pos1.y(); @@ -272,6 +277,7 @@ namespace oopse { if (proc2 == worldRank) { StuntDouble* sd2 = info_->getIOIndexToIntegrableObject(tap.second); + std::cerr << " on proc " << proc2 << ", sd2 has global index= " << sd2->getGlobalIndex() << std::endl; pos2 = sd2->getPos(); data[0] = pos2.x(); data[1] = pos2.y(); @@ -298,4 +304,4 @@ namespace oopse { } -} //end namespace oopse +} //end namespace OpenMD