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

trans123_r12a_abs.h

00001 //
00002 // trans123_r12a_abs.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 #ifndef _chemistry_qc_mbpt_trans123r12aabs_h
00029 #define _chemistry_qc_mbpt_trans123r12aabs_h
00030 
00031 #ifdef __GNUC__
00032 #pragma interface
00033 #endif
00034 
00035 #include <util/misc/regtime.h>
00036 #include <util/group/memory.h>
00037 #include <util/group/thread.h>
00038 #include <chemistry/qc/basis/integral.h>
00039 
00040 namespace sc {
00041 
00042 #define PRINT_BIGGEST_INTS 0
00043 
00044 class R12A_ABS_123Qtr: public Thread {
00045   private:
00046     Ref<MessageGrp> msg;
00047     Ref<MemoryGrp> mem;
00048     Ref<TwoBodyInt> tbint;
00049     Ref<GaussianBasisSet> basis;
00050     Ref<GaussianBasisSet> aux_basis;
00051     Ref<ThreadLock> lock;
00052     Ref<RegionTimer> timer;
00053     int mythread;
00054     int nthread;
00055     int ni;
00056     int nocc;
00057     int nocc_act;
00058     int i_offset;
00059     int aoint_computed;
00060     int me;
00061     int nproc;
00062     double tol;
00063     double **scf_vector;
00064     int debug;
00065     int dynamic_;
00066 
00067     Ref<GaussianBasisSet> bs1_;
00068     Ref<GaussianBasisSet> bs2_;
00069     Ref<GaussianBasisSet> bs3_;
00070     Ref<GaussianBasisSet> bs4_;
00071 
00072   public:
00073     R12A_ABS_123Qtr(int mythread, int nthread,
00074                     int me, int nproc,
00075                     const Ref<MemoryGrp> &mem,
00076                     const Ref<MessageGrp> &msg,
00077                     const Ref<ThreadLock> &lock,
00078                     const Ref<GaussianBasisSet> &basis,
00079                     const Ref<GaussianBasisSet> &aux_basis,
00080                     const Ref<TwoBodyInt> &tbint,
00081                     int nocc, int nocc_act,
00082                     double **scf_vector,
00083                     double tol, int debug,
00084                     int dynamic);
00085     ~R12A_ABS_123Qtr();
00086 
00087     void set_i_offset(int ioff) { i_offset = ioff; }
00088     void set_ni(int nivalue) { ni = nivalue; }
00089 
00091   //static size_t storage_required(int nocc_act, int nocc, Ref<GaussianBasisSet>& bs, Ref<GaussianBasisSet>& bs_aux) const;
00092 
00093     void run();
00094 };
00095 
00096 }
00097 
00098 #endif
00099 
00100 // //////////////////////////////////////////////////////////////////////////
00101 
00102 // Local Variables:
00103 // mode: c++
00104 // c-file-style: "CLJ-CONDENSED"
00105 // End:

Generated at Mon Nov 29 08:41:52 2004 for MPQC 2.2.2 using the documentation package Doxygen 1.3.9.1.