# | Line 36 | Line 36 | |
---|---|---|
36 | * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). | |
37 | * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). | |
38 | * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). | |
39 | < | * [4] Vardeman & Gezelter, in progress (2009). |
39 | > | * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
40 | > | * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
41 | */ | |
42 | ||
43 | /** | |
# | Line 134 | Line 135 | namespace OpenMD { | |
135 | ||
136 | return tmp; | |
137 | } | |
138 | + | |
139 | + | /** |
140 | + | * Returns the tensor contraction (double dot product) of two rank 2 |
141 | + | * tensors (or Matrices) |
142 | + | * @param t1 first tensor |
143 | + | * @param t2 second tensor |
144 | + | * @return the tensor contraction (double dot product) of t1 and t2 |
145 | + | */ |
146 | + | Real doubleDot( const SquareMatrix<Real, Dim>& t1, const SquareMatrix<Real, Dim>& t2 ) { |
147 | + | Real tmp; |
148 | + | tmp = 0; |
149 | + | |
150 | + | for (unsigned int i = 0; i < Dim; i++) |
151 | + | for (unsigned int j =0; j < Dim; j++) |
152 | + | tmp += t1[i][j] * t2[i][j]; |
153 | + | |
154 | + | return tmp; |
155 | + | } |
156 | ||
157 | + | |
158 | /** Tests if this matrix is symmetrix. */ | |
159 | bool isSymmetric() const { | |
160 | for (unsigned int i = 0; i < Dim - 1; i++) | |
# | Line 164 | Line 184 | namespace OpenMD { | |
184 | return true; | |
185 | } | |
186 | ||
187 | + | /** |
188 | + | * Returns a column vector that contains the elements from the |
189 | + | * diagonal of m in the order R(0) = m(0,0), R(1) = m(1,1), and so |
190 | + | * on. |
191 | + | */ |
192 | + | Vector<Real, Dim> diagonals() const { |
193 | + | Vector<Real, Dim> result; |
194 | + | for (unsigned int i = 0; i < Dim; i++) { |
195 | + | result(i) = this->data_[i][i]; |
196 | + | } |
197 | + | return result; |
198 | + | } |
199 | + | |
200 | /** Tests if this matrix is the unit matrix. */ | |
201 | bool isUnitMatrix() const { | |
202 | if (!isDiagonal()) |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |