ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/brains/Stats.cpp
Revision: 1402
Committed: Fri Jan 8 17:15:27 2010 UTC (15 years, 3 months ago) by chuckv
File size: 9827 byte(s)
Log Message:
Added preliminary code for Alpha Hull calculation using qhull.
Added preliminary support to SMIPD to support Alpha Hull.
Alpha Hull does not yet add the correct things to triangle to be returned to SMPID. 
Preliminary changes for shadow hamiltonian integrator.
Chages to md files so they will work in openMD. 

File Contents

# User Rev Content
1 gezelter 507 /*
2 chuckv 1402 * Copyright (c) 2005, 2009 The University of Notre Dame. All Rights Reserved.
3 gezelter 246 *
4     * The University of Notre Dame grants you ("Licensee") a
5     * non-exclusive, royalty free, license to use, modify and
6     * redistribute this software in source and binary code form, provided
7     * that the following conditions are met:
8     *
9 gezelter 1390 * 1. Redistributions of source code must retain the above copyright
10 gezelter 246 * notice, this list of conditions and the following disclaimer.
11     *
12 gezelter 1390 * 2. Redistributions in binary form must reproduce the above copyright
13 gezelter 246 * notice, this list of conditions and the following disclaimer in the
14     * documentation and/or other materials provided with the
15     * distribution.
16     *
17     * This software is provided "AS IS," without a warranty of any
18     * kind. All express or implied conditions, representations and
19     * warranties, including any implied warranty of merchantability,
20     * fitness for a particular purpose or non-infringement, are hereby
21     * excluded. The University of Notre Dame and its licensors shall not
22     * be liable for any damages suffered by licensee as a result of
23     * using, modifying or distributing the software or its
24     * derivatives. In no event will the University of Notre Dame or its
25     * licensors be liable for any lost revenue, profit or data, or for
26     * direct, indirect, special, consequential, incidental or punitive
27     * damages, however caused and regardless of the theory of liability,
28     * arising out of the use of or inability to use software, even if the
29     * University of Notre Dame has been advised of the possibility of
30     * such damages.
31 gezelter 1390 *
32     * SUPPORT OPEN SCIENCE! If you use OpenMD or its source code in your
33     * research, please cite the appropriate papers when you publish your
34     * work. Good starting points are:
35     *
36     * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).
37     * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).
38     * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).
39     * [4] Vardeman & Gezelter, in progress (2009).
40 gezelter 246 */
41    
42 gezelter 507 /**
43     * @file Stats.cpp
44     * @author tlin
45     * @date 11/04/2004
46     * @time 14:26am
47     * @version 1.0
48     */
49 gezelter 246
50     #include "brains/Stats.hpp"
51    
52 gezelter 1390 namespace OpenMD {
53 gezelter 246
54 gezelter 507 bool Stats::isInit_ = false;
55     std::string Stats::title_[Stats::ENDINDEX - Stats::BEGININDEX];
56     std::string Stats::units_[Stats::ENDINDEX - Stats::BEGININDEX];
57 tim 681 Stats::StatsMapType Stats::statsMap;
58 gezelter 507 Stats::Stats() {
59 gezelter 246
60     if (!isInit_) {
61 gezelter 507 init();
62     isInit_ = true;
63 gezelter 246 }
64    
65 gezelter 507 }
66 gezelter 246
67 gezelter 507 void Stats::init() {
68 gezelter 246
69     Stats::title_[TIME] = "Time";
70     Stats::title_[TOTAL_ENERGY] = "Total Energy";
71     Stats::title_[POTENTIAL_ENERGY] = "Potential Energy";
72     Stats::title_[KINETIC_ENERGY] = "Kinetic Energy";
73     Stats::title_[TEMPERATURE] = "Temperature";
74     Stats::title_[PRESSURE] = "Pressure";
75     Stats::title_[VOLUME] = "Volume";
76 chuckv 1153 Stats::title_[HULLVOLUME] = "Hull Volume";
77     Stats::title_[GYRVOLUME] = "Gyrational Volume";
78 gezelter 246 Stats::title_[CONSERVED_QUANTITY] = "Conserved Quantity";
79     Stats::title_[TRANSLATIONAL_KINETIC] = "Translational Kinetic";
80     Stats::title_[ROTATIONAL_KINETIC] = "Rotational Kinetic";
81     Stats::title_[LONG_RANGE_POTENTIAL] = "Long Range Potential";
82     Stats::title_[SHORT_RANGE_POTENTIAL] = "Short Range Potential";
83     Stats::title_[VANDERWAALS_POTENTIAL] = "van der waals Potential";
84 tim 681 Stats::title_[ELECTROSTATIC_POTENTIAL] = "Electrostatic Potential";
85 gezelter 246 Stats::title_[BOND_POTENTIAL] = "Bond Potential";
86     Stats::title_[BEND_POTENTIAL] = "Bend Potential";
87     Stats::title_[DIHEDRAL_POTENTIAL] = "Dihedral Potential";
88 cli2 1275 Stats::title_[INVERSION_POTENTIAL] = "Inversion Potential";
89 gezelter 246 Stats::title_[VRAW] = "Raw Potential";
90     Stats::title_[VHARM] = "Harmonic Potential";
91 chuckv 1402 Stats::title_[SHADOWH] = "Shadow Hamiltonian";
92 gezelter 1126 Stats::title_[PRESSURE_TENSOR_XX] = "P_xx";
93     Stats::title_[PRESSURE_TENSOR_XY] = "P_xy";
94     Stats::title_[PRESSURE_TENSOR_XZ] = "P_xz";
95     Stats::title_[PRESSURE_TENSOR_YX] = "P_yx";
96     Stats::title_[PRESSURE_TENSOR_YY] = "P_yy";
97     Stats::title_[PRESSURE_TENSOR_YZ] = "P_yz";
98     Stats::title_[PRESSURE_TENSOR_ZX] = "P_zx";
99     Stats::title_[PRESSURE_TENSOR_ZY] = "P_zy";
100     Stats::title_[PRESSURE_TENSOR_ZZ] = "P_zz";
101 chrisfen 998 Stats::title_[BOX_DIPOLE_X] = "box dipole x";
102     Stats::title_[BOX_DIPOLE_Y] = "box dipole y";
103     Stats::title_[BOX_DIPOLE_Z] = "box dipole z";
104 gezelter 1291 Stats::title_[TAGGED_PAIR_DISTANCE] = "Tagged_Pair_Distance";
105 skuang 1369 Stats::title_[RNEMD_EXCHANGE_TOTAL] = "RNEMD_exchange_total";
106 gezelter 1291
107 gezelter 246 Stats::units_[TIME] = "fs";
108     Stats::units_[TOTAL_ENERGY] = "kcal/mol";
109     Stats::units_[POTENTIAL_ENERGY] = "kcal/mol";
110     Stats::units_[KINETIC_ENERGY] = "kcal/mol";
111     Stats::units_[TEMPERATURE] = "K";
112     Stats::units_[PRESSURE] = "atm";
113     Stats::units_[VOLUME] = "A^3";
114 chuckv 1153 Stats::units_[HULLVOLUME] = "A^3";
115     Stats::units_[GYRVOLUME] = "A^3";
116 gezelter 246 Stats::units_[CONSERVED_QUANTITY] = "kcal/mol";
117     Stats::units_[TRANSLATIONAL_KINETIC] = "kcal/mol";
118     Stats::units_[ROTATIONAL_KINETIC] = "kcal/mol";
119     Stats::units_[LONG_RANGE_POTENTIAL] = "kcal/mol";
120     Stats::units_[SHORT_RANGE_POTENTIAL] = "kcal/mol";
121     Stats::units_[VANDERWAALS_POTENTIAL] = "kcal/mol";
122 tim 681 Stats::units_[ELECTROSTATIC_POTENTIAL] = "kcal/mol";
123 gezelter 246 Stats::units_[BOND_POTENTIAL] = "kcal/mol";
124     Stats::units_[BEND_POTENTIAL] = "kcal/mol";
125     Stats::units_[DIHEDRAL_POTENTIAL] = "kcal/mol";
126 cli2 1275 Stats::units_[INVERSION_POTENTIAL] = "kcal/mol";
127 gezelter 246 Stats::units_[VRAW] = "kcal/mol";
128     Stats::units_[VHARM] = "kcal/mol";
129 chuckv 1402 Stats::units_[SHADOWH] = "kcal/mol";
130 gezelter 1126 Stats::units_[PRESSURE_TENSOR_XX] = "amu*fs^-2*Ang^-1";
131     Stats::units_[PRESSURE_TENSOR_XY] = "amu*fs^-2*Ang^-1";
132     Stats::units_[PRESSURE_TENSOR_XZ] = "amu*fs^-2*Ang^-1";
133     Stats::units_[PRESSURE_TENSOR_YX] = "amu*fs^-2*Ang^-1";
134     Stats::units_[PRESSURE_TENSOR_YY] = "amu*fs^-2*Ang^-1";
135     Stats::units_[PRESSURE_TENSOR_YZ] = "amu*fs^-2*Ang^-1";
136     Stats::units_[PRESSURE_TENSOR_ZX] = "amu*fs^-2*Ang^-1";
137     Stats::units_[PRESSURE_TENSOR_ZY] = "amu*fs^-2*Ang^-1";
138     Stats::units_[PRESSURE_TENSOR_ZZ] = "amu*fs^-2*Ang^-1";
139 chrisfen 998 Stats::units_[BOX_DIPOLE_X] = "C*m";
140     Stats::units_[BOX_DIPOLE_Y] = "C*m";
141     Stats::units_[BOX_DIPOLE_Z] = "C*m";
142 gezelter 1291 Stats::units_[TAGGED_PAIR_DISTANCE] = "Ang";
143 skuang 1369 Stats::units_[RNEMD_EXCHANGE_TOTAL] = "Variable";
144 tim 681
145     Stats::statsMap.insert(StatsMapType::value_type("TIME", TIME));
146     Stats::statsMap.insert(StatsMapType::value_type("TOTAL_ENERGY", TOTAL_ENERGY));
147     Stats::statsMap.insert(StatsMapType::value_type("POTENTIAL_ENERGY", POTENTIAL_ENERGY));
148     Stats::statsMap.insert(StatsMapType::value_type("KINETIC_ENERGY", KINETIC_ENERGY));
149     Stats::statsMap.insert(StatsMapType::value_type("TEMPERATURE", TEMPERATURE));
150     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE", PRESSURE));
151     Stats::statsMap.insert(StatsMapType::value_type("VOLUME", VOLUME));
152 gezelter 1313 Stats::statsMap.insert(StatsMapType::value_type("HULLVOLUME", HULLVOLUME));
153     Stats::statsMap.insert(StatsMapType::value_type("GYRVOLUME", GYRVOLUME));
154 tim 681 Stats::statsMap.insert(StatsMapType::value_type("CONSERVED_QUANTITY", CONSERVED_QUANTITY));
155     Stats::statsMap.insert(StatsMapType::value_type("TRANSLATIONAL_KINETIC", TRANSLATIONAL_KINETIC));
156     Stats::statsMap.insert(StatsMapType::value_type("ROTATIONAL_KINETIC", ROTATIONAL_KINETIC));
157     Stats::statsMap.insert(StatsMapType::value_type("LONG_RANGE_POTENTIAL", LONG_RANGE_POTENTIAL));
158     Stats::statsMap.insert(StatsMapType::value_type("SHORT_RANGE_POTENTIAL", SHORT_RANGE_POTENTIAL));
159     Stats::statsMap.insert(StatsMapType::value_type("VANDERWAALS_POTENTIAL", VANDERWAALS_POTENTIAL));
160     Stats::statsMap.insert(StatsMapType::value_type("ELECTROSTATIC_POTENTIAL", ELECTROSTATIC_POTENTIAL));
161     Stats::statsMap.insert(StatsMapType::value_type("BOND_POTENTIAL", BOND_POTENTIAL));
162     Stats::statsMap.insert(StatsMapType::value_type("BEND_POTENTIAL", BEND_POTENTIAL));
163     Stats::statsMap.insert(StatsMapType::value_type("DIHEDRAL_POTENTIAL", DIHEDRAL_POTENTIAL));
164 cli2 1275 Stats::statsMap.insert(StatsMapType::value_type("INVERSION_POTENTIAL", INVERSION_POTENTIAL));
165 tim 681 Stats::statsMap.insert(StatsMapType::value_type("VRAW", VRAW));
166     Stats::statsMap.insert(StatsMapType::value_type("VHARM", VHARM));
167 gezelter 1126 Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_XX", PRESSURE_TENSOR_XX));
168     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_XY", PRESSURE_TENSOR_XY));
169     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_XZ", PRESSURE_TENSOR_XZ));
170     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_YX", PRESSURE_TENSOR_YX));
171     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_YY", PRESSURE_TENSOR_YY));
172     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_YZ", PRESSURE_TENSOR_YZ));
173     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_ZX", PRESSURE_TENSOR_ZX));
174     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_ZY", PRESSURE_TENSOR_ZY));
175     Stats::statsMap.insert(StatsMapType::value_type("PRESSURE_TENSOR_ZZ", PRESSURE_TENSOR_ZZ));
176 chrisfen 998 Stats::statsMap.insert(StatsMapType::value_type("BOX_DIPOLE_X", BOX_DIPOLE_X));
177     Stats::statsMap.insert(StatsMapType::value_type("BOX_DIPOLE_Y", BOX_DIPOLE_Y));
178     Stats::statsMap.insert(StatsMapType::value_type("BOX_DIPOLE_Z", BOX_DIPOLE_Z));
179 gezelter 1291 Stats::statsMap.insert(StatsMapType::value_type("TAGGED_PAIR_DISTANCE", TAGGED_PAIR_DISTANCE));
180 skuang 1369 Stats::statsMap.insert(StatsMapType::value_type("RNEMD_EXCHANGE_TOTAL", RNEMD_EXCHANGE_TOTAL));
181 chuckv 1402 Stats::statsMap.insert(StatsMapType::value_type("SHADOWH", SHADOWH));
182 gezelter 507 }
183 gezelter 246
184     }

Properties

Name Value
svn:executable *