-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathdensityMatrix.h
More file actions
37 lines (29 loc) · 1.05 KB
/
densityMatrix.h
File metadata and controls
37 lines (29 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
* @file densityMatrix.h
*
* @brief Interface for the routines related to the calculation of the
* reduced density matrix
*
* @author Roger Melko
* @author Ivan Gonzalez
* @date $Date$
*
* $Revision$
*/
#ifndef DENSITY_MATRIX_H
#define DENSITY_MATRIX_H
#include "blitz/array.h"
blitz::Array<double,2> transformOperator(const blitz::Array<double,2>& op,
const blitz::Array<double,2>& transposed_transformation_matrix,
const blitz::Array<double,2>& transformation_matrix);
blitz::Array<double,2> calculateReducedDensityMatrix(blitz::Array<double,2> psi);
blitz::Array<double,2> truncateReducedDM(blitz::Array<double,2>& density_matrix,
const int mm);
void diagonalizeDensityMatrix(blitz::Array<double,2>&
density_matrix, blitz::Array<double,1>& density_matrix_eigenvalues);
blitz::Array<int,1> orderDensityMatrixEigenvalues(
blitz::Array<double,1>& density_matrix_eigenvalues);
double calculateTruncationError(
const blitz::Array<double,1>& density_matrix_eigenvalues,
const blitz::Array<int,1>& indexes, int m);
#endif //DENSITY_MATRIX_H