42#ifndef APPLICATIONS_DYNAMICPROPS_MULTIPASSCORRFUNC_HPP
43#define APPLICATIONS_DYNAMICPROPS_MULTIPASSCORRFUNC_HPP
48#include "applications/dynamicProps/DynamicProperty.hpp"
52#include "selection/SelectionEvaluator.hpp"
53#include "selection/SelectionManager.hpp"
54#include "utils/ProgressBar.hpp"
66 const std::string& sele1,
const std::string& sele2,
70 virtual void doCorrelate();
72 const std::string& getCorrFuncType()
const {
76 void setCorrFuncType(
const std::string& type) {
80 void setParameterString(
const std::string& params) {
81 paramString_ = params;
84 void setLabelString(
const std::string& label) {
90 virtual void preCorrelate();
91 virtual void correlation();
92 virtual void postCorrelate();
93 virtual void computeFrame(
int frame);
95 virtual int computeProperty1(
int frame,
StuntDouble* sd) = 0;
96 virtual int computeProperty2(
int frame,
StuntDouble* sd) = 0;
97 virtual void correlateFrames(
int frame1,
int frame2,
int timeBin);
98 virtual T calcCorrVal(
int frame1,
int frame2,
int id1,
int id2) = 0;
99 virtual void writeCorrelate();
104 unsigned int nTimeBins_;
106 std::vector<T> histogram_;
107 std::vector<int> count_;
108 std::vector<RealType> times_;
109 bool uniqueSelections_;
113 std::string dumpFilename_;
120 std::string selectionScript1_;
121 std::string selectionScript2_;
128 std::string corrFuncType_;
129 std::string paramString_;
130 std::string labelString_;
132 std::vector<std::vector<int> > sele1ToIndex_;
133 std::vector<std::vector<int> > sele2ToIndex_;
143 const std::string& sele1,
const std::string& sele2,
147 virtual int computeProperty1(
int frame,
StuntDouble* sd) = 0;
148 virtual int computeProperty2(
int frame,
StuntDouble* sd) {
return -1; }
152 class CrossCorrFunc :
public MultipassCorrFunc<T> {
154 CrossCorrFunc(SimInfo* info,
const std::string& filename,
155 const std::string& sele1,
const std::string& sele2,
159 virtual int computeProperty1(
int frame, StuntDouble* sd) = 0;
160 virtual int computeProperty2(
int frame, StuntDouble* sd) = 0;
"applications/dynamicProps/DynamicProperty"
Computes a correlation function by scanning a trajectory once to precompute quantities to be correlat...
"selection/SelectionEvaluator"
One of the heavy-weight classes of OpenMD, SimInfo maintains objects and variables relating to the cu...
The Snapshot class is a repository storing dynamic data during a Simulation.
"Don't move, or you're dead! Stand up! Captain, we've got them!"
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.