90 class SFG :
public SystemACF<RealType> {
92 SFG(
SimInfo* info,
const std::string& filename,
const std::string& sele1,
93 const std::string& sele2,
const std::string& polarization =
"ssp",
94 int privilegedAxis = 2,
95 RealType t_apod = 0.0, RealType t_zerofill = 0.0,
103 void computeProperty1(
int frame)
override;
107 RealType calcCorrVal(
int frame1,
int frame2)
override {
return 0.0; }
113 void correlation()
override;
115 void writeCorrelate()
override;
142 std::map<std::string, std::tuple<RealType,RealType,RealType>> w10_;
143 std::map<std::string, std::tuple<RealType,RealType,RealType>> muPrime_;
144 std::map<std::string, std::pair<RealType,RealType>> x10_;
145 std::map<std::string, std::pair<RealType,RealType>> p10_;
146 std::map<std::string, std::tuple<RealType,RealType,RealType>> wintra_;
147 std::map<std::string, std::pair<RealType,RealType>> alphaMap_;
148 std::map<std::string, RealType> tdcLoc_;
151 std::map<std::string, std::pair<RealType,RealType>> wb01_;
152 std::map<std::string, std::pair<RealType,RealType>> wb12_;
161 bool useFermi_ {
false};
167 bool dumpHasElectricFields_;
171 std::string polarization_;
178 int privilegedAxis_ {2};
199 std::vector<Vector3d> mu;
200 std::vector<Mat3x3d> alpha;
201 std::vector<int> globalIDs;
203 std::map<int,int> idToIndex;
208 std::vector<FrameData> allFrames_;
211 std::vector<std::complex<double>> tcf_ssp_;
212 std::vector<std::complex<double>> tcf_ppp_;
213 std::vector<std::complex<double>> tcf_sps_;
216 RealType T1_ps_ {0.0};
222 RealType t_apod_ps_ {0.0};
229 RealType t_zerofill_ps_ {0.0};
235 RealType wAvg_ {0.0};
236 RealType wAvgSum_ {0.0};
241 RealType dt_ps_ {0.001};
251 FrameData extractFrame(std::vector<Vector3d>& ohPos,
252 std::vector<int>& molIndex,
253 std::vector<RealType>& intraJ);
259 void buildHamiltonian(FrameData& fd,
260 const std::vector<Vector3d>& ohPos,
261 const std::vector<int>& molIndex,
262 const std::vector<RealType>& intraJ);
273 void propagateF(std::vector<std::complex<double>>& F,
275 RealType dt_ps,
int N);
290 void accumulateTCF(
int tt,
291 const std::vector<std::complex<double>>& F,
292 const FrameData& fd0,
293 const FrameData& fdt,
294 int N, RealType exptc,
295 std::vector<std::complex<double>>& tgt_ssp,
296 std::vector<std::complex<double>>& tgt_ppp,
297 std::vector<std::complex<double>>& tgt_sps);
304 RealType tdcCoupling(
const Vector3d& r_ij,
305 const Vector3d& e_i,
const Vector3d& e_j,
306 RealType mx_i, RealType mx_j);
314 bool remapFrame(
const FrameData& src,
315 const std::vector<int>& refIDs,
316 const std::vector<RealType>& refFreqs,
327 Mat3x3d bondPolarizability(
const Vector3d& ohUnit,
328 RealType alpha_par, RealType alpha_perp,
329 RealType x10, RealType x10_gas);