Public Member Functions |
Public Attributes |
Protected Member Functions |
Private Types |
Private Member Functions |
Private Attributes |
List of all members
Block::SpinBase Class Reference
Detailed Description
Base class for the implementation of a block of spin sites.
Definition at line 79 of file DMRGBlock.hpp.
#include <DMRGBlock.hpp>
Collaboration diagram for Block::SpinBase:
Public Member Functions | |
virtual PetscInt | loc_dim () const |
Local dimension of a single site. More... | |
virtual std::vector< PetscScalar > | loc_qn_list () const |
Sz sectors of a single site. More... | |
virtual std::vector< PetscInt > | loc_qn_size () const |
Number of states in each sector in a single site. More... | |
virtual PetscErrorCode | MatSpinSzCreate (Mat &Sz) |
Creates the single-site \( S^z \) operator. More... | |
virtual PetscErrorCode | MatSpinSpCreate (Mat &Sp) |
Creates the single-site raising operator \( S^+ \), from which we can define \( S^- = (S^+)^\dagger \). More... | |
PetscErrorCode | Initialize (const MPI_Comm &comm_in) |
Initializes block object's MPI attributes. More... | |
PetscErrorCode | Initialize (const MPI_Comm &comm_in, const PetscInt &num_sites_in, const PetscInt &num_states_in, const PetscBool &init_ops=PETSC_TRUE) |
Initializes block object with input attributes and array of matrix operators. More... | |
PetscErrorCode | Initialize (const MPI_Comm &comm_in, const PetscInt &num_sites_in, const std::vector< PetscReal > &qn_list_in, const std::vector< PetscInt > &qn_size_in, const PetscBool &init_ops=PETSC_TRUE) |
Initializes block object with input attributes and array of matrix operators. More... | |
PetscErrorCode | Initialize (const PetscInt &num_sites_in, const QuantumNumbers &qn_in) |
Initializes block object with an initialized quantum numbers object. More... | |
PetscErrorCode | InitializeFromDisk (const MPI_Comm &comm_in, const std::string &block_path) |
Initializes block object from data located in the directory block_path . More... | |
PetscErrorCode | InitializeSave (const std::string &save_dir_in) |
Initializes the writing of the block matrices to file. More... | |
PetscErrorCode | SetDiskStorage (const std::string &read_dir_in, const std::string &write_dir_in) |
Tells where to read from and save the operators and data about the block. More... | |
std::string | SaveDir () const |
Returns the value of save_dir where the block data will be read from/written. More... | |
PetscBool | SaveInitialized () const |
Tells whether InitializeSave() has been properly called. More... | |
PetscErrorCode | SaveAndDestroy () |
Save all the matrix operators to file and destroy the current storage. More... | |
PetscErrorCode | SaveBlockInfo () |
Save some information about the block that could be used to reconstruct it later. More... | |
PetscErrorCode | RetrieveOperator (const std::string &OpName, const size_t &isite, Mat &Op, const MPI_Comm &comm_in=MPI_COMM_NULL) |
Retrieves a single operator. More... | |
PetscErrorCode | Retrieve () |
Retrieve all the matrix operators that were written to file by SaveAndDestroy() More... | |
PetscErrorCode | EnsureSaved () |
Ensures that the block matrices have been saved if the block is initialized, otherwise does nothing. More... | |
PetscErrorCode | EnsureRetrieved () |
Ensures that the block matrices have been retrieved if the block is initialized, otherwise does nothing. More... | |
PetscErrorCode | Destroy () |
Destroys all operator matrices and frees memory. More... | |
PetscErrorCode | CheckOperatorArray (const Op_t &OpType) const |
Determines whether the operator arrays have been successfully filled with matrices. More... | |
PetscBool | Initialized () const |
Indicates whether block has been initialized before using it. More... | |
PetscBool | Saved () const |
Returns the saved state of all operators. More... | |
MPI_Comm | MPIComm () const |
Gets the communicator associated to the block. More... | |
PetscInt | NumSites () const |
Gets the number of sites that are currently initialized. More... | |
PetscInt | NumStates () const |
Gets the number of states that are currently used. More... | |
Mat | Sz (const PetscInt &Isite) const |
Returns the matrix pointer to the \( S^z \) operator at site Isite . More... | |
Mat | Sp (const PetscInt &Isite) const |
Returns the matrix pointer to the \( S^+ \) operator at site Isite . More... | |
Mat | Sm (const PetscInt &Isite) const |
Returns the matrix pointer to the \( S^- \) operator at site Isite , if available. More... | |
const std::vector< Mat > & | Sz () const |
Returns the list of matrix pointer to the \( S^z \) operators. More... | |
const std::vector< Mat > & | Sp () const |
Returns the list of matrix pointer to the \( S^+ \) operators. More... | |
const std::vector< Mat > & | Sm () const |
Returns the list of matrix pointer to the \( S^- \) operators. More... | |
PetscErrorCode | CheckOperators () const |
Checks whether all operators have been initialized and have correct dimensions. More... | |
PetscErrorCode | CheckSectors () const |
Checks whether sector indexing was done properly. More... | |
PetscErrorCode | MatOpGetNNZs (const Op_t &OpType, const PetscInt &isite, std::vector< PetscInt > &nnzs) const |
Returns the number of non-zeros in each row for an operator acting on a given site. More... | |
PetscErrorCode | MatGetNNZs (const Mat &matin, std::vector< PetscInt > &nnzs) const |
Returns the number of non-zeros in each row for a given matrix. More... | |
PetscErrorCode | MatOpCheckOperatorBlocks (const Op_t &op_t, const PetscInt &isite) const |
Checks the block indexing in the matrix operator op_t on site isite. More... | |
PetscErrorCode | MatCheckOperatorBlocks (const Op_t &op_t, const Mat &matin) const |
Checks the block indexing in the matrix operator op_t on specified matrix matin. More... | |
PetscErrorCode | CheckOperatorBlocks () const |
Checks whether all matrix blocks follow the correct sector indices using MatCheckOperatorBlocks() More... | |
PetscErrorCode | GetOperatorBlocks (Op_t Operator) |
Extracts the block structure for each operator. More... | |
PetscErrorCode | CreateSm () |
Creates the Sm matrices on the fly. More... | |
PetscErrorCode | DestroySm () |
Destroys the Sm matrices on the fly. More... | |
PetscErrorCode | RotateOperators (SpinBase &Source, const Mat &RotMatT) |
Rotates all operators from a source block using the given transposed rotation matrix. More... | |
PetscErrorCode | AssembleOperators () |
Ensures that all operators are assembled. More... | |
Public Attributes | |
QuantumNumbers | Magnetization |
Stores the information on the magnetization Sectors. More... | |
Mat | H = nullptr |
Matrix representation of the Hamiltonian operator. More... | |
Protected Member Functions | |
PetscBool | MPIInitialized () const |
Returns PETSC_TRUE if the MPI communicator was initialized properly. More... | |
Private Types | |
enum | RotMethod { mmmmult =0, matptap =1 } |
List of possible methods for performing basis transformation. More... | |
Private Member Functions | |
PetscErrorCode | SaveOperator (const std::string &OpName, const size_t &isite, Mat &Op, const MPI_Comm &comm_in) |
Saves a single operator. More... | |
PetscErrorCode | Retrieve_NoChecks () |
Private function to retrieve operators without checking for save initialization. More... | |
Private Attributes | |
MPI_Comm | mpi_comm = PETSC_COMM_SELF |
MPI Communicator. More... | |
PetscMPIInt | mpi_rank |
MPI rank in mpi_comm. More... | |
PetscMPIInt | mpi_size |
MPI size of mpi_comm. More... | |
Spin_t | spin_type = SpinOneHalf |
Type of spin contained in the block. More... | |
std::string | spin_type_str = "1/2" |
Type of spin contained in the block expressed as a string. More... | |
PetscInt | _loc_dim = 2 |
Stores the local dimension of a single site. More... | |
std::vector< PetscScalar > | _loc_qn_list = {+0.5, -0.5} |
Stores the Sz sectors of a single site. More... | |
std::vector< PetscInt > | _loc_qn_size = {1, 1} |
Stores the number of states in each sector in a single site. More... | |
PetscBool | init = PETSC_FALSE |
Tells whether the block was initialized. More... | |
PetscBool | init_once = PETSC_FALSE |
Tells whether the block was initialized at least once before. More... | |
PetscBool | mpi_init = PETSC_FALSE |
Tells whether the block's MPI attributes were initialized. More... | |
PetscBool | verbose = PETSC_FALSE |
Tells whether to printout info during certain function calls. More... | |
PetscBool | log_io = PETSC_FALSE |
Tells whether to printout IO functions. More... | |
PetscInt | num_sites |
Number of sites in the block. More... | |
PetscInt | num_states |
Number of basis states in the Hilbert space. More... | |
PetscBool | init_Sm = PETSC_FALSE |
Tells whether the Sm matrices have been initialized. More... | |
std::vector< Mat > | SzData |
Array of matrices representing \(S^z\) operators. More... | |
std::vector< Mat > | SpData |
Array of matrices representing \(S^+\) operators. More... | |
std::vector< Mat > | SmData |
Array of matrices representing \(S^-\) operators. More... | |
PetscBool | init_save = PETSC_FALSE |
Whether saving the block matrices to file has been initialized correctly. More... | |
PetscBool | disk_set = PETSC_FALSE |
Whether SetDiskStorage() has properly set the block storage locations. More... | |
PetscBool | saved = PETSC_FALSE |
Whether the block matrices have been saved. More... | |
PetscBool | retrieved = PETSC_FALSE |
Whether the block matrices have been retrieved. More... | |
std::string | save_dir |
Root directory to read from and write the matrix blocks into. More... | |
std::string | read_dir |
Root directory to read the matrix blocks from during the first access. More... | |
std::string | write_dir |
Root directory to write the matrix blocks into. More... | |
PetscInt | num_reads = 0 |
Number of reads from file made for this block. More... | |
PetscInt | nsubcomm = 1 |
std::vector< PetscMPIInt > | site_color |
RotMethod | rot_method = mmmmult |
Method to use for performing basis transformation. More... | |
The documentation for this class was generated from the following files:
- include/DMRGBlock.hpp
- src/DMRGBlock.cpp