Psi4
Classes | Typedefs | Enumerations | Functions | Variables
psi::psimrcc Namespace Reference

Classes

class  CCBLAS
 
class  Debugging
 
class  Hamiltonian
 
class  IDMRPT2
 
class  CCIndex
 
class  CCIndexIterator
 
class  IntegralClass
 
class  CCManyBody
 
class  CCMatrix
 
class  CCMatTmp
 
class  CCMatIrTmp
 
class  MP2_CCSD
 
class  CCMRCC
 
class  MRCCSD_T
 
class  CCOperation
 
class  CCSort
 Grabs the MO integrals from CCTransform and fills the CCMatrix objects in CCBLAS. More...
 
class  MatrixBase
 
class  BlockMatrix
 
class  IndexMatrix
 
class  CCTransform
 
class  Updater
 Containts the procedure for updating the amplitudes. More...
 
class  MkUpdater
 
class  BWUpdater
 

Typedefs

typedef std::vector< std::string > strvec
 
typedef std::vector< std::pair
< int, int > > 
intpairvec
 
typedef std::vector
< std::vector< int > > 
vecvecint
 
typedef std::map
< psi::psimrcc::CCMatrix
*, int > 
MatCnt
 
typedef std::map< std::string,
psi::psimrcc::CCMatrix * > 
MatrixMap
 
typedef std::map< std::string,
psi::psimrcc::CCMatrix * >
::iterator 
MatMapIt
 
typedef std::vector< std::pair
< psi::psimrcc::CCMatrix
*, int > > 
MatrixBlks
 
typedef std::vector< std::pair
< psi::psimrcc::CCMatrix
*, int > >::iterator 
MatBlksIt
 

Enumerations

enum  DiisType { DiisEachCycle, DiisCC }
 
enum  SpinCase {
  aaSpin, abSpin, bbSpin, aaaSpin,
  aabSpin, abbSpin, bbbSpin
}
 
enum  TriplesType {
  pt2, ccsd, ccsd_t, ccsdt_1a,
  ccsdt_1b, ccsdt_2, ccsdt_3, ccsdt
}
 
enum  TriplesCouplingType { nocoupling, linear, quadratic, cubic }
 
enum  DiskOpt { none, dump, release }
 
enum  SortAlgorithm { out_of_core_sort, mrpt2_sort }
 

Functions

PsiReturnType psimrcc (SharedWavefunction, Options &)
 
void C_DGEMM_12 (int m, int n, int k, double alpha, double *A, int nra, double *B, int ncb, double beta, double *C, int ncc)
 
void C_DGEMM_22 (int m, int n, int k, double alpha, double *A, int nca, double *B, int ncb, double beta, double *C, int ncc)
 
void F_DAXPY (int *length, double *a, double *x, int *inc_x, double *y, int *inc_y)
 
void F_DCOPY (int *length, double *x, int *inc_x, double *y, int *inc_y)
 
void F_DGEMM (const char *transa, const char *transb, int *m, int *n, int *k, double *alpha, double *A, int *lda, double *B, int *ldb, double *beta, double *C, int *ldc)
 
void F_DROT (int *ntot, double *x, int *incx, double *y, int *incy, double *cotheta, double *sintheta)
 
void F_DSCAL (int *n, double *alpha, double *vec, int *inc)
 
void F_DGEMV (char *transa, int *m, int *n, double *alpha, double *A, int *lda, double *X, int *inc_x, double *beta, double *Y, int *inc_y)
 
double F_DDOT (int *n, double *x, int *incx, double *y, int *incy)
 
void F_DGEEV (const char *jobvl, const char *jobvr, int *n, double *a, int *lda, double *wr, double *wi, double *vl, int *ldvl, double *vr, int *ldvr, double *work, int *lwork, int *info)
 
void F_DGESV (int *n, int *nrhs, double *A, int *lda, int *ipiv, double *B, int *ldb, int *info)
 
void F_DSYEV (char *JOBZ, char *UPLO, int *N, double *A, int *LDA, double *W, double *WORK, int *LWORK, int *INFO)
 
bool is_number (const std::string &str)
 
double get_number (const std::string &str)
 
bool is_operation (const std::string &str)
 
void sort_eigensystem (int ndets, double *&real, double *&imaginary, double **&left, double **&right)
 
void init_psi (int argc, char *argv[])
 
void close_psi ()
 
void mrccsd (SharedWavefunction ref_wfn, Options &options)
 
void mp2_ccsd (SharedWavefunction ref_wfn, Options &options)
 
void mrpt2 (SharedWavefunction ref_wfn, Options &options)
 
void transform_integrals ()
 
void run_psimrcc ()
 
void mrccsd_check ()
 
void multiply (BlockMatrix *A, BlockMatrix *B)
 

Variables

MOInfomoinfo
 
MemoryManagermemory_manager
 
CCBLASblas
 
std::vector< std::pair
< std::string, std::string > > 
diis_matrices
 
const double diis_singular_tollerance = 1.0e-12
 
Debuggingdebugging
 
Timerglobal_timer
 
CCSortsorter
 
CCTransformtrans = nullptr
 
ModelSpacemodel_space
 

Typedef Documentation

typedef std::vector<std::pair<int,int> > psi::psimrcc::intpairvec
typedef std::vector<std::pair<psi::psimrcc::CCMatrix*,int> >::iterator psi::psimrcc::MatBlksIt
typedef std::map<std::string,psi::psimrcc::CCMatrix*>::iterator psi::psimrcc::MatMapIt
typedef std::vector<std::pair<psi::psimrcc::CCMatrix*,int> > psi::psimrcc::MatrixBlks
typedef std::map<std::string,psi::psimrcc::CCMatrix*> psi::psimrcc::MatrixMap
typedef std::vector<std::string> psi::psimrcc::strvec
typedef std::vector<std::vector<int> > psi::psimrcc::vecvecint

Enumeration Type Documentation

Enumerator
DiisEachCycle 
DiisCC 
Enumerator
none 
dump 
release 
Enumerator
out_of_core_sort 
mrpt2_sort 
Enumerator
aaSpin 
abSpin 
bbSpin 
aaaSpin 
aabSpin 
abbSpin 
bbbSpin 
Enumerator
nocoupling 
linear 
quadratic 
cubic 
Enumerator
pt2 
ccsd 
ccsd_t 
ccsdt_1a 
ccsdt_1b 
ccsdt_2 
ccsdt_3 
ccsdt 

Function Documentation

void psi::psimrcc::C_DGEMM_12 ( int  m,
int  n,
int  k,
double  alpha,
double *  A,
int  nra,
double *  B,
int  ncb,
double  beta,
double *  C,
int  ncc 
)
void psi::psimrcc::C_DGEMM_22 ( int  m,
int  n,
int  k,
double  alpha,
double *  A,
int  nca,
double *  B,
int  ncb,
double  beta,
double *  C,
int  ncc 
)
void psi::psimrcc::close_psi ( )
void psi::psimrcc::F_DAXPY ( int *  length,
double *  a,
double *  x,
int *  inc_x,
double *  y,
int *  inc_y 
)
void psi::psimrcc::F_DCOPY ( int *  length,
double *  x,
int *  inc_x,
double *  y,
int *  inc_y 
)
double psi::psimrcc::F_DDOT ( int *  n,
double *  x,
int *  incx,
double *  y,
int *  incy 
)
void psi::psimrcc::F_DGEEV ( const char *  jobvl,
const char *  jobvr,
int *  n,
double *  a,
int *  lda,
double *  wr,
double *  wi,
double *  vl,
int *  ldvl,
double *  vr,
int *  ldvr,
double *  work,
int *  lwork,
int *  info 
)
void psi::psimrcc::F_DGEMM ( const char *  transa,
const char *  transb,
int *  m,
int *  n,
int *  k,
double *  alpha,
double *  A,
int *  lda,
double *  B,
int *  ldb,
double *  beta,
double *  C,
int *  ldc 
)
void psi::psimrcc::F_DGEMV ( char *  transa,
int *  m,
int *  n,
double *  alpha,
double *  A,
int *  lda,
double *  X,
int *  inc_x,
double *  beta,
double *  Y,
int *  inc_y 
)
void psi::psimrcc::F_DGESV ( int *  n,
int *  nrhs,
double *  A,
int *  lda,
int *  ipiv,
double *  B,
int *  ldb,
int *  info 
)
void psi::psimrcc::F_DROT ( int *  ntot,
double *  x,
int *  incx,
double *  y,
int *  incy,
double *  cotheta,
double *  sintheta 
)
void psi::psimrcc::F_DSCAL ( int *  n,
double *  alpha,
double *  vec,
int *  inc 
)
void psi::psimrcc::F_DSYEV ( char *  JOBZ,
char *  UPLO,
int *  N,
double *  A,
int *  LDA,
double *  W,
double *  WORK,
int *  LWORK,
int *  INFO 
)
double psi::psimrcc::get_number ( const std::string &  str)
void psi::psimrcc::init_psi ( int  argc,
char *  argv[] 
)
bool psi::psimrcc::is_number ( const std::string &  str)
bool psi::psimrcc::is_operation ( const std::string &  str)
void psi::psimrcc::mp2_ccsd ( SharedWavefunction  ref_wfn,
Options &  options 
)

Runs a CCSD_MP2 computation

void psi::psimrcc::mrccsd ( SharedWavefunction  ref_wfn,
Options &  options 
)

Runs a MRPT2 and a MRCCSD computation

Todo:
move this code in the CCMRCC class
void psi::psimrcc::mrccsd_check ( )
void psi::psimrcc::mrpt2 ( SharedWavefunction  ref_wfn,
Options &  options 
)

Runs a MRPT2 computation

void psi::psimrcc::multiply ( BlockMatrix *  A,
BlockMatrix *  B 
)
PsiReturnType psi::psimrcc::psimrcc ( SharedWavefunction  ref_wfn,
Options options 
)
void psi::psimrcc::run_psimrcc ( )
void psi::psimrcc::sort_eigensystem ( int  ndets,
double *&  real,
double *&  imaginary,
double **&  left,
double **&  right 
)
void psi::psimrcc::transform_integrals ( )

Runs a integral transformation

Todo:
CCTransform is still unused in the code

Variable Documentation

CCBLAS * psi::psimrcc::blas
Debugging * psi::psimrcc::debugging
std::vector<std::pair<std::string,std::string> > psi::psimrcc::diis_matrices
const double psi::psimrcc::diis_singular_tollerance = 1.0e-12
Timer* psi::psimrcc::global_timer
MemoryManager * psi::psimrcc::memory_manager
ModelSpace* psi::psimrcc::model_space
MOInfo * psi::psimrcc::moinfo
CCSort * psi::psimrcc::sorter
CCTransform * psi::psimrcc::trans = nullptr