Psi4
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
psi::psimrcc::CCBLAS Class Reference

#include <blas.h>

Public Types

typedef std::vector< std::string > strvec
 
typedef std::vector< int > intvec
 
typedef std::vector< std::pair
< int, int > > 
intpairvec
 
typedef std::deque< CCOperationOpDeque
 

Public Member Functions

 CCBLAS (Options &options)
 
 ~CCBLAS ()
 
void add_Matrix (const char *cstr)
 
void add_Matrix (std::string str)
 
void add_index (const char *cstr)
 
void solve (const char *cstr)
 
void solve (std::string str)
 
void solve_zero_two_diagonal (const char *cstr)
 
void zero_right_four_diagonal (const char *cstr)
 
void zero_left_four_diagonal (const char *cstr)
 
void zero_non_doubly_occupied (const char *cstr)
 
void zero_non_external (const char *cstr)
 
void zero (const char *cstr)
 
void scale (const char *cstr, int reference, double value)
 
void scale (std::string &str, int reference, double value)
 
void reduce_spaces (const char *out, const char *in)
 
void expand_spaces (const char *out, const char *in)
 
void append (const char *cstr)
 
void append (std::string str)
 
void append_zero_two_diagonal (const char *cstr)
 
void compute ()
 
int compute_storage_strategy ()
 
void show_storage ()
 
void diis_add (std::string amps, std::string delta_amps)
 
void diis_save_t_amps (int cycle)
 
void diis (int cycle, double delta, DiisType diis_type)
 
void print (const char *cstr)
 
void print_ref (std::string &str)
 
void print_memory ()
 
CCIndexget_index (const char *cstr)
 
CCIndexget_index (std::string &str)
 
CCMatTmp get_MatTmp (std::string str, int reference, DiskOpt disk_option)
 
CCMatTmp get_MatTmp (std::string str, DiskOpt disk_option)
 
CCMatTmp get_MatTmp (CCMatrix *Matrix, DiskOpt disk_option)
 
CCMatIrTmp get_MatIrTmp (std::string str, int reference, int irrep, DiskOpt disk_option)
 
CCMatIrTmp get_MatIrTmp (std::string str, int irrep, DiskOpt disk_option)
 
CCMatIrTmp get_MatIrTmp (CCMatrix *Matrix, int irrep, DiskOpt disk_option)
 
double get_scalar (std::string str)
 
double get_scalar (const char *cstr, int reference)
 
double get_scalar (std::string &str, int reference)
 
void set_scalar (const char *cstr, int reference, double value)
 
void set_scalar (std::string &str, int reference, double value)
 
MatrixMapget_MatrixMap ()
 

Public Attributes

Optionsoptions_
 
std::vector< std::pair
< std::string, std::string > > 
diis_matrices
 

Private Member Functions

IndexMapget_IndexMap ()
 
CCMatrixget_Matrix (std::string &str)
 
CCMatrixget_Matrix (const char *cstr)
 
CCMatrixget_Matrix (const char *cstr, int reference)
 
CCMatrixget_Matrix (std::string &str, std::string &expression)
 
double * get_work (int n)
 
void allocate_matrices_in_core ()
 
void load (CCMatrix *Matrix)
 
void load_irrep (CCMatrix *Matrix, int h)
 
void add_Matrix_ref (std::string &str)
 
void add_indices ()
 
void add_matrix_ref (std::string &str)
 
void solve_ref (std::string &str)
 
int parse (std::string &str)
 
void process_operations ()
 
void process_reduce_spaces (CCMatrix *out_Matrix, CCMatrix *in_Matrix)
 
void process_expand_spaces (CCMatrix *out_Matrix, CCMatrix *in_Matrix)
 
bool get_factor (const std::string &str, double &factor)
 
void make_space (size_t memory_required)
 
void init ()
 
void cleanup ()
 
void allocate_work ()
 
void allocate_buffer ()
 
void free_sortmap ()
 
void free_work ()
 
void free_indices ()
 
void free_matrices ()
 
void free_buffer ()
 

Private Attributes

bool full_in_core
 
size_t work_size
 
size_t buffer_size
 
MatrixMap matrices
 
IndexMap indices
 
OpDeque operations
 
ArrayVec work
 
ArrayVec buffer
 
MatCnt matrices_in_deque
 
MatCnt matrices_in_deque_target
 
MatCnt matrices_in_deque_source
 
