OpenMD 3.2
Molecular Dynamics in the Open
Loading...
Searching...
No Matches
OpenMD::CollectiveDipoleDisplacement Class Reference

Calculates the collective dipole displacement function. More...

#include <CollectiveDipoleDisplacement.hpp>

Inheritance diagram for OpenMD::CollectiveDipoleDisplacement:

Public Member Functions

 CollectiveDipoleDisplacement (SimInfo *info, const std::string &filename, const std::string &sele1, const std::string &sele2)
Public Member Functions inherited from OpenMD::SystemACF< Vector3d >
 SystemACF (SimInfo *info, const std::string &filename, const std::string &sele1, const std::string &sele2)
Public Member Functions inherited from OpenMD::AutoCorrFunc< Vector3d >
 AutoCorrFunc (SimInfo *info, const std::string &filename, const std::string &sele1, const std::string &sele2)
Public Member Functions inherited from OpenMD::TimeCorrFunc< Vector3d >
 TimeCorrFunc (SimInfo *info, const std::string &filename, const std::string &sele1, const std::string &sele2)
virtual void doCorrelate ()
const std::string & getCorrFuncType () const
void setCorrFuncType (const std::string &type)
void setParameterString (const std::string &params)
void setLabelString (const std::string &label)
void setWindowingParameters (RealType tcorr_fs, int nStart, RealType tsep_fs)
Public Member Functions inherited from OpenMD::DynamicProperty
void setOutputName (const std::string &filename)
const std::string & getOutputFileName () const
void setSelectionModeRestart ()

Additional Inherited Members

Protected Member Functions inherited from OpenMD::SystemACF< Vector3d >
virtual void computeProperty2 (int)
Protected Member Functions inherited from OpenMD::TimeCorrFunc< Vector3d >
void writeCorrelate ()
void writeCorrelate ()
void writeCorrelate ()
void writeCorrelate ()
virtual void preCorrelate ()
virtual void correlation ()
virtual void postCorrelate ()
virtual void computeFrame (int frame)
virtual void validateSelection (SelectionManager &seleMan)
virtual void correlateFrames (int frame1, int frame2, int timeBin)
Protected Attributes inherited from OpenMD::TimeCorrFunc< Vector3d >
RealType deltaTime_
unsigned int nTimeBins_
int nFrames_
std::vector< Vector3d > histogram_
std::vector< int > count_
std::vector< RealType > times_
RealType dtMean_
RealType dtSigma_
SimInfoinfo_
DumpReaderreader_
std::string dumpFilename_
SelectionManager seleMan1_
SelectionManager seleMan2_
SnapshotcurrentSnapshot_
std::string selectionScript1_
std::string selectionScript2_
SelectionEvaluator evaluator1_
SelectionEvaluator evaluator2_
bool uniqueSelections_
bool autoCorrFunc_
bool doSystemProperties_
bool doMolecularProperties_
bool doObjectProperties_
bool doAtomicProperties_
bool doBondProperties_
bool allowTimeFuzz_
std::string corrFuncType_
std::string paramString_
std::string labelString_
std::vector< std::vector< int > > sele1ToIndex_
std::vector< std::vector< int > > sele2ToIndex_
ProgressBarPtr progressBar_
std::vector< std::vector< int > > GIDtoSele1_
std::vector< std::vector< int > > GIDtoSele2_
std::vector< std::vector< int > > selection1StartFrame_
std::vector< std::vector< int > > selection2StartFrame_
int nStart_
int nSep_
int nStride_
int navg_
bool useWindowing_
Protected Attributes inherited from OpenMD::DynamicProperty
std::string outputFilename_
bool selectionModeRestart_

Detailed Description

Calculates the collective dipole displacement function.

This time correlation function is the Helfand moment conjugate to the current density. Helfand moments are used to calculate the Einstein-Helfand relations for transport that are formally equivalent to Green-Kubo expressions using a related flux. In this case, the flux,

\[ \mathbf{J}(t) = \sum_{i=1}^{N} q_i \mathbf{v}_{\mathrm{cm},i}(t) \]

is normally used to calculate an ionic conductivity,

\[ \sigma = \frac{1}{3V k_b T} \int_0^\infty \left< \mathbf{J}(0) \cdot \mathbf{J}(t) \right> dt \]

The cm subscript denotes center of mass locations for all molecules.

This class computes the collective translational dipole moment,

\[ \mathbf{M}_\mathrm{trans}(t) = \sum_{i=1}^{N} q_i \mathbf{r}_{\mathrm{cm},i}(t) \]

as well as total contributions to the system's net dipole moment

\[ \mathbf{M}_\mathrm{tot}(t) = \sum_{i=1}^{N} \sum_{a} q_{ia} \mathbf{r}_{ia}(t) = \sum_{i=1}^{N} q_i \mathbf{r}_{\mathrm{cq},i}(t) \]

where cq denotes the molecular center of charge. It also calculates the rotational contribution,

\[ \mathbf{M}_\mathrm{rot}(t) = \sum_{i=1}^{N} q_i \left[ \mathbf{r}_{\mathrm{cq},i}(t) - \mathbf{r}_{\mathrm{cm},i}(t) \right] \]

The correlation functions are the displacements of these terms from their values at an earlier time,

\[ \left< \left| \mathbf{M}_\mathrm{trans}(t) - \mathbf{M}_\mathrm{trans}(0) \right|^2 \right> \]

and identical quantities for the total and rotational contributions.

Definition at line 95 of file CollectiveDipoleDisplacement.hpp.

Constructor & Destructor Documentation

◆ CollectiveDipoleDisplacement()

OpenMD::CollectiveDipoleDisplacement::CollectiveDipoleDisplacement ( SimInfo * info,
const std::string & filename,
const std::string & sele1,
const std::string & sele2 )

Definition at line 56 of file CollectiveDipoleDisplacement.cpp.


The documentation for this class was generated from the following files: