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

trans12_grt.h

00001 //
00002 // trans12_grt.h
00003 //
00004 // Copyright (C) 2001 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_trans12grt_h
00029 #define _chemistry_qc_mbpt_trans12grt_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_GRT_12Qtr: 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_GRT_12Qtr(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_GRT_12Qtr();
00086 
00087     void set_i_offset(int ioff) { i_offset = ioff; }
00088     void set_ni(int nivalue) { ni = nivalue; }
00089 
00090     void run();
00091 };
00092 
00093 }
00094 
00095 #endif
00096 
00097 // //////////////////////////////////////////////////////////////////////////
00098 
00099 // Local Variables:
00100 // mode: c++
00101 // c-file-style: "CLJ-CONDENSED"
00102 // End:

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