Psi4
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
psi::IWL Class Reference

#include <iwl.hpp>

Public Member Functions

 IWL ()
 
 IWL (PSIO *psio, int itap, double cutoff, int oldfile, int readflag)
 
 ~IWL ()
 
int & itap ()
 
psio_addressbuffer_position ()
 
int & ints_per_buffer ()
 
int & buffer_size ()
 
double & cutoff ()
 
int & last_buffer ()
 
int & buffer_count ()
 
int & index ()
 
Labellabels ()
 
Valuevalues ()
 
bool & keep ()
 
void init (PSIO *psio, int itap, double cutoff, int oldfile, int readflag)
 
void set_keep_flag (bool k)
 
void close ()
 
void fetch ()
 
void put ()
 
int read (int target_pq, double *ints, int *ioff_lt, int *ioff_rt, int mp2, int printflg, std::string OutFileRMR)
 
int read_all (double *ints, int *ioff_lt, int *ioff_rt, int no_pq_perm, int *ioff, int printflg, std::string OutFileRMR)
 
int read_all2 (double **ints, int *ioff_lt, int *ioff_rt, int no_pq_perm, int *ioff, int printflg, std::string OutFileRMR)
 
int read_all_active (double *ints, int *ioff_lt, int *ioff_rt, int no_pq_perm, int *ioff, int fstact, int lstact, int printflg, std::string OutFileRMR)
 
int read_all_mp2r12a (double *ints, int *ioff_lt, int *ioff_rt, int bra_ket_symm, int *ioff, int printflg, std::string OutFileRMR)
 
int read_array (int target_pq, double *ints, int *rlist, int *slist, int *size, int *ioff, int printflg, std::string OutFileRMR)
 
int read_array2 (double *ints, int *plist, int *qlist, int *rlist, int *slist, int *size, int *ioff, int printflg, std::string OutFileRMR)
 
void write (int p, int q, int pq, int pqsym, double *arr, int rmax, int *ioff, int *orbsym, int *firsti, int *lasti, int printflag, std::string OutFileRMR)
 
void write_all (int nbfso, double *ints, int *ioff, int printflg, std::string OutFileRMR)
 
void write_mp2 (int p, int q, int pq, int pqsym, double **arr, int rsym, int *firstr, int *lastr, int *firsts, int *lasts, int *occ, int *vir, int *ioff, int printflag, std::string OutFileRMR)
 
void write_mp2r12a (int p, int q, int pq, int pqsym, double **arr, int rsym, int *firstr, int *lastr, int *firsts, int *lasts, int *occ, int bra_ket_symm, int *ioff, int printflag, std::string OutFileRMR)
 
void write_array (double *arr, int *p, int *q, int *r, int *s, long int size)
 
void write_array_SI (double *arr, short int *p, short int *q, short int *r, short int *s, int size)
 
void write_array_SI_nocut (double *arr, short int *p, short int *q, short int *r, short int *s, int size)
 
void write_array2 (double *arr, int p, int q, int *rlist, int *slist, int size, int printflag, std::string OutFileRMR)
 
void write_matrix (int ptr, int qtr, double **mat, int rfirst, int rlast, int sfirst, int slast, int *reorder, int reorder_offset, int printflag, int *ioff, std::string OutFileRMR)
 
void write_matrix2 (int ptr, int qtr, double **mat, int rfirst, int rlast, int sfirst, int slast, int *reorder, int reorder_offset, int printflag, int *ioff, std::string OutFileRMR)
 
void write_value (int p, int q, int r, int s, double value, int printflag, std::string OutFileRMR, int dirac)
 
void write_value_SI (short int p, short int q, short int r, short int s, double value, int printflag, std::string OutFileRMR, int dirac)
 
void flush (int lastbuf)
 
void to_end ()
 

Static Public Member Functions

static void read_one (PSIO *psio, int itap, const char *label, double *ints, int ntri, int erase, int printflg, std::string OutFileRMR)
 
static void write_one (PSIO *psio, int itap, const char *label, int ntri, double *onel_ints)
 
static void read_two (PSIO *psio, int itap, double *ints, int *ioff, int norbs, int nfzc, int nfzv, int printflg, std::string OutFileRMR)
 
static void write_two (PSIO *psio, int itap, int nbfso, double *ints, int *ioff, double toler, int printflg, std::string OutFileRMR)
 
static void sort_buffer (IWL *Inbuf, IWL *Outbuf, double *ints, int fpq, int lpq, int *ioff, int *ioff2, int nbfso, int elbert, int intermediate, int no_pq_perm, int qdim, int add, int printflg, std::string OutFileRMR)
 
