Main Page Class Hierarchy Compound List File List Compound Members Related Pages

# vxb_eval.h

    00001 //
    00002 // vxb_eval.h
    00003 //
    00004 // Copyright (C) 2003 Edward Valeev
    00005 //
    00006 // Author: Edward Valeev <edward.valeev@chemistry.gatech.edu>
    00007 // Maintainer: EV
    00008 //
    00009 // This file is part of the SC Toolkit.
    00010 //
    00011 // The SC Toolkit is free software; you can redistribute it and/or modify
    00012 // it under the terms of the GNU Library General Public License as published by
    00013 // the Free Software Foundation; either version 2, or (at your option)
    00014 // any later version.
    00015 //
    00016 // The SC Toolkit is distributed in the hope that it will be useful,
    00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00019 // GNU Library General Public License for more details.
    00020 //
    00021 // You should have received a copy of the GNU Library General Public License
    00022 // along with the SC Toolkit; see the file COPYING.LIB.  If not, write to
    00023 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
    00024 //
    00025 // The U.S. Government is granted a limited license as per AL 91-7.
    00026 //
    00027
    00028 #ifdef __GNUG__
    00029 #pragma interface
    00030 #endif
    00031
    00032 #ifndef _chemistry_qc_mbptr12_vxbeval_h
    00033 #define _chemistry_qc_mbptr12_vxbeval_h
    00034
    00035 #include <util/ref/ref.h>
    00036 #include <chemistry/qc/mbptr12/mbptr12.h>
    00037 #include <chemistry/qc/mbptr12/linearr12.h>
    00038 #include <chemistry/qc/mbptr12/vxb_eval_info.h>
    00039 #include <chemistry/qc/mbptr12/vxb_eval_sbs_a.h>
    00040 #include <chemistry/qc/mbptr12/vxb_eval_abs_a.h>
    00041
    00042 namespace sc {
    00043
    00044 class MBPT2_R12;
    00045 class R12IntEvalInfo;
    00046 class R12IntEval_sbs_A;
    00047 class R12IntEval_abs_A;
    00048
    00051 class R12IntEval : virtual public SavableState {
    00052
    00054   bool evaluated_;
    00055
    00056   Ref<R12IntEvalInfo> r12info_;
    00057
    00058   Ref<R12IntEval_sbs_A> eval_sbs_a_;
    00059   Ref<R12IntEval_abs_A> eval_abs_a_;
    00060
    00061   RefSCMatrix Vaa_, Vab_, Xaa_, Xab_, Baa_, Bab_;
    00062   RefSCVector emp2pair_aa_, emp2pair_ab_;
    00063   RefSCDimension dim_aa_, dim_ab_, dim_s_, dim_t_;
    00064
    00065   LinearR12::StandardApproximation stdapprox_;
    00066   bool spinadapted_;
    00067   int debug_;
    00068
    00069 public:
    00070
    00071   R12IntEval(StateIn&);
    00072   R12IntEval(MBPT2_R12*);
    00073   ~R12IntEval();
    00074
    00075   void save_data_state(StateOut&);
    00077   void obsolete();
    00078
    00079   void set_stdapprox(LinearR12::StandardApproximation stdapprox);
    00080   void set_spinadapted(bool spinadapted);
    00081   void set_debug(int debug);
    00082   void set_dynamic(bool dynamic);
    00083   void set_memory(size_t nbytes);
    00084
    00085   Ref<R12IntEvalInfo> r12info() const;
    00086   RefSCDimension dim_aa() const;
    00087   RefSCDimension dim_ab() const;
    00088   RefSCDimension dim_s() const;
    00089   RefSCDimension dim_t() const;
    00090
    00091   RefSCMatrix V_aa();
    00092   RefSCMatrix X_aa();
    00093   RefSCMatrix B_aa();
    00094   RefSCMatrix V_ab();
    00095   RefSCMatrix X_ab();
    00096   RefSCMatrix B_ab();
    00097   RefSCVector emp2_aa();
    00098   RefSCVector emp2_ab();
    00099
    00100   void compute();
    00101   RefDiagSCMatrix evals() const;
    00102
    00103 };
    00104
    00105 }
    00106
    00107 #endif
    00108
    00109 // Local Variables:
    00110 // mode: c++
    00111 // c-file-style: "CLJ"
    00112 // End:
    00113
    00114