ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/mdtools/md_code/Thermo.cpp
(Generate patch)

Comparing:
branches/mmeineke/mdtools/md_code/Thermo.cpp (file contents), Revision 10 by mmeineke, Tue Jul 9 18:40:59 2002 UTC vs.
trunk/mdtools/md_code/Thermo.cpp (file contents), Revision 218 by chuckv, Sun Dec 29 19:11:05 2002 UTC

# Line 1 | Line 1
1   #include <cmath>
2 + #include <mpi++.h>
3  
4   #include "Thermo.hpp"
5   #include "SRI.hpp"
# Line 17 | Line 18 | double Thermo::getKinetic(){
18    DirectionalAtom *dAtom;
19  
20    int n_atoms;
21 +  double kinetic_global;
22    Atom** atoms;
23 +
24    
25    n_atoms = entry_plug->n_atoms;
26    atoms = entry_plug->atoms;
27  
28    kinetic = 0.0;
29 +  kinetic_global = 0.0;
30    for( kl=0; kl < n_atoms; kl++ ){
31  
32      vx2 = atoms[kl]->get_vx() * atoms[kl]->get_vx();
# Line 44 | Line 48 | double Thermo::getKinetic(){
48          + (jz2 / dAtom->getIzz());
49      }
50    }
51 <  
51 > #ifdef IS_MPI
52 >  MPI_COMM_WORLD.Allreduce(&kinetic,&kinetic_global,1,MPI_DOUBLE,MPI_SUM);
53 >  kinetic = kinetic_global;
54 > #endif
55 >
56    kinetic = kinetic * 0.5 / e_convert;
57  
58    return kinetic;
# Line 53 | Line 61 | double Thermo::getPotential(){
61   double Thermo::getPotential(){
62    
63    double potential;
64 +  double potential_global;
65    int el, nSRI;
66    SRI** sris;
67  
# Line 60 | Line 69 | double Thermo::getPotential(){
69    nSRI = entry_plug->n_SRI;
70  
71    potential = 0.0;
72 <
72 >  potential_global = 0.0;
73    potential += entry_plug->longRange->get_potential();;
74  
75    // std::cerr << "long range potential: " << potential << "\n";
67
76    for( el=0; el<nSRI; el++ ){
77      
78      potential += sris[el]->get_potential();
79    }
80  
81 +  // Get total potential for entire system from MPI.
82 + #ifdef IS_MPI
83 +  MPI_COMM_WORLD.Allreduce(&potential,&potential_global,1,MPI_DOUBLE,MPI_SUM);
84 +  potential = potential_global;
85 + #endif
86 +
87    return potential;
88   }
89  
# Line 83 | Line 97 | double Thermo::getTemperature(){
97  
98   double Thermo::getTemperature(){
99  
100 <  const double kb = 1.88E-3; // boltzman's constant in kcal/(mol K)
100 >  const double kb = 1.9872179E-3; // boltzman's constant in kcal/(mol K)
101    double temperature;
102    
103    int ndf = 3 * entry_plug->n_atoms + 3 * entry_plug->n_oriented
# Line 95 | Line 109 | double Thermo::getPressure(){
109  
110   double Thermo::getPressure(){
111  
112 <  const double conv_Pa_atm = 9.901E-6; // convert Pa -> atm
113 <  const double conv_internal_Pa = 1.661E-7; //convert amu/(fs^2 A) -> Pa
114 <  const double conv_A_m = 1.0E-10; //convert A -> m
112 > //  const double conv_Pa_atm = 9.901E-6; // convert Pa -> atm
113 > // const double conv_internal_Pa = 1.661E-7; //convert amu/(fs^2 A) -> Pa
114 > //  const double conv_A_m = 1.0E-10; //convert A -> m
115  
116    return 0.0;
117   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines