1 // 2 // BAGEL - Brilliantly Advanced General Electronic Structure Library 3 // Filename: cis.cc 4 // Copyright (C) 2017 Toru Shiozaki 5 // 6 // Author: Toru Shiozaki <shiozaki@northwestern.edu> 7 // Maintainer: Shiozaki group 8 // 9 // This file is part of the BAGEL package. 10 // 11 // This program is free software: you can redistribute it and/or modify 12 // it under the terms of the GNU General Public License as published by 13 // the Free Software Foundation, either version 3 of the License, or 14 // (at your option) any later version. 15 // 16 // This program is distributed in the hope that it will be useful, 17 // but WITHOUT ANY WARRANTY; without even the implied warranty of 18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 // GNU General Public License for more details. 20 // 21 // You should have received a copy of the GNU General Public License 22 // along with this program. If not, see <http://www.gnu.org/licenses/>. 23 // 24 25 #ifndef __SRC_RESPONSE_CIS_H 26 #define __SRC_RESPONSE_CIS_H 27 28 #include <src/wfn/method.h> 29 30 namespace bagel { 31 32 // perform CI singles 33 class CIS : public Method { 34 protected: 35 const int nstate_; 36 const int nocc_; 37 const int nvirt_; 38 const int maxiter_; 39 40 const double thresh_; 41 42 // orbital energies 43 VectorB eig_; 44 // CIS energies 45 std::vector<double> energy_; 46 47 std::shared_ptr<const DFHalfDist> half_; 48 std::shared_ptr<const DFFullDist> fulljj_; 49 std::shared_ptr<const Matrix> coeff_; // coeff internally used 50 51 std::vector<std::shared_ptr<const Matrix>> amp_; 52 53 public: 54 CIS(std::shared_ptr<const PTree>, std::shared_ptr<const Geometry>, std::shared_ptr<const Reference>); 55 56 void compute(); conv_to_ref()57 std::shared_ptr<const Reference> conv_to_ref() const { return ref_; } 58 energy()59 double energy() const { return energy_[0] + ref_->energy(0); } excitation_energy()60 std::vector<double> excitation_energy() const { return energy_; } 61 }; 62 63 } 64 65 #endif 66