static void sort_buffer_pk (IWL *inbuf, int out_tape, int is_exch, double *ints, unsigned int fpq, unsigned int lpq, int *so2ind, int *so2sym, int *pksymoff, int printflg, std::string out)
 

Private Attributes

int itap_
 
psio_address bufpos_
 
int ints_per_buf_
 
int bufszc_
 
double cutoff_
 
int lastbuf_
 
int inbuf_
 
int idx_
 
Labellabels_
 
Valuevalues_
 
PSIOpsio_
 
bool keep_
 

Constructor & Destructor Documentation

psi::IWL::IWL ( )

set up buffer info

psi::IWL::IWL ( PSIO psio,
int  itap,
double  cutoff,
int  oldfile,
int  readflag 
)
psi::IWL::~IWL ( )

Member Function Documentation

int& psi::IWL::buffer_count ( )
inline
psio_address& psi::IWL::buffer_position ( )
inline
int& psi::IWL::buffer_size ( )
inline
void psi::IWL::close ( )
double& psi::IWL::cutoff ( )
inline
void psi::IWL::fetch ( )
void psi::IWL::flush ( int  lastbuf)
int& psi::IWL::index ( )
inline
void psi::IWL::init ( PSIO psio,
int  itap,
double  cutoff,
int  oldfile,
int  readflag 
)

set up buffer info

make room in the buffer

open the output file

Note that we assume that if oldfile isn't set, we O_CREAT the file

go ahead and read a buffer

int& psi::IWL::ints_per_buffer ( )
inline
int& psi::IWL::itap ( )
inline
bool& psi::IWL::keep ( )
inline
Label* psi::IWL::labels ( )
inline
int& psi::IWL::last_buffer ( )
inline
void psi::IWL::put ( )
int psi::IWL::read ( int  target_pq,
double *  ints,
int *  ioff_lt,
int *  ioff_rt,
int  mp2,
int  printflg,
std::string  OutFileRMR 
)

I think this will work

if (pq < target_pq) continue;

end loop through current buffer

read new buffers

I think this will work

end loop through current buffer

end loop over reading buffers

we must have reached the last buffer at this point

int psi::IWL::read_all ( double *  ints,
int *  ioff_lt,
int *  ioff_rt,
int  no_pq_perm,
int *  ioff,
int  printflg,
std::string  OutFileRMR 
)

I think this will work

end loop through current buffer

read new PSI buffers

I think this will work

end loop through current buffer

end loop over reading buffers

we must have reached the last buffer at this point

int psi::IWL::read_all2 ( double **  ints,
int *  ioff_lt,
int *  ioff_rt,
int  no_pq_perm,
int *  ioff,
int  printflg,
std::string  OutFileRMR 
)

I think this will work

end loop through current buffer

read new PSI buffers

I think this will work

end loop through current buffer

end loop over reading buffers

we must have reached the last buffer at this point

int psi::IWL::read_all_active ( double *  ints,
int *  ioff_lt,
int *  ioff_rt,
int  no_pq_perm,
int *  ioff,
int  fstact,
int  lstact,
int  printflg,
std::string  OutFileRMR 
)

I think this will work

end loop through current buffer

read new PSI buffers

I think this will work

end loop through current buffer

end loop over reading buffers

we must have reached the last buffer at this point

int psi::IWL::read_all_mp2r12a ( double *  ints,
int *  ioff_lt,
int *  ioff_rt,
int  bra_ket_symm,
int *  ioff,
int  printflg,
std::string  OutFileRMR 
)

ERIs or R12-integrals

(ip|[T1+T2,r12]|jq) = -[(ip|[r12,T1]|jq) + (jq|[r12,T2]|ip)]

end loop through current buffer

read new PSI buffers

ERIs or R12-integrals

(ip|[T1+T2,r12]|jq) = -[(ip|[r12,T2]|jq)+(jq|[r12,T2]|ip)]

end loop through current buffer

end loop over reading buffers

we must have reached the last buffer at this point

int psi::IWL::read_array ( int  target_pq,
double *  ints,
int *  rlist,
int *  slist,
int *  size,
int *  ioff,
int  printflg,
std::string  OutFileRMR 
)

end loop through current buffer

read new buffers

end loop through current buffer

end loop over reading buffers

we must have reached the last buffer at this point

int psi::IWL::read_array2 ( double *  ints,
int *  plist,
int *  qlist,
int *  rlist,
int *  slist,
int *  size,
int *  ioff,
int  printflg,
std::string  OutFileRMR 
)

end loop through current buffer

read new buffers

end loop through current buffer

end loop over reading buffers

we must have reached the last buffer at this point

void psi::IWL::read_one ( PSIO psio,
int  itap,
const char *  label,
double *  ints,
int  ntri,
int  erase,
int  printflg,
std::string  OutFileRMR 
)
static
void psi::IWL::read_two ( PSIO psio,
int  itap,
double *  ints,
int *  ioff,
int  norbs,
int  nfzc,
int  nfzv,
int  printflg,
std::string  OutFileRMR 
)
static
void psi::IWL::set_keep_flag ( bool  k)
inline
void psi::IWL::sort_buffer ( IWL Inbuf,
IWL Outbuf,
double *  ints,
int  fpq,
int  lpq,
int *  ioff,
int *  ioff2,
int  nbfso,
int  elbert,
int  intermediate,
int  no_pq_perm,
int  qdim,
int  add,
int  printflg,
std::string  OutFileRMR 
)
static
void psi::IWL::to_end ( )
Value* psi::IWL::values ( )
inline
void psi::IWL::write ( int  p,
int  q,
int  pq,
int  pqsym,
double *  arr,
int  rmax,
int *  ioff,
int *  orbsym,
int *  firsti,
int *  lasti,
int  printflag,
std::string  OutFileRMR 
)
void psi::IWL::write_all ( int  nbfso,
double *  ints,
int *  ioff,
int  printflg,
std::string  OutFileRMR 
)
void psi::IWL::write_array ( double *  arr,
int *  p,
int *  q,
int *  r,
int *  s,
long int  size 
)
void psi::IWL::write_array2 ( double *  arr,
int  p,
int  q,
int *  rlist,
int *  slist,
int  size,
int  printflag,
std::string  OutFileRMR 
)
void psi::IWL::write_array_SI ( double *  arr,
short int *  p,
short int *  q,
short int *  r,
short int *  s,
int  size 
)
void psi::IWL::write_array_SI_nocut ( double *  arr,
short int *  p,
short int *  q,
short int *  r,
short int *  s,
int  size 
)
void psi::IWL::write_matrix ( int  ptr,
int  qtr,
double **  mat,
int  rfirst,
int  rlast,
int  sfirst,
int  slast,
int *  reorder,
int  reorder_offset,
int  printflag,
int *  ioff,
std::string  OutFileRMR 
)
void psi::IWL::write_matrix2 ( int  ptr,
int  qtr,
double **  mat,
int  rfirst,
int  rlast,
int  sfirst,
int  slast,
int *  reorder,
int  reorder_offset,
int  printflag,
int *  ioff,
std::string  OutFileRMR 
)
void psi::IWL::write_mp2 ( int  p,
int  q,
int  pq,
int  pqsym,
double **  arr,
int  rsym,
int *  firstr,
int *  lastr,
int *  firsts,
int *  lasts,
int *  occ,
int *  vir,
int *  ioff,
int  printflag,
std::string  OutFileRMR 
)
void psi::IWL::write_mp2r12a ( int  p,
int  q,
int  pq,
int  pqsym,
double **  arr,
int  rsym,
int *  firstr,
int *  lastr,
int *  firsts,
int *  lasts,
int *  occ,
int  bra_ket_symm,
int *  ioff,
int  printflag,
std::string  OutFileRMR 
)
void psi::IWL::write_one ( PSIO psio,
int  itap,
const char *  label,
int  ntri,
double *  onel_ints 
)
static
void psi::IWL::write_two ( PSIO psio,
int  itap,
int  nbfso,
double *  ints,
int *  ioff,
double  toler,
int  printflg,
std::string  OutFileRMR 
)
static
void psi::IWL::write_value ( int  p,
int  q,
int  r,
int  s,
double  value,
int  printflag,
std::string  OutFileRMR,
int  dirac 
)
void psi::IWL::write_value_SI ( short int  p,
short int  q,
short int  r,
short int  s,
double  value,
int  printflag,
std::string  OutFileRMR,
int  dirac 
)

Member Data Documentation

psio_address psi::IWL::bufpos_
private
int psi::IWL::bufszc_
private
double psi::IWL::cutoff_
private
int psi::IWL::idx_
private
int psi::IWL::inbuf_
private
int psi::IWL::ints_per_buf_
private
int psi::IWL::itap_
private
bool psi::IWL::keep_
private

Flag indicating whether to keep the IWL file or not

Label* psi::IWL::labels_
private
int psi::IWL::lastbuf_
private
PSIO* psi::IWL::psio_
private

Instance of libpsio to use

Value* psi::IWL::values_
private

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