| 40 |
|
* [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
| 41 |
|
*/ |
| 42 |
|
|
| 43 |
– |
/** |
| 44 |
– |
* @file Stats.cpp |
| 45 |
– |
* @author tlin |
| 46 |
– |
* @date 11/04/2004 |
| 47 |
– |
* @time 14:26am |
| 48 |
– |
* @version 1.0 |
| 49 |
– |
*/ |
| 50 |
– |
|
| 43 |
|
#include "brains/Stats.hpp" |
| 44 |
|
#include "brains/Thermo.hpp" |
| 45 |
|
|
| 46 |
|
namespace OpenMD { |
| 47 |
|
|
| 48 |
< |
Stats::Stats(SimInfo* info) : isInit_(false), info_(info) { |
| 48 |
> |
Stats::Stats(SimInfo* info) : info_(info), isInit_(false) { |
| 49 |
|
|
| 50 |
|
if (!isInit_) { |
| 51 |
|
init(); |
| 273 |
|
data_[SYSTEM_DIPOLE] = system_dipole; |
| 274 |
|
statsMap_["SYSTEM_DIPOLE"] = SYSTEM_DIPOLE; |
| 275 |
|
|
| 276 |
+ |
StatsData system_quadrupole; |
| 277 |
+ |
system_quadrupole.units = "C*m*m"; |
| 278 |
+ |
system_quadrupole.title = "System Quadrupole"; |
| 279 |
+ |
system_quadrupole.dataType = "Mat3x3d"; |
| 280 |
+ |
system_quadrupole.accumulator = new MatrixAccumulator(); |
| 281 |
+ |
data_[SYSTEM_QUADRUPOLE] = system_quadrupole; |
| 282 |
+ |
statsMap_["SYSTEM_QUADRUPOLE"] = SYSTEM_QUADRUPOLE; |
| 283 |
+ |
|
| 284 |
|
StatsData tagged_pair_distance; |
| 285 |
|
tagged_pair_distance.units = "Ang"; |
| 286 |
|
tagged_pair_distance.title = "Tagged_Pair_Distance"; |
| 374 |
|
} |
| 375 |
|
if (info_->getCalcBoxDipole()){ |
| 376 |
|
statsMask_.set(SYSTEM_DIPOLE); |
| 377 |
+ |
} |
| 378 |
+ |
|
| 379 |
+ |
// Why do we have both of these? |
| 380 |
+ |
if (simParams->getAccumulateBoxQuadrupole()) { |
| 381 |
+ |
statsMask_.set(SYSTEM_QUADRUPOLE); |
| 382 |
|
} |
| 383 |
+ |
if (info_->getCalcBoxQuadrupole()){ |
| 384 |
+ |
statsMask_.set(SYSTEM_QUADRUPOLE); |
| 385 |
+ |
} |
| 386 |
|
|
| 387 |
|
if (simParams->havePrintHeatFlux()) { |
| 388 |
|
if (simParams->getPrintHeatFlux()){ |
| 476 |
|
case SYSTEM_DIPOLE: |
| 477 |
|
dynamic_cast<VectorAccumulator *>(data_[i].accumulator)->add(thermo.getSystemDipole()); |
| 478 |
|
break; |
| 479 |
+ |
case SYSTEM_QUADRUPOLE: |
| 480 |
+ |
dynamic_cast<MatrixAccumulator *>(data_[i].accumulator)->add(thermo.getSystemQuadrupole()); |
| 481 |
+ |
break; |
| 482 |
|
case HEATFLUX: |
| 483 |
|
dynamic_cast<VectorAccumulator *>(data_[i].accumulator)->add(thermo.getHeatFlux()); |
| 484 |
|
break; |