| 
    OpenMPCD
    
   | 
 
Namespace for functionality related to normal modes. More...
Functions | |
| template<typename T > | |
| const Vector3D< T > | computeNormalCoordinate (const unsigned int i, const Vector3D< T > *const vectors, const std::size_t N, const T shift=0) | 
| Calculates a normal coordinate.  More... | |
Namespace for functionality related to normal modes.
Given a number \( N \) of coordinate vectors \( \vec{r}_n \), \( n \in \left[ 1, N \right] \), the \( i \)-th normal coordinate \( \vec{q}_i \), with \( i \in \left[ 0, N \right] \), is defined as
\[ \vec{q}_i = \frac{1}{N} \sum_{n=1}^N \cos\left( \frac{ i \pi \left( n + S \right) }{N} \right) \vec{r}_n \]
where \( S \) is a shift parameter.
| const Vector3D< T > OpenMPCD::NormalMode::computeNormalCoordinate | ( | const unsigned int | i, | 
| const Vector3D< T > *const | vectors, | ||
| const std::size_t | N, | ||
| const T | shift = 0  | 
        ||
| ) | 
Calculates a normal coordinate.
| OpenMPCD::NULLPointerException | If OPENMPCD_DEBUG is defined, throws if vectors == nullptr.  | 
| OpenMPCD::InvalidArgumentException | If OPENMPCD_DEBUG is defined, throws if N == 0, or if i is out of range. | 
| T | The underlying floating-point data type. | 
| [in] | i | The index of the normal coordinate to compute, which must lie in the range [0, N].  | 
| [in] | vectors | The input vectors to use. Must be a non-nullptr pointer pointing to at least N instances.  | 
| [in] | N | The number of input coordinate vectors, which must not be 0.  | 
| [in] | shift | The shift parameter \( S \). | 
Definition at line 22 of file ImplementationDetails/NormalMode.hpp.
 1.8.17