Public Member Functions |
Private Member Functions |
Static Private Member Functions |
Private Attributes |
Friends |
List of all members
KronBlocks_t Class Reference
Detailed Description
A container of ordered KronBlock_t objects representing a Kronecker product structure.
Definition at line 117 of file DMRGKron.hpp.
#include <DMRGKron.hpp>
Collaboration diagram for KronBlocks_t:
Public Member Functions | |
KronBlocks_t (Block::SpinBase &LeftBlock, Block::SpinBase &RightBlock, const std::vector< PetscReal > &QNSectors, FILE *fp_prealloc, const PetscInt &GlobIdx) | |
PetscInt | size () const |
Returns the total number blocks. More... | |
const std::vector< KronBlock_t > & | data () const |
Returns a const reference to the KronBlocks object. More... | |
KronBlock_t | data (size_t idx) const |
Returns the KronBlock for specified index. More... | |
KronBlock_t | operator[] (size_t idx) const |
Returns the KronBlock for specified index. More... | |
std::vector< PetscReal > | List () const |
Returns the list of quantum numbers. More... | |
std::vector< PetscInt > | Offsets () const |
Returns the offsets for each quantum number block. More... | |
PetscInt | Offsets (const PetscInt &idx) const |
Returns the offsets for a given index. More... | |
PetscReal | QN (const PetscInt &idx) const |
Returns the left quantum number index (KronBlocks 1st endtry) for a given KronBlock index. More... | |
PetscInt | LeftIdx (const PetscInt &idx) const |
Returns the left quantum number index (KronBlocks 1st endtry) for a given KronBlock index. More... | |
PetscInt | RightIdx (const PetscInt &idx) const |
Returns the left quantum number index (KronBlocks 1st endtry) for a given KronBlock index. More... | |
PetscInt | Sizes (const PetscInt &idx) const |
Returns the number of basis states for a given KronBlock index. More... | |
const Block::SpinBase & | LeftBlockRef () const |
Returns a const reference to the left block object. More... | |
const Block::SpinBase & | RightBlockRef () const |
Returns a const reference to the right block object. More... | |
Block::SpinBase & | LeftBlockRefMod () |
Returns a non-const reference to the left block object. More... | |
Block::SpinBase & | RightBlockRefMod () |
Returns a non-const reference to the right block object. More... | |
PetscInt | Offsets (const PetscInt &lidx, const PetscInt &ridx) const |
Returns the offsets for the KronBlock corresponding to a pair of left and right block indices. More... | |
std::vector< PetscInt > | Sizes () const |
Returns the number of basis states in each quantum number block. More... | |
PetscInt | Map (const PetscInt &lidx, const PetscInt &ridx) const |
Returns the position index of the KronBlock corresponding to a pair of left and right block indices; if the index is not found it returns -1. More... | |
PetscInt | NumStates () const |
Returns the total number of states. More... | |
PetscErrorCode | KronSumConstruct (const std::vector< Hamiltonians::Term > &Terms, Mat &MatOut) |
Constructs the explicit sum of Kronecker products of matrices from the blocks. More... | |
PetscErrorCode | KronConstruct (const Mat &Mat_L, const Op_t &OpType_L, const Mat &Mat_R, const Op_t &OpType_R, Mat &MatOut) |
Constructs the explicit sum of Kronecker products of two matrices provided that they follow a fixed Kronecker product structure according to the corresponding sub-blocks. More... | |
PetscErrorCode | KronSumSetShellMatrix (const PetscBool &do_shell_in) |
Decide whether to create an implicit MATSHELL matrix. More... | |
PetscErrorCode | KronSumSetRedistribute (const PetscBool &do_redistribute_in=PETSC_TRUE) |
PetscErrorCode | KronSumSetToleranceFromOptions () |
Private Member Functions | |
PetscErrorCode | MatKronEyeAdd (const std::vector< Mat > &Matrices, const Side_t &SideType, Mat &MatOut) |
Calculates the Kronecker product of a set of matrices with the identity and adds it to. More... | |
PetscErrorCode | VerifySzAssumption (const std::vector< Mat > &Matrices, const Side_t &SideType) |
Verifies that the assumtpion of intra-block terms to follow Sz form is valid. More... | |
PetscErrorCode | KronGetSubmatrices (const Mat &Mat_L, const Op_t &OpType_L, const Mat &Mat_R, const Op_t &OpType_R, KronSumCtx &ctx) |
PetscErrorCode | KronSumConstructExplicit (const std::vector< Hamiltonians::Term > &TermsLR, Mat &MatOut) |
PetscErrorCode | KronSumConstructShell (const std::vector< Hamiltonians::Term > &TermsLR, Mat &MatOut) |
PetscErrorCode | KronSumSetUpShellTerms (KronSumShellCtx *shellctx) |
PetscErrorCode | KronSumGetSubmatrices (const Mat &OpProdSumLL, const Mat &OpProdSumRR, const std::vector< Hamiltonians::Term > &TermsLR, KronSumCtx &SubMat) |
PetscErrorCode | KronSumCalcPreallocation (KronSumCtx &ctx) |
PetscErrorCode | KronSumShellSplitOwnership (const Mat &OpProdSumLL, const Mat &OpProdSumRR, const std::vector< Hamiltonians::Term > &TermsLR, const PetscInt Nrows, PetscInt &lrows, PetscInt &rstart) |
PetscErrorCode | KronSumRedistribute (KronSumCtx &ctx, PetscBool &flg) |
PetscErrorCode | KronSumPreallocate (KronSumCtx &ctx, Mat &MatOut) |
PetscErrorCode | KronSumFillMatrix (KronSumCtx &ctx, Mat &MatOut) |
PetscErrorCode | SavePreallocData (const KronSumCtx &ctx) |
Static Private Member Functions | |
static bool | DescendingQN (const KronBlock_t &a, const KronBlock_t &b) |
Tolerance. More... | |
Private Attributes | |
MPI_Comm | mpi_comm = PETSC_COMM_SELF |
PetscMPIInt | mpi_rank |
PetscMPIInt | mpi_size |
const PetscInt | GlobIdx |
std::vector< KronBlock_t > | KronBlocks |
Storage for kronblocks. More... | |
std::vector< PetscReal > | kb_list |
(Redundant) storage for quantum numbers More... | |
std::vector< PetscInt > | kb_size |
(Redundant) storage for sizes of each quantum number block More... | |
std::vector< PetscInt > | kb_offset |
Storage for offsets or starting elements of each block. More... | |
std::map< std::tuple< PetscInt, PetscInt >, PetscInt > | kb_map |
Kronecker product mapping from (L,R) block to the corresponding index. More... | |
PetscInt | num_blocks = 0 |
The number of blocks stored. More... | |
PetscInt | num_states = 0 |
The total number of states stored. More... | |
Block::SpinBase & | LeftBlock |
Reference to the left block object. More... | |
Block::SpinBase & | RightBlock |
Reference to the right block object. More... | |
FILE * | fp_prealloc |
File to store preallocation data for each processor. More... | |
PetscBool | do_saveprealloc = PETSC_FALSE |
Whether to store preallocation data for each processor. More... | |
PetscBool | do_redistribute = PETSC_FALSE |
Whether to redistribute the resulting KronSum. More... | |
PetscBool | do_shell = PETSC_FALSE |
Whether to create an implicit MATSHELL matrix. More... | |
PetscBool | called_KronSumShellSplitOwnership = PETSC_FALSE |
Whether KronSumShellSplitOwnership has been called before. More... | |
PetscInt | prev_lrows = 0 |
Stores the resulting lrows of a previous call to KronSumShellSplitOwnership. More... | |
PetscInt | prev_rstart = 0 |
Stores the resulting rstart of a previous call to KronSumShellSplitOwnership. More... | |
Friends | |
class | KronBlocksIterator |
The documentation for this class was generated from the following files:
- include/DMRGKron.hpp
- src/DMRGKron.cpp