CCEX-1.0.0
Loading...
Searching...
No Matches
hamiltonian.h
1#ifndef __CCEX_HAMILTONIAN_H_
2#define __CCEX_HAMILTONIAN_H_
3
4#include "utilities.h"
5
6MatrixXcd Pauli_matrix_I(int size);
7MatrixXcd Pauli_matrix_X(int size);
8MatrixXcd Pauli_matrix_Y(int size);
9MatrixXcd Pauli_matrix_Z(int size);
10MatrixXcd* getGeneralPauliOperators(MatrixXcd alpha, MatrixXcd beta);
11MatrixXcd* getPauliOperators(int size);
12MatrixXcd projOperators(MatrixXcd* sigma, MatrixXcd psia, MatrixXcd psib);
13
14MatrixXcd calZeemanVector(double gamma, float* bfield);
15MatrixXcd calDetuningVector(double detuning);
16MatrixXcd calOverhauserVector(double overhauser);
17MatrixXcd calPointDipoleTensor(double xyz1[3], double xyz2[3], double gamma1, double gamma2);
18
19MatrixXcd calHamiltonianHeteroInt(MatrixXcd** pmats, MatrixXcd tensor, int nspin, int ispin, int jspin);
20MatrixXcd* calHamiltonianHeteroInt_o2(MatrixXcd Sab, MatrixXcd Sba, MatrixXcd** Pmats, MatrixXcd tensor_ib, MatrixXcd tensor_jb, int nSpin, int iSpin, int jSpin);
21MatrixXcd calHamiltonianSelfInt(MatrixXcd* pmat, MatrixXcd tensor);
22MatrixXcd calHamiltonianSingleInt(MatrixXcd Vector, MatrixXcd* pmat1);
23MatrixXcd expandHamiltonian(MatrixXcd** pmats, MatrixXcd Hi, int nspin, int ispin);
24
25MatrixXcd ZeemanInt(double gamma, float* B0, MatrixXcd* pmat, int m);
26
27int* getIndexInOrder(VectorXcd eigenValues);
28VectorXcd sortEigenValues(VectorXcd eigenValues, int* idx);
29MatrixXcd sortEigenVectors(MatrixXcd eigenVectors, int* idx);
30
31bool isInvolutory(MatrixXcd a);
32bool isSame(MatrixXcd a, MatrixXcd b);
33
34#endif // __CCEX_HAMILTONIAN_H_