// // BAGEL - Brilliantly Advanced General Electronic Structure Library // Filename: MRCI_residualqq.cc // Copyright (C) 2014 Toru Shiozaki // // Author: Toru Shiozaki // Maintainer: Shiozaki group // // This file is part of the BAGEL package. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #ifdef COMPILE_SMITH #include #include using namespace std; using namespace bagel; using namespace bagel::SMITH; shared_ptr MRCI::MRCI::make_residualq(const bool reset, const bool diagonal) { auto out = make_shared(); auto tensor108 = vector>{r}; auto task108 = make_shared(tensor108, reset); out->add_task(task108); make_residualq1(out, task108, diagonal); make_residualq2(out, task108, diagonal); make_residualq3(out, task108, diagonal); make_residualq4(out, task108, diagonal); make_residualq5(out, task108, diagonal); make_residualq6(out, task108, diagonal); make_residualq7(out, task108, diagonal); make_residualq8(out, task108, diagonal); make_residualq9(out, task108, diagonal); return out; } void MRCI::MRCI::make_residualq1(shared_ptr residualq, shared_ptr task108, const bool diagonal) { array,3> pindex = {{rclosed_, ractive_, rvirt_}}; vector I0_index = {closed_, closed_, active_, active_}; auto I0 = make_shared(I0_index); auto tensor109 = vector>{r, I0}; auto task109 = make_shared(tensor109, pindex); task109->add_dep(task108); residualq->add_task(task109); vector I1_index = {closed_, closed_, active_, active_}; auto I1 = make_shared(I1_index); auto tensor110 = vector>{I0, Gamma0_(), I1}; auto task110 = make_shared(tensor110, pindex); task109->add_dep(task110); task110->add_dep(task108); residualq->add_task(task110); auto tensor111 = vector>{I1, t2, h1_}; auto task111 = make_shared(tensor111, pindex); task110->add_dep(task111); task111->add_dep(task108); residualq->add_task(task111); vector I280_index = {virt_, active_, closed_, closed_}; auto I280 = make_shared(I280_index); auto tensor112 = vector>{I1, t2, I280}; auto task112 = make_shared(tensor112, pindex); task110->add_dep(task112); task112->add_dep(task108); residualq->add_task(task112); auto tensor113 = vector>{I280, v2_}; auto task113 = make_shared(tensor113, pindex); task112->add_dep(task113); task113->add_dep(task108); residualq->add_task(task113); auto tensor114 = vector>{I1, t2, v2_}; auto task114 = make_shared(tensor114, pindex); task110->add_dep(task114); task114->add_dep(task108); residualq->add_task(task114); vector I4_index = {closed_, active_, active_, active_}; auto I4 = make_shared(I4_index); auto tensor115 = vector>{I0, h1_, I4}; auto task115 = make_shared(tensor115, pindex); task109->add_dep(task115); task115->add_dep(task108); residualq->add_task(task115); auto tensor116 = vector>{I4, Gamma1_(), t2}; auto task116 = make_shared(tensor116, pindex); task115->add_dep(task116); task116->add_dep(task108); residualq->add_task(task116); vector I7_index = {active_, closed_, closed_, active_}; auto I7 = make_shared(I7_index); auto tensor117 = vector>{I0, Gamma2_(), I7}; auto task117 = make_shared(tensor117, pindex); task109->add_dep(task117); task117->add_dep(task108); residualq->add_task(task117); auto tensor118 = vector>{I7, t2, h1_}; auto task118 = make_shared(tensor118, pindex); task117->add_dep(task118); task118->add_dep(task108); residualq->add_task(task118); auto tensor119 = vector>{I7, t2, v2_}; auto task119 = make_shared(tensor119, pindex); task117->add_dep(task119); task119->add_dep(task108); residualq->add_task(task119); vector I249_index = {closed_, active_, active_, closed_, active_, active_}; auto I249 = make_shared(I249_index); auto tensor120 = vector>{I0, Gamma80_(), I249}; auto task120 = make_shared(tensor120, pindex); task109->add_dep(task120); task120->add_dep(task108); residualq->add_task(task120); vector I250_index = {closed_, closed_, active_, active_}; auto I250 = make_shared(I250_index); auto tensor121 = vector>{I249, t2, I250}; auto task121 = make_shared(tensor121, pindex); task120->add_dep(task121); task121->add_dep(task108); residualq->add_task(task121); auto tensor122 = vector>{I250, v2_}; auto task122 = make_shared(tensor122, pindex); task121->add_dep(task122); task122->add_dep(task108); residualq->add_task(task122); vector I252_index = {closed_, active_, active_, closed_, active_, active_}; auto I252 = make_shared(I252_index); auto tensor123 = vector>{I0, Gamma81_(), I252}; auto task123 = make_shared(tensor123, pindex); task109->add_dep(task123); task123->add_dep(task108); residualq->add_task(task123); auto tensor124 = vector>{I252, t2, v2_}; auto task124 = make_shared(tensor124, pindex); task123->add_dep(task124); task124->add_dep(task108); residualq->add_task(task124); vector I255_index = {active_, closed_, active_, closed_, active_, active_}; auto I255 = make_shared(I255_index); auto tensor125 = vector>{I0, Gamma82_(), I255}; auto task125 = make_shared(tensor125, pindex); task109->add_dep(task125); task125->add_dep(task108); residualq->add_task(task125); auto tensor126 = vector>{I255, t2, v2_}; auto task126 = make_shared(tensor126, pindex); task125->add_dep(task126); task126->add_dep(task108); residualq->add_task(task126); vector I264_index = {closed_, active_, active_, active_, active_, active_}; auto I264 = make_shared(I264_index); auto tensor127 = vector>{I0, t2, I264}; auto task127 = make_shared(tensor127, pindex); task109->add_dep(task127); task127->add_dep(task108); residualq->add_task(task127); auto tensor128 = vector>{I264, Gamma85_(), v2_}; auto task128 = make_shared(tensor128, pindex); task127->add_dep(task128); task128->add_dep(task108); residualq->add_task(task128); auto tensor129 = vector>{I264, Gamma86_(), v2_}; auto task129 = make_shared(tensor129, pindex); task127->add_dep(task129); task129->add_dep(task108); residualq->add_task(task129); vector I270_index = {closed_, active_, active_, active_}; auto I270 = make_shared(I270_index); auto tensor130 = vector>{I0, v2_, I270}; auto task130 = make_shared(tensor130, pindex); task109->add_dep(task130); task130->add_dep(task108); residualq->add_task(task130); auto tensor131 = vector>{I270, Gamma87_(), t2}; auto task131 = make_shared(tensor131, pindex); task130->add_dep(task131); task131->add_dep(task108); residualq->add_task(task131); vector I273_index = {virt_, active_, active_, active_}; auto I273 = make_shared(I273_index); auto tensor132 = vector>{I0, t2, I273}; auto task132 = make_shared(tensor132, pindex); task109->add_dep(task132); task132->add_dep(task108); residualq->add_task(task132); auto tensor133 = vector>{I273, Gamma88_(), v2_}; auto task133 = make_shared(tensor133, pindex); task132->add_dep(task133); task133->add_dep(task108); residualq->add_task(task133); auto tensor134 = vector>{I273, Gamma89_(), v2_}; auto task134 = make_shared(tensor134, pindex); task132->add_dep(task134); task134->add_dep(task108); residualq->add_task(task134); vector I291_index = {closed_, active_, active_, active_, closed_, active_}; auto I291 = make_shared(I291_index); auto tensor135 = vector>{I0, Gamma94_(), I291}; auto task135 = make_shared(tensor135, pindex); task109->add_dep(task135); task135->add_dep(task108); residualq->add_task(task135); auto tensor136 = vector>{I291, t2, v2_}; auto task136 = make_shared(tensor136, pindex); task135->add_dep(task136); task136->add_dep(task108); residualq->add_task(task136); vector I294_index = {closed_, active_, active_, closed_, active_, active_}; auto I294 = make_shared(I294_index); auto tensor137 = vector>{I0, Gamma87_(), I294}; auto task137 = make_shared(tensor137, pindex); task109->add_dep(task137); task137->add_dep(task108); residualq->add_task(task137); auto tensor138 = vector>{I294, t2, v2_}; auto task138 = make_shared(tensor138, pindex); task137->add_dep(task138); task138->add_dep(task108); residualq->add_task(task138); } #endif