83 class SFGTimeAvg :
public StaticAnalyser {
85 SFGTimeAvg(
SimInfo* info,
const std::string& filename,
86 const std::string& sele1,
int nbins,
87 const std::string& polarization =
"ssp",
88 int privilegedAxis = 2,
89 RealType gamma = 5.0, RealType fc = 25.0);
91 virtual void process();
105 std::vector<Vector3d> mu;
106 std::vector<Mat3x3d> alpha;
112 FrameData extractFrame(std::vector<Vector3d>& ohPos,
113 std::vector<int>& molIndex,
114 std::vector<RealType>& intraJ);
116 void buildHamiltonian(FrameData& fd,
117 const std::vector<Vector3d>& ohPos,
118 const std::vector<int>& molIndex,
119 const std::vector<RealType>& intraJ);
124 std::vector<double>& evals,
125 std::vector<double>& evecs);
127 Mat3x3d bondPolarizability(
const Vector3d& ohUnit,
128 RealType alpha_par, RealType alpha_perp,
129 RealType x10, RealType x10_gas);
131 RealType tdcCoupling(
const Vector3d& r_ij,
132 const Vector3d& e_i,
const Vector3d& e_j,
133 RealType mx_i, RealType mx_j);
135 void accumulateFrame(
const FrameData& fd);
136 void writeSpectrum();
140 std::string selectionScript1_;
145 std::map<std::string, std::tuple<RealType,RealType,RealType>> w10_;
146 std::map<std::string, std::tuple<RealType,RealType,RealType>> muPrime_;
147 std::map<std::string, std::pair<RealType,RealType>> x10_;
148 std::map<std::string, std::pair<RealType,RealType>> p10_;
149 std::map<std::string, std::tuple<RealType,RealType,RealType>> wintra_;
150 std::map<std::string, std::pair<RealType,RealType>> alphaMap_;
151 std::map<std::string, RealType> tdcLoc_;
154 std::map<std::string, std::pair<RealType,RealType>> wb01_;
155 std::map<std::string, std::pair<RealType,RealType>> wb12_;
157 std::string polarization_;
158 int privilegedAxis_ {2};
161 RealType gamma_ {5.0};
163 bool useFermi_ {
false};
166 RealType minFreq_ {2700.0};
167 RealType maxFreq_ {4000.0};
171 double diagMuzFree_ {0.0};
172 double diagMuzHB_ {0.0};
177 std::vector<std::complex<double>> chi2_;
180 bool dumpHasElectricFields_;