|
VMPS++
|
#include "DmrgTypedefs.h"#include "tensors/Biped.h"#include "tensors/Multipede.h"#include "numeric_limits.h"

Go to the source code of this file.
Functions | |
| template<typename Symmetry , typename MatrixType , typename MatrixType2 > | |
| bool | LAWA (const qarray< Symmetry::Nq > &Lin, const qarray< Symmetry::Nq > &Lout, const qarray< Symmetry::Nq > &Lmid, const qarray< Symmetry::Nq > &qloc1, const qarray< Symmetry::Nq > &qloc2, const qarray< Symmetry::Nq > &qOp, const Biped< Symmetry, MatrixType > &Abra, const Biped< Symmetry, MatrixType > &Aket, const Biped< Symmetry, MatrixType2 > &W, vector< tuple< qarray3< Symmetry::Nq >, size_t, size_t, size_t > > &result) |
| template<typename Symmetry , typename MatrixType , typename MatrixType2 > | |
| bool | AWAR (const qarray< Symmetry::Nq > &Rin, const qarray< Symmetry::Nq > &Rout, const qarray< Symmetry::Nq > &Rmid, const qarray< Symmetry::Nq > &qloc1, const qarray< Symmetry::Nq > &qloc2, const qarray< Symmetry::Nq > &qOp, const Biped< Symmetry, MatrixType > &Abra, const Biped< Symmetry, MatrixType > &Aket, const Biped< Symmetry, MatrixType2 > &W, vector< tuple< qarray3< Symmetry::Nq >, size_t, size_t, size_t > > &result) |
| template<typename Symmetry , typename MatrixType > | |
| bool | LAA (qarray< Symmetry::Nq > Lin, qarray< Symmetry::Nq > Lout, size_t s, vector< qarray< Symmetry::Nq > > qloc, const vector< Biped< Symmetry, MatrixType > > &Abra, const vector< Biped< Symmetry, MatrixType > > &Aket, vector< tuple< qarray2< Symmetry::Nq >, size_t, size_t > > &result) |
| template<typename Symmetry , typename MatrixType > | |
| bool | AAR (qarray< Symmetry::Nq > Rin, qarray< Symmetry::Nq > Rout, size_t s, vector< qarray< Symmetry::Nq > > qloc, const vector< Biped< Symmetry, MatrixType > > &Abra, const vector< Biped< Symmetry, MatrixType > > &Aket, vector< tuple< qarray2< Symmetry::Nq >, size_t, size_t > > &result) |
| template<typename Symmetry , typename MatrixType , typename MpoMatrixType > | |
| bool | AAWWAA (const qarray< Symmetry::Nq > &Lin, const qarray< Symmetry::Nq > &Lout, const qarray< Symmetry::Nq > &Lmid, const qarray< Symmetry::Nq > &qOp12, const qarray< Symmetry::Nq > &qOp34, const qarray< Symmetry::Nq > &qmerge13, const qarray< Symmetry::Nq > &qmerge24, const Biped< Symmetry, MatrixType > &AA13, const Biped< Symmetry, MatrixType > &AA24, const Biped< Symmetry, MpoMatrixType > &W12, const Biped< Symmetry, MpoMatrixType > &W34, vector< tuple< qarray3< Symmetry::Nq >, qarray< Symmetry::Nq >, size_t, size_t, size_t, size_t > > &result) |
| template<typename Symmetry , typename Scalar > | |
| vector< qarray< Symmetry::Nq > > | calc_qsplit (const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &A1, const vector< qarray< Symmetry::Nq > > &qloc1, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &A2, vector< qarray< Symmetry::Nq > > qloc2, const qarray< Symmetry::Nq > &Qtop, const qarray< Symmetry::Nq > &Qbot) |
| template<typename Symmetry , typename MatrixType > | |
| bool | AAAA (qarray< Symmetry::Nq > Lin, qarray< Symmetry::Nq > Lout, size_t s1s2, const qarray< Symmetry::Nq > &qmerge12, const vector< Biped< Symmetry, MatrixType > > &AAbra, const vector< Biped< Symmetry, MatrixType > > &AAket, vector< tuple< qarray2< Symmetry::Nq >, size_t, size_t > > &result) |
| template<typename Symmetry , typename MatrixType , typename MpoMatrixType > | |
| bool | AWWA (qarray< Symmetry::Nq > Lin, qarray< Symmetry::Nq > Lout, qarray< Symmetry::Nq > Lbot, qarray< Symmetry::Nq > Ltop, qarray< Symmetry::Nq > qloc1, qarray< Symmetry::Nq > qloc2, qarray< Symmetry::Nq > qloc3, qarray< Symmetry::Nq > qOpBot, qarray< Symmetry::Nq > qOpTop, const Biped< Symmetry, MatrixType > &Abra, const Biped< Symmetry, MatrixType > &Aket, const Biped< Symmetry, MpoMatrixType > &Wbot, const Biped< Symmetry, MpoMatrixType > &Wtop, tuple< qarray4< Symmetry::Nq >, size_t, size_t, size_t, size_t > &result) |
| template<typename Symmetry , typename Scalar > | |
| void | updateInset (const std::vector< std::array< typename Symmetry::qType, 3 > > &insetOld, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Abra, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Aket, const vector< qarray< Symmetry::Nq > > &qloc, const vector< qarray< Symmetry::Nq > > &qOp, std::vector< std::array< typename Symmetry::qType, 3 > > &insetNew) |
| template<typename Symmetry , typename Scalar , typename MpoMatrixType > | |
| void | precalc_blockStructure (const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > &L, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Abra, const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > &W, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Aket, const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > &R, const vector< qarray< Symmetry::Nq > > &qloc, const vector< qarray< Symmetry::Nq > > &qOp, vector< std::array< size_t, 2 > > &qlhs, vector< vector< std::array< size_t, 6 > > > &qrhs, vector< vector< Scalar > > &factor_cgcs) |
| template<typename Symmetry , typename Scalar , typename MpoMatrixType > | |
| void | precalc_blockStructure (const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > &L, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Abra, const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > &W12, const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > &W34, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Aket, const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > &R, const vector< qarray< Symmetry::Nq > > &qloc12, const vector< qarray< Symmetry::Nq > > &qloc34, const vector< qarray< Symmetry::Nq > > &qOp12, const vector< qarray< Symmetry::Nq > > &qOp34, const vector< TwoSiteData< Symmetry, typename MpoMatrixType::Scalar > > &TSD, vector< std::array< size_t, 2 > > &qlhs, vector< vector< std::array< size_t, 12 > > > &qrhs, vector< vector< Scalar > > &factor_cgcs) |
| template<typename Symmetry , typename Scalar , typename MpoMatrixType > | |
| void | precalc_blockStructure (const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > &L, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Abra, const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > &W12, const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > &W34, const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > &Aket, const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > &R, const vector< qarray< Symmetry::Nq > > &qloc12, const vector< qarray< Symmetry::Nq > > &qloc34, const vector< qarray< Symmetry::Nq > > &qOp12, const vector< qarray< Symmetry::Nq > > &qOp34, vector< std::array< size_t, 2 > > &qlhs, vector< vector< std::array< size_t, 12 > > > &qrhs, vector< vector< Scalar > > &factor_cgcs) |
| bool AAAA | ( | qarray< Symmetry::Nq > | Lin, |
| qarray< Symmetry::Nq > | Lout, | ||
| size_t | s1s2, | ||
| const qarray< Symmetry::Nq > & | qmerge12, | ||
| const vector< Biped< Symmetry, MatrixType > > & | AAbra, | ||
| const vector< Biped< Symmetry, MatrixType > > & | AAket, | ||
| vector< tuple< qarray2< Symmetry::Nq >, size_t, size_t > > & | result | ||
| ) |
Definition at line 326 of file DmrgIndexGymnastics.h.
| bool AAR | ( | qarray< Symmetry::Nq > | Rin, |
| qarray< Symmetry::Nq > | Rout, | ||
| size_t | s, | ||
| vector< qarray< Symmetry::Nq > > | qloc, | ||
| const vector< Biped< Symmetry, MatrixType > > & | Abra, | ||
| const vector< Biped< Symmetry, MatrixType > > & | Aket, | ||
| vector< tuple< qarray2< Symmetry::Nq >, size_t, size_t > > & | result | ||
| ) |
Definition at line 163 of file DmrgIndexGymnastics.h.
| bool AAWWAA | ( | const qarray< Symmetry::Nq > & | Lin, |
| const qarray< Symmetry::Nq > & | Lout, | ||
| const qarray< Symmetry::Nq > & | Lmid, | ||
| const qarray< Symmetry::Nq > & | qOp12, | ||
| const qarray< Symmetry::Nq > & | qOp34, | ||
| const qarray< Symmetry::Nq > & | qmerge13, | ||
| const qarray< Symmetry::Nq > & | qmerge24, | ||
| const Biped< Symmetry, MatrixType > & | AA13, | ||
| const Biped< Symmetry, MatrixType > & | AA24, | ||
| const Biped< Symmetry, MpoMatrixType > & | W12, | ||
| const Biped< Symmetry, MpoMatrixType > & | W34, | ||
| vector< tuple< qarray3< Symmetry::Nq >, qarray< Symmetry::Nq >, size_t, size_t, size_t, size_t > > & | result | ||
| ) |
Definition at line 199 of file DmrgIndexGymnastics.h.
| bool AWAR | ( | const qarray< Symmetry::Nq > & | Rin, |
| const qarray< Symmetry::Nq > & | Rout, | ||
| const qarray< Symmetry::Nq > & | Rmid, | ||
| const qarray< Symmetry::Nq > & | qloc1, | ||
| const qarray< Symmetry::Nq > & | qloc2, | ||
| const qarray< Symmetry::Nq > & | qOp, | ||
| const Biped< Symmetry, MatrixType > & | Abra, | ||
| const Biped< Symmetry, MatrixType > & | Aket, | ||
| const Biped< Symmetry, MatrixType2 > & | W, | ||
| vector< tuple< qarray3< Symmetry::Nq >, size_t, size_t, size_t > > & | result | ||
| ) |
Definition at line 80 of file DmrgIndexGymnastics.h.
| bool AWWA | ( | qarray< Symmetry::Nq > | Lin, |
| qarray< Symmetry::Nq > | Lout, | ||
| qarray< Symmetry::Nq > | Lbot, | ||
| qarray< Symmetry::Nq > | Ltop, | ||
| qarray< Symmetry::Nq > | qloc1, | ||
| qarray< Symmetry::Nq > | qloc2, | ||
| qarray< Symmetry::Nq > | qloc3, | ||
| qarray< Symmetry::Nq > | qOpBot, | ||
| qarray< Symmetry::Nq > | qOpTop, | ||
| const Biped< Symmetry, MatrixType > & | Abra, | ||
| const Biped< Symmetry, MatrixType > & | Aket, | ||
| const Biped< Symmetry, MpoMatrixType > & | Wbot, | ||
| const Biped< Symmetry, MpoMatrixType > & | Wtop, | ||
| tuple< qarray4< Symmetry::Nq >, size_t, size_t, size_t, size_t > & | result | ||
| ) |
Calculates the matching right indices when contracting a left transfer matrix with two MpsQ and two MpoQ.
| Lin | |
| Lout | |
| Lbot | |
| Ltop | |
| s1 | |
| s2 | |
| s3 | |
| qloc | : local basis |
| k1 | |
| qOpBot | : operator basis of bottom operator |
| k2 | |
| qOpTop | : operator basis of top operator |
| Abra | |
| Aket | |
| result | : tuple of: an array with Rin, Rout, Rbot, Rtop; block index of Abra; block index of Aket |
true if a match is found, false if not Rin and Rout. Definition at line 387 of file DmrgIndexGymnastics.h.
| vector< qarray< Symmetry::Nq > > calc_qsplit | ( | const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | A1, |
| const vector< qarray< Symmetry::Nq > > & | qloc1, | ||
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | A2, | ||
| vector< qarray< Symmetry::Nq > > | qloc2, | ||
| const qarray< Symmetry::Nq > & | Qtop, | ||
| const qarray< Symmetry::Nq > & | Qbot | ||
| ) |
Definition at line 265 of file DmrgIndexGymnastics.h.
| bool LAA | ( | qarray< Symmetry::Nq > | Lin, |
| qarray< Symmetry::Nq > | Lout, | ||
| size_t | s, | ||
| vector< qarray< Symmetry::Nq > > | qloc, | ||
| const vector< Biped< Symmetry, MatrixType > > & | Abra, | ||
| const vector< Biped< Symmetry, MatrixType > > & | Aket, | ||
| vector< tuple< qarray2< Symmetry::Nq >, size_t, size_t > > & | result | ||
| ) |
Definition at line 127 of file DmrgIndexGymnastics.h.
| bool LAWA | ( | const qarray< Symmetry::Nq > & | Lin, |
| const qarray< Symmetry::Nq > & | Lout, | ||
| const qarray< Symmetry::Nq > & | Lmid, | ||
| const qarray< Symmetry::Nq > & | qloc1, | ||
| const qarray< Symmetry::Nq > & | qloc2, | ||
| const qarray< Symmetry::Nq > & | qOp, | ||
| const Biped< Symmetry, MatrixType > & | Abra, | ||
| const Biped< Symmetry, MatrixType > & | Aket, | ||
| const Biped< Symmetry, MatrixType2 > & | W, | ||
| vector< tuple< qarray3< Symmetry::Nq >, size_t, size_t, size_t > > & | result | ||
| ) |
Calculates the matching right indices when contracting a left transfer matrix with two MpsQ and an MpoQ.
| Lin | |
| Lout | |
| Lmid | |
| s1 | |
| s2 | |
| qloc | : local basis |
| k | |
| qOp | : operator basis |
| Abra | |
| Aket | |
| result | : tuple of: an array with Rin, Rout, Rmid; block index of Abra; block index of Aket |
| IS_HAMILTONIAN | : If the Mpo is a Hamiltonian, the calculation can be optimized |
true if a match is found, false if not Rin and Rout. Definition at line 33 of file DmrgIndexGymnastics.h.
| void precalc_blockStructure | ( | const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > & | L, |
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Abra, | ||
| const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > & | W, | ||
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Aket, | ||
| const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > & | R, | ||
| const vector< qarray< Symmetry::Nq > > & | qloc, | ||
| const vector< qarray< Symmetry::Nq > > & | qOp, | ||
| vector< std::array< size_t, 2 > > & | qlhs, | ||
| vector< vector< std::array< size_t, 6 > > > & | qrhs, | ||
| vector< vector< Scalar > > & | factor_cgcs | ||
| ) |
Prepares a PivotMatrix by filling PivotMatrix::qlhs and PivotMatrix::qrhs with the corresponding subspace indices. Uses OpenMP.
Definition at line 488 of file DmrgIndexGymnastics.h.
| void precalc_blockStructure | ( | const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > & | L, |
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Abra, | ||
| const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > & | W12, | ||
| const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > & | W34, | ||
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Aket, | ||
| const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > & | R, | ||
| const vector< qarray< Symmetry::Nq > > & | qloc12, | ||
| const vector< qarray< Symmetry::Nq > > & | qloc34, | ||
| const vector< qarray< Symmetry::Nq > > & | qOp12, | ||
| const vector< qarray< Symmetry::Nq > > & | qOp34, | ||
| const vector< TwoSiteData< Symmetry, typename MpoMatrixType::Scalar > > & | TSD, | ||
| vector< std::array< size_t, 2 > > & | qlhs, | ||
| vector< vector< std::array< size_t, 12 > > > & | qrhs, | ||
| vector< vector< Scalar > > & | factor_cgcs | ||
| ) |
Prepares a PivotMatrix2 by filling PivotMatrix::qlhs and PivotMatrix::qrhs with the corresponding subspace indices.
Definition at line 594 of file DmrgIndexGymnastics.h.
| void precalc_blockStructure | ( | const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > & | L, |
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Abra, | ||
| const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > & | W12, | ||
| const vector< vector< vector< Biped< Symmetry, MpoMatrixType > > > > & | W34, | ||
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Aket, | ||
| const Tripod< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > & | R, | ||
| const vector< qarray< Symmetry::Nq > > & | qloc12, | ||
| const vector< qarray< Symmetry::Nq > > & | qloc34, | ||
| const vector< qarray< Symmetry::Nq > > & | qOp12, | ||
| const vector< qarray< Symmetry::Nq > > & | qOp34, | ||
| vector< std::array< size_t, 2 > > & | qlhs, | ||
| vector< vector< std::array< size_t, 12 > > > & | qrhs, | ||
| vector< vector< Scalar > > & | factor_cgcs | ||
| ) |
Prepares a PivotMatrix2 by filling PivotMatrix::qlhs and PivotMatrix::qrhs with the corresponding subspace indices.
Definition at line 700 of file DmrgIndexGymnastics.h.
| void updateInset | ( | const std::vector< std::array< typename Symmetry::qType, 3 > > & | insetOld, |
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Abra, | ||
| const vector< Biped< Symmetry, Eigen::Matrix< Scalar, Dynamic, Dynamic > > > & | Aket, | ||
| const vector< qarray< Symmetry::Nq > > & | qloc, | ||
| const vector< qarray< Symmetry::Nq > > & | qOp, | ||
| std::vector< std::array< typename Symmetry::qType, 3 > > & | insetNew | ||
| ) |
Updates the quantum Numbers of a right environment when a new site with quantum numbers qloc and qOp is added.
Definition at line 429 of file DmrgIndexGymnastics.h.