25#ifndef _chemistry_qc_lmp2_lcorr_h
26#define _chemistry_qc_lmp2_lcorr_h
30#include <util/misc/scexception.h>
32#include <math/optimize/diis.h>
33#include <math/scmat/repl.h>
34#include <math/scmat/matrix.h>
36#include <chemistry/qc/basis/basis.h>
37#include <chemistry/qc/basis/tbint.h>
38#include <chemistry/qc/scf/scf.h>
40#include <chemistry/qc/lmp2/sma.h>
41#include <chemistry/qc/lmp2/domain.h>
42#include <chemistry/qc/lmp2/util.h>
50 double W_eigval_threshold_;
54 std::vector<std::vector<int> > virb_to_bfns_;
57 std::map<domainmapvirbs_t, sma2::Array<2> > unique_W_;
58 std::map<domainmapvirbs_t, std::vector<double> > unique_eigvals_;
59 std::map<domainmapvirbs_t, sma2::Array<2> > unique_F_tilde_;
64 void compute_W_index_maps(
int blockdim,
int blockdim_nonred,
66 std::vector<int> &index_map1,
67 std::vector<int> &index_map2,
72 int n_unique_W()
const {
return unique_W_.size(); }
74 std::vector<double> &unique_eigvals(
const domainmapvirbs_t &i);
80 void compute_W(domainmapvirbs_t &virset,
A base class for local correlation methods.
Definition lcorr.h:48
LCorr(const sc::Ref< sc::KeyVal > &)
Construct an LCorr object from KeyVal input.
void clear()
Release stored data.
void transform_array(sma2::Array< 2 > &A, sma2::Array< 2 > &B, sma2::Array< 2 > &C, sma2::Array< 2 > &D, const sc::Ref< sc::MessageGrp > &msg)
Transform A to D using transformation matrices B,C: D = B^T*A*C.
void print_parameters() const
Print input parameters.
void init_virb_to_bfns(const sma2::Range &vir)
This must be called before compute_W is called.
void save_data_state(sc::StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition matrix.h:135
A template class that maintains references counts.
Definition ref.h:361
Restores fundamental and user-defined types from images created with StateOut.
Definition statein.h:79
Serializes fundamental and user-defined types.
Definition stateout.h:71
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition wfn.h:52
Ref< GaussianBasisSet > basis() const
Returns the basis set.
Implements a block sparse tensor.
Definition sma.h:1247
An Range represent a set of integers, [0, N).
Definition sma.h:93
Contains all MPQC code up to version 3.
Definition mpqcin.h:14