MPQC  3.0.0-alpha
src/lib/chemistry/qc/ccr12/ccsd_sub_r12_right.h
00001 //
00002 // ccsd_sub_r12_right.h --- computes the rhs numerator of the CCSD(2)R12
00003 //
00004 // Copyright (C) 2009 Toru Shiozaki
00005 //
00006 // Author: Toru Shiozaki <shiozaki.toru@gmail.com>
00007 // Maintainer: TS
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_ccr12_ccsd_sub_r12_right_h
00029 #define _chemistry_qc_ccr12_ccsd_sub_r12_right_h
00030 
00031 #include <chemistry/qc/ccr12/ccr12_info.h>
00032 
00033 namespace sc {
00034 
00035 class CCSD_SUB_R12_RIGHT : public RefCount { 
00036 
00037   protected:
00038 
00039     CCR12_Info* z;
00040 
00041     std::vector<Tensor*> in; 
00042 
00043     void offset_smith_0_1();
00044     void smith_0_1_0(); //z->vd2()=>in.at(1)
00045     void offset_smith_1_1();
00046     void smith_1_1_0(); //z->f1()=>in.at(2)
00047     void smith_2_10(); //z->t1(),z->v2()=>in.at(2)
00048     void smith_1_1(); //z->fy(),in.at(2)=>in.at(1)
00049     void offset_smith_1_12();
00050     void smith_2_12(); //z->t1(),z->fy()=>in.at(2)
00051     void smith_1_12(); //z->v2(),in.at(2)=>in.at(1)
00052     void smith_0_1(Ref<Tensor>&); //z->t2(),in.at(1)=>Ref<Tensor>&
00053     void smith_0_2(Ref<Tensor>&); //z->vd2()=>Ref<Tensor>&
00054     void offset_smith_0_3();
00055     void smith_1_3(); //z->t1(),z->fy()=>in.at(1)
00056     void smith_0_3(Ref<Tensor>&); //z->v2(),in.at(1)=>Ref<Tensor>&
00057     void offset_smith_0_4();
00058     void smith_0_4_0(); //z->vd2()=>in.at(1)
00059     void offset_smith_1_5();
00060     void smith_2_5(); //z->t1(),z->fy()=>in.at(2)
00061     void smith_1_5(); //z->v2(),in.at(2)=>in.at(1)
00062     void smith_1_6(); //z->t1(),z->vd2()=>in.at(1)
00063     void smith_0_4(Ref<Tensor>&); //z->t1(),in.at(1)=>Ref<Tensor>&
00064     void offset_smith_0_7();
00065     void offset_smith_1_7();
00066     void smith_1_7_0(); //z->v2()=>in.at(2)
00067     void smith_2_11(); //z->t1(),z->v2()=>in.at(2)
00068     void smith_1_7(); //z->t2(),in.at(2)=>in.at(1)
00069     void offset_smith_1_9();
00070     void offset_smith_2_9();
00071     void smith_3_9(); //z->t1(),z->v2()=>in.at(3)
00072     void smith_2_9(); //z->t1(),in.at(3)=>in.at(2)
00073     void smith_1_9(); //z->t1(),in.at(2)=>in.at(1)
00074     void smith_0_7(Ref<Tensor>&); //z->fy(),in.at(1)=>Ref<Tensor>&
00075 
00076   public:
00077     CCSD_SUB_R12_RIGHT(CCR12_Info* info);
00078     ~CCSD_SUB_R12_RIGHT();
00079 
00080     void compute_amp(Ref<Tensor>&);
00081 
00082 };
00083 
00084 
00085 
00086 }
00087 
00088 #endif
00089 
00090 

Generated at Sat Jul 7 2012 11:52:44 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.0.