--- trunk/mdtools/md_code/Thermo.cpp 2002/07/09 18:40:59 11 +++ trunk/mdtools/md_code/Thermo.cpp 2002/12/29 19:11:05 218 @@ -1,4 +1,5 @@ #include +#include #include "Thermo.hpp" #include "SRI.hpp" @@ -17,12 +18,15 @@ double Thermo::getKinetic(){ DirectionalAtom *dAtom; int n_atoms; + double kinetic_global; Atom** atoms; + n_atoms = entry_plug->n_atoms; atoms = entry_plug->atoms; kinetic = 0.0; + kinetic_global = 0.0; for( kl=0; kl < n_atoms; kl++ ){ vx2 = atoms[kl]->get_vx() * atoms[kl]->get_vx(); @@ -44,7 +48,11 @@ double Thermo::getKinetic(){ + (jz2 / dAtom->getIzz()); } } - +#ifdef IS_MPI + MPI_COMM_WORLD.Allreduce(&kinetic,&kinetic_global,1,MPI_DOUBLE,MPI_SUM); + kinetic = kinetic_global; +#endif + kinetic = kinetic * 0.5 / e_convert; return kinetic; @@ -53,6 +61,7 @@ double Thermo::getPotential(){ double Thermo::getPotential(){ double potential; + double potential_global; int el, nSRI; SRI** sris; @@ -60,16 +69,21 @@ double Thermo::getPotential(){ nSRI = entry_plug->n_SRI; potential = 0.0; - + potential_global = 0.0; potential += entry_plug->longRange->get_potential();; // std::cerr << "long range potential: " << potential << "\n"; - for( el=0; elget_potential(); } + // Get total potential for entire system from MPI. +#ifdef IS_MPI + MPI_COMM_WORLD.Allreduce(&potential,&potential_global,1,MPI_DOUBLE,MPI_SUM); + potential = potential_global; +#endif + return potential; } @@ -83,7 +97,7 @@ double Thermo::getTemperature(){ double Thermo::getTemperature(){ - const double kb = 1.88E-3; // boltzman's constant in kcal/(mol K) + const double kb = 1.9872179E-3; // boltzman's constant in kcal/(mol K) double temperature; int ndf = 3 * entry_plug->n_atoms + 3 * entry_plug->n_oriented @@ -95,9 +109,9 @@ double Thermo::getPressure(){ double Thermo::getPressure(){ - const double conv_Pa_atm = 9.901E-6; // convert Pa -> atm - const double conv_internal_Pa = 1.661E-7; //convert amu/(fs^2 A) -> Pa - const double conv_A_m = 1.0E-10; //convert A -> m +// const double conv_Pa_atm = 9.901E-6; // convert Pa -> atm +// const double conv_internal_Pa = 1.661E-7; //convert amu/(fs^2 A) -> Pa +// const double conv_A_m = 1.0E-10; //convert A -> m return 0.0; }