OpenMD 3.1
Molecular Dynamics in the Open
|
Calculates the collective dipole displacement function. More...
#include <CollectiveDipoleDisplacement.hpp>
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, int storageLayout) | |
AutoCorrFunc (SimInfo *info, const std::string &filename, const std::string &sele1, const std::string &sele2) | |
Public Member Functions inherited from OpenMD::MultipassCorrFunc< Vector3d > | |
MultipassCorrFunc (SimInfo *info, const std::string &filename, const std::string &sele1, const std::string &sele2, int storageLayout) | |
virtual void | doCorrelate () |
const std::string & | getCorrFuncType () const |
void | setCorrFuncType (const std::string &type) |
void | setParameterString (const std::string ¶ms) |
void | setLabelString (const std::string &label) |
Public Member Functions inherited from OpenMD::DynamicProperty | |
void | setOutputName (const std::string &filename) |
const std::string & | getOutputFileName () const |
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 ¶ms) |
void | setLabelString (const std::string &label) |
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 92 of file CollectiveDipoleDisplacement.hpp.
OpenMD::CollectiveDipoleDisplacement::CollectiveDipoleDisplacement | ( | SimInfo * | info, |
const std::string & | filename, | ||
const std::string & | sele1, | ||
const std::string & | sele2 ) |
Definition at line 53 of file CollectiveDipoleDisplacement.cpp.