45#include "applications/dynamicProps/VelocityAutoOutProductCorrFunc.hpp"
48#include "utils/Revision.hpp"
51 VelocityAutoOutProductCorrFunc::VelocityAutoOutProductCorrFunc(
52 SimInfo* info,
const std::string& filename,
const std::string& sele1,
53 const std::string& sele2) :
54 ObjectACF<Mat3x3d>(info, filename, sele1, sele2) {
56 "Velocity - Velocity Auto Outer Product Correlation Function");
57 setOutputName(
getPrefix(dumpFilename_) +
".vaOutProdcorr");
59 velocity_.resize(nFrames_);
60 sumVelocity_ = V3Zero;
62 propertyTemp = V3Zero;
65 int VelocityAutoOutProductCorrFunc::computeProperty1(
int frame,
67 Vector3d vel = sd->getVel();
70 velocity_[frame].push_back(propertyTemp);
71 sumVelocity_ += propertyTemp;
73 return velocity_[frame].size() - 1;
76 Mat3x3d VelocityAutoOutProductCorrFunc::calcCorrVal(
int frame1,
int frame2,
79 tmpMat_1 = outProduct(velocity_[frame1][id1], velocity_[frame2][id2]);
81 tmpMat_2 = outProduct(velocity_[frame2][id2], velocity_[frame1][id1]);
83 tmpMat_3 = 0.5 * (tmpMat_1 + tmpMat_2);
87 void VelocityAutoOutProductCorrFunc::postCorrelate() {
89 sumVelocity_ /= RealType(velocityCount_);
91 Mat3x3d correlationOfAverages_ = outProduct(sumVelocity_, sumVelocity_);
93 for (
unsigned int i = 0; i < nTimeBins_; ++i) {
95 histogram_[i] /= RealType(count_[i]);
99 histogram_[i] -= correlationOfAverages_;
101 histogram_[i] = M3Zero;
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.
std::string getPrefix(const std::string &str)