SortMap sortmap
 

Detailed Description

Author
Francesco A. Evangelista and Andrew C. Simmonett frank.nosp@m.@ccc.nosp@m..uga..nosp@m.edu

Member Typedef Documentation

typedef std::vector<std::pair<int,int> > psi::psimrcc::CCBLAS::intpairvec
typedef std::vector<int> psi::psimrcc::CCBLAS::intvec
typedef std::vector<std::string> psi::psimrcc::CCBLAS::strvec

Constructor & Destructor Documentation

psi::psimrcc::CCBLAS::CCBLAS ( Options options)
psi::psimrcc::CCBLAS::~CCBLAS ( )

Member Function Documentation

void psi::psimrcc::CCBLAS::add_index ( const char *  cstr)
void psi::psimrcc::CCBLAS::add_indices ( )
private
void psi::psimrcc::CCBLAS::add_Matrix ( const char *  cstr)
void psi::psimrcc::CCBLAS::add_Matrix ( std::string  str)
void psi::psimrcc::CCBLAS::add_Matrix_ref ( std::string &  str)
private
void psi::psimrcc::CCBLAS::add_matrix_ref ( std::string &  str)
private
void psi::psimrcc::CCBLAS::allocate_buffer ( )
private
void psi::psimrcc::CCBLAS::allocate_matrices_in_core ( )
private
void psi::psimrcc::CCBLAS::allocate_work ( )
private
void psi::psimrcc::CCBLAS::append ( const char *  cstr)

Read and store expressions without computing them

Parameters
cstr
void psi::psimrcc::CCBLAS::append ( std::string  str)
void psi::psimrcc::CCBLAS::append_zero_two_diagonal ( const char *  cstr)

store a zero_two_diagonal operation without executing it

Parameters
cstr
void psi::psimrcc::CCBLAS::cleanup ( void  )
private
void psi::psimrcc::CCBLAS::compute ( )

Flush the operation deque Flush the operation deque in a memory smart way!

int psi::psimrcc::CCBLAS::compute_storage_strategy ( )

This routine computes which quantities have to be initially stored in memory and which on disk

void psi::psimrcc::CCBLAS::diis ( int  cycle,
double  delta,
DiisType  diis_type 
)
void psi::psimrcc::CCBLAS::diis_add ( std::string  amps,
std::string  delta_amps 
)
void psi::psimrcc::CCBLAS::diis_save_t_amps ( int  cycle)
void psi::psimrcc::CCBLAS::expand_spaces ( const char *  out,
const char *  in 
)
void psi::psimrcc::CCBLAS::free_buffer ( )
private
void psi::psimrcc::CCBLAS::free_indices ( )
private
void psi::psimrcc::CCBLAS::free_matrices ( )
private
void psi::psimrcc::CCBLAS::free_sortmap ( )
private
void psi::psimrcc::CCBLAS::free_work ( )
private
bool psi::psimrcc::CCBLAS::get_factor ( const std::string &  str,
double &  factor 
)
private
CCIndex * psi::psimrcc::CCBLAS::get_index ( const char *  cstr)
CCIndex* psi::psimrcc::CCBLAS::get_index ( std::string &  str)
IndexMap& psi::psimrcc::CCBLAS::get_IndexMap ( )
inlineprivate
CCMatIrTmp psi::psimrcc::CCBLAS::get_MatIrTmp ( std::string  str,
int  reference,
int  irrep,
DiskOpt  disk_option 
)
CCMatIrTmp psi::psimrcc::CCBLAS::get_MatIrTmp ( std::string  str,
int  irrep,
DiskOpt  disk_option 
)
CCMatIrTmp psi::psimrcc::CCBLAS::get_MatIrTmp ( CCMatrix Matrix,
int  irrep,
DiskOpt  disk_option 
)
CCMatrix* psi::psimrcc::CCBLAS::get_Matrix ( std::string &  str)
private
CCMatrix * psi::psimrcc::CCBLAS::get_Matrix ( const char *  cstr)
private
CCMatrix * psi::psimrcc::CCBLAS::get_Matrix ( const char *  cstr,
int  reference 
)
private
CCMatrix* psi::psimrcc::CCBLAS::get_Matrix ( std::string &  str,
std::string &  expression 
)
private
MatrixMap& psi::psimrcc::CCBLAS::get_MatrixMap ( )
inline
CCMatTmp psi::psimrcc::CCBLAS::get_MatTmp ( std::string  str,
int  reference,
DiskOpt  disk_option 
)
CCMatTmp psi::psimrcc::CCBLAS::get_MatTmp ( std::string  str,
DiskOpt  disk_option 
)
CCMatTmp psi::psimrcc::CCBLAS::get_MatTmp ( CCMatrix Matrix,
DiskOpt  disk_option 
)
double psi::psimrcc::CCBLAS::get_scalar ( std::string  str)
double psi::psimrcc::CCBLAS::get_scalar ( const char *  cstr,
int  reference 
)
double psi::psimrcc::CCBLAS::get_scalar ( std::string &  str,
int  reference 
)
double* psi::psimrcc::CCBLAS::get_work ( int  n)
inlineprivate
void psi::psimrcc::CCBLAS::init ( )
private
void psi::psimrcc::CCBLAS::load ( CCMatrix Matrix)
private
void psi::psimrcc::CCBLAS::load_irrep ( CCMatrix Matrix,
int  h 
)
private
void psi::psimrcc::CCBLAS::make_space ( size_t  memory_required)
private
int psi::psimrcc::CCBLAS::parse ( std::string &  str)
private
void psi::psimrcc::CCBLAS::print ( const char *  cstr)
void psi::psimrcc::CCBLAS::print_memory ( )
void psi::psimrcc::CCBLAS::print_ref ( std::string &  str)
void psi::psimrcc::CCBLAS::process_expand_spaces ( CCMatrix out_Matrix,
CCMatrix in_Matrix 
)
private
void psi::psimrcc::CCBLAS::process_operations ( )
private
void psi::psimrcc::CCBLAS::process_reduce_spaces ( CCMatrix out_Matrix,
CCMatrix in_Matrix 
)
private
void psi::psimrcc::CCBLAS::reduce_spaces ( const char *  out,
const char *  in 
)
void psi::psimrcc::CCBLAS::scale ( const char *  cstr,
int  reference,
double  value 
)
void psi::psimrcc::CCBLAS::scale ( std::string &  str,
int  reference,
double  value 
)
void psi::psimrcc::CCBLAS::set_scalar ( const char *  cstr,
int  reference,
double  value 
)
void psi::psimrcc::CCBLAS::set_scalar ( std::string &  str,
int  reference,
double  value 
)
void psi::psimrcc::CCBLAS::show_storage ( )

This routine computes which quantities have to be initially stored in memory and which on disk

void psi::psimrcc::CCBLAS::solve ( const char *  cstr)

Read and compute an expression

Parameters
cstr
void psi::psimrcc::CCBLAS::solve ( std::string  str)
void psi::psimrcc::CCBLAS::solve_ref ( std::string &  str)
private
void psi::psimrcc::CCBLAS::solve_zero_two_diagonal ( const char *  cstr)

store a zero_two_diagonal operation and executing it

Parameters
str
void psi::psimrcc::CCBLAS::zero ( const char *  cstr)
void psi::psimrcc::CCBLAS::zero_left_four_diagonal ( const char *  cstr)
void psi::psimrcc::CCBLAS::zero_non_doubly_occupied ( const char *  cstr)
void psi::psimrcc::CCBLAS::zero_non_external ( const char *  cstr)
void psi::psimrcc::CCBLAS::zero_right_four_diagonal ( const char *  cstr)

Member Data Documentation

ArrayVec psi::psimrcc::CCBLAS::buffer
private
size_t psi::psimrcc::CCBLAS::buffer_size
private
std::vector<std::pair<std::string,std::string> > psi::psimrcc::CCBLAS::diis_matrices
bool psi::psimrcc::CCBLAS::full_in_core
private
IndexMap psi::psimrcc::CCBLAS::indices
private
MatrixMap psi::psimrcc::CCBLAS::matrices
private
MatCnt psi::psimrcc::CCBLAS::matrices_in_deque
private
MatCnt psi::psimrcc::CCBLAS::matrices_in_deque_source
private
MatCnt psi::psimrcc::CCBLAS::matrices_in_deque_target
private
OpDeque psi::psimrcc::CCBLAS::operations
private
Options& psi::psimrcc::CCBLAS::options_
SortMap psi::psimrcc::CCBLAS::sortmap
private
ArrayVec psi::psimrcc::CCBLAS::work
private
size_t psi::psimrcc::CCBLAS::work_size
private

The documentation for this class was generated from the following files: