From a725aa888ca027f227a208c6cd05f4eaae95ab1f Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Thu, 8 Jun 2017 00:14:47 -0400 Subject: [PATCH 01/11] updated energy of df-mp2 wavefunction --- psi4/src/psi4/dfmp2/mp2.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/psi4/src/psi4/dfmp2/mp2.cc b/psi4/src/psi4/dfmp2/mp2.cc index 021ffedac88..d0221ff5555 100644 --- a/psi4/src/psi4/dfmp2/mp2.cc +++ b/psi4/src/psi4/dfmp2/mp2.cc @@ -229,6 +229,7 @@ double DFMP2::compute_energy() form_energy(); timer_off("DFMP2 Energy"); print_energies(); + energy_ = variables_["MP2 TOTAL ENERGY"]; return variables_["MP2 TOTAL ENERGY"]; } @@ -314,6 +315,7 @@ SharedMatrix DFMP2::compute_gradient() if(options_.get_bool("ONEPDM")){ print_energies(); + energy_ = variables_["MP2 TOTAL ENERGY"]; return SharedMatrix(new Matrix("NULL", 0, 0)); } @@ -322,6 +324,7 @@ SharedMatrix DFMP2::compute_gradient() timer_off("DFMP2 grad"); print_energies(); + energy_ = variables_["MP2 TOTAL ENERGY"]; print_gradients(); From d63e6198041ef4cf32fa706fe253aa20a506beea Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Sun, 25 Jun 2017 10:19:12 -0400 Subject: [PATCH 02/11] updated Mp2 energy for occ and dfocc wfns --- psi4/src/psi4/dfocc/dfocc.cc | 5 +++++ psi4/src/psi4/occ/occwave.cc | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/psi4/src/psi4/dfocc/dfocc.cc b/psi4/src/psi4/dfocc/dfocc.cc index d38443a6f29..e335d1b443c 100644 --- a/psi4/src/psi4/dfocc/dfocc.cc +++ b/psi4/src/psi4/dfocc/dfocc.cc @@ -33,6 +33,8 @@ #include "defines.h" #include "psi4/libpsi4util/PsiOutStream.h" #include "psi4/liboptions/liboptions.h" +#include "psi4/libpsi4util/process.h" + using namespace psi; @@ -535,6 +537,9 @@ double DFOCC::compute_energy() else if (wfn_type_ == "DF-OLCCD") Etotal = ElccdL; else if (wfn_type_ == "QCHF") Etotal = Eref; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["MP2 TOTAL ENERGY"]; + return Etotal; } // end of compute_energy diff --git a/psi4/src/psi4/occ/occwave.cc b/psi4/src/psi4/occ/occwave.cc index 1cb88f4c33d..cf71faed453 100644 --- a/psi4/src/psi4/occ/occwave.cc +++ b/psi4/src/psi4/occ/occwave.cc @@ -478,6 +478,10 @@ double OCCWave::compute_energy() else if (wfn_type_ == "OCEPA") return EcepaL; else if (wfn_type_ == "CEPA") return Ecepa; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["MP2 TOTAL ENERGY"]; + + return 0.0; } // end of compute_energy From 8c53bd65cfc16653e6e81b67848d7ca380f31238 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Sun, 25 Jun 2017 13:39:45 -0400 Subject: [PATCH 03/11] prevents change in Ca_ and epsilon_a in dfmp2 --- psi4/src/psi4/dfmp2/mp2.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/psi4/src/psi4/dfmp2/mp2.cc b/psi4/src/psi4/dfmp2/mp2.cc index d0221ff5555..89ca0046607 100644 --- a/psi4/src/psi4/dfmp2/mp2.cc +++ b/psi4/src/psi4/dfmp2/mp2.cc @@ -2310,6 +2310,9 @@ void RDFMP2::form_Z() SharedMatrix AP(new Matrix("A_mn^ls P_ls^(2)", nso, nso)); double** APp = AP->pointer(); SharedMatrix Dtemp; + SharedMatrix Ca__; + SharedVector epsilon_a__; + if(options_.get_bool("OPDM_RELAX")){ psio_->read_entry(PSIF_DFMP2_AIA, "W", (char*) Wpq1p[0], sizeof(double) * nmo * nmo); @@ -2403,9 +2406,10 @@ void RDFMP2::form_Z() // Add in the reference contribution for (int i = 0; i < nocc; ++i) Dtemp->add(i, i, 1.0); - Ca_ = SharedMatrix(new Matrix("DF-MP2 Natural Orbitals", nsopi_, nmopi_)); - epsilon_a_ = SharedVector(new Vector("DF-MP2 NO Occupations", nmopi_)); + Ca__ = SharedMatrix(new Matrix("DF-MP2 Natural Orbitals", nsopi_, nmopi_)); + epsilon_a__ = SharedVector(new Vector("DF-MP2 NO Occupations", nmopi_)); Da_ = SharedMatrix(new Matrix("DF-MP2 relaxed density", nsopi_, nsopi_)); + }else{ // Don't relax the OPDM Dtemp = Ppq->clone(); @@ -2414,16 +2418,18 @@ void RDFMP2::form_Z() Dtemp->scale(0.5); // Add in the reference contribution + for (int i = 0; i < nocc; ++i) Dtemp->add(i, i, 1.0); - Ca_ = SharedMatrix(new Matrix("DF-MP2 (unrelaxed) Natural Orbitals", nsopi_, nmopi_)); - epsilon_a_ = SharedVector(new Vector("DF-MP2 (unrelaxed) NO Occupations", nmopi_)); + Ca__ = SharedMatrix(new Matrix("DF-MP2 (unrelaxed) Natural Orbitals", nsopi_, nmopi_)); + epsilon_a__ = SharedVector(new Vector("DF-MP2 (unrelaxed) NO Occupations", nmopi_)); Da_ = SharedMatrix(new Matrix("DF-MP2 unrelaxed density", nsopi_, nsopi_)); + } - compute_opdm_and_nos(Dtemp, Da_, Ca_, epsilon_a_); - Cb_ = Ca_; - epsilon_b_ = epsilon_a_; + compute_opdm_and_nos(Dtemp, Da_, Ca__, epsilon_a__); + //Cb_ = Ca_; + //epsilon_b_ = epsilon_a_; Db_ = Da_; if(options_.get_bool("ONEPDM")){ From f1b5dd6374d81c3b086fd464e418d4cff2d36102 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Sun, 25 Jun 2017 15:04:25 -0400 Subject: [PATCH 04/11] cleaned up and updated names of wfns --- psi4/src/psi4/dfocc/dfocc.cc | 3 --- psi4/src/psi4/dfocc/manager.cc | 5 +++++ psi4/src/psi4/occ/manager.cc | 5 +++++ psi4/src/psi4/occ/occwave.cc | 4 ---- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/psi4/src/psi4/dfocc/dfocc.cc b/psi4/src/psi4/dfocc/dfocc.cc index e335d1b443c..08ad981a72a 100644 --- a/psi4/src/psi4/dfocc/dfocc.cc +++ b/psi4/src/psi4/dfocc/dfocc.cc @@ -537,9 +537,6 @@ double DFOCC::compute_energy() else if (wfn_type_ == "DF-OLCCD") Etotal = ElccdL; else if (wfn_type_ == "QCHF") Etotal = Eref; - /* updates the wavefunction for checkpointing */ - energy_ = Process::environment.globals["MP2 TOTAL ENERGY"]; - return Etotal; } // end of compute_energy diff --git a/psi4/src/psi4/dfocc/manager.cc b/psi4/src/psi4/dfocc/manager.cc index c6d568a0eb3..ad74f052e09 100644 --- a/psi4/src/psi4/dfocc/manager.cc +++ b/psi4/src/psi4/dfocc/manager.cc @@ -511,6 +511,11 @@ void DFOCC::mp2_manager() Process::environment.globals["MP2 OPPOSITE-SPIN CORRELATION ENERGY"] = Emp2AB; Process::environment.globals["MP2 SAME-SPIN CORRELATION ENERGY"] = Emp2AA+Emp2BB; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["MP2 TOTAL ENERGY"]; + name_ = "DF-MP2"; + + // S2 //if (comput_s2_ == "TRUE" && reference_ == "UNRESTRICTED" && dertype == "NONE") s2_response(); if (comput_s2_ == "TRUE" && reference_ == "UNRESTRICTED") { diff --git a/psi4/src/psi4/occ/manager.cc b/psi4/src/psi4/occ/manager.cc index 5bdd1065bce..64a62d3159d 100644 --- a/psi4/src/psi4/occ/manager.cc +++ b/psi4/src/psi4/occ/manager.cc @@ -385,6 +385,11 @@ void OCCWave::mp2_manager() } } + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["MP2 TOTAL ENERGY"]; + name_ = "MP2"; + + // S2 //if (comput_s2_ == "TRUE" && reference_ == "UNRESTRICTED") s2_response(); diff --git a/psi4/src/psi4/occ/occwave.cc b/psi4/src/psi4/occ/occwave.cc index cf71faed453..1cb88f4c33d 100644 --- a/psi4/src/psi4/occ/occwave.cc +++ b/psi4/src/psi4/occ/occwave.cc @@ -478,10 +478,6 @@ double OCCWave::compute_energy() else if (wfn_type_ == "OCEPA") return EcepaL; else if (wfn_type_ == "CEPA") return Ecepa; - /* updates the wavefunction for checkpointing */ - energy_ = Process::environment.globals["MP2 TOTAL ENERGY"]; - - return 0.0; } // end of compute_energy From e416afe31e897ed8085eb43dc8b108dd71106675 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Tue, 27 Jun 2017 15:42:15 -0400 Subject: [PATCH 05/11] modified names of orbital energies and coefficients in fchk undid my earlier changes in df-mp2 --- psi4/src/psi4/dfmp2/mp2.cc | 16 +++++++--------- psi4/src/psi4/libmints/writer.cc | 15 ++++++++++----- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/psi4/src/psi4/dfmp2/mp2.cc b/psi4/src/psi4/dfmp2/mp2.cc index 89ca0046607..c6a591296e2 100644 --- a/psi4/src/psi4/dfmp2/mp2.cc +++ b/psi4/src/psi4/dfmp2/mp2.cc @@ -2310,8 +2310,6 @@ void RDFMP2::form_Z() SharedMatrix AP(new Matrix("A_mn^ls P_ls^(2)", nso, nso)); double** APp = AP->pointer(); SharedMatrix Dtemp; - SharedMatrix Ca__; - SharedVector epsilon_a__; if(options_.get_bool("OPDM_RELAX")){ @@ -2406,8 +2404,8 @@ void RDFMP2::form_Z() // Add in the reference contribution for (int i = 0; i < nocc; ++i) Dtemp->add(i, i, 1.0); - Ca__ = SharedMatrix(new Matrix("DF-MP2 Natural Orbitals", nsopi_, nmopi_)); - epsilon_a__ = SharedVector(new Vector("DF-MP2 NO Occupations", nmopi_)); + Ca_ = SharedMatrix(new Matrix("DF-MP2 Natural Orbitals", nsopi_, nmopi_)); + epsilon_a_ = SharedVector(new Vector("DF-MP2 NO Occupations", nmopi_)); Da_ = SharedMatrix(new Matrix("DF-MP2 relaxed density", nsopi_, nsopi_)); }else{ @@ -2421,15 +2419,15 @@ void RDFMP2::form_Z() for (int i = 0; i < nocc; ++i) Dtemp->add(i, i, 1.0); - Ca__ = SharedMatrix(new Matrix("DF-MP2 (unrelaxed) Natural Orbitals", nsopi_, nmopi_)); - epsilon_a__ = SharedVector(new Vector("DF-MP2 (unrelaxed) NO Occupations", nmopi_)); + Ca_ = SharedMatrix(new Matrix("DF-MP2 (unrelaxed) Natural Orbitals", nsopi_, nmopi_)); + epsilon_a_ = SharedVector(new Vector("DF-MP2 (unrelaxed) NO Occupations", nmopi_)); Da_ = SharedMatrix(new Matrix("DF-MP2 unrelaxed density", nsopi_, nsopi_)); } - compute_opdm_and_nos(Dtemp, Da_, Ca__, epsilon_a__); - //Cb_ = Ca_; - //epsilon_b_ = epsilon_a_; + compute_opdm_and_nos(Dtemp, Da_, Ca_, epsilon_a_); + Cb_ = Ca_; + epsilon_b_ = epsilon_a_; Db_ = Da_; if(options_.get_bool("ONEPDM")){ diff --git a/psi4/src/psi4/libmints/writer.cc b/psi4/src/psi4/libmints/writer.cc index 4c1d209fafd..048174e5870 100644 --- a/psi4/src/psi4/libmints/writer.cc +++ b/psi4/src/psi4/libmints/writer.cc @@ -78,7 +78,6 @@ void GradientWriter::write(const std::string &filename) MoldenWriter::MoldenWriter(std::shared_ptr wavefunction) : wavefunction_(wavefunction) { - } void MoldenWriter::write(const std::string &filename, std::shared_ptr Ca, std::shared_ptr Cb, std::shared_ptr Ea, std::shared_ptr Eb, std::shared_ptr OccA, std::shared_ptr OccB, bool dovirtual) { @@ -274,6 +273,8 @@ void MoldenWriter::write(const std::string &filename, std::shared_ptr Ca FCHKWriter::FCHKWriter(std::shared_ptr wavefunction) : wavefunction_(wavefunction) { + SharedMatrix Ca = wavefunction_->Ca(); + Ca->print(); } @@ -634,10 +635,14 @@ void FCHKWriter::write(const std::string &filename) write_matrix("Contraction coefficients", coefficients); write_matrix("Coordinates of each shell", shell_coords); write_number("Total Energy", wavefunction_->reference_energy()); - write_matrix("Alpha Orbital Energies", wavefunction_->epsilon_a_subset("AO")); - write_matrix("Alpha MO coefficients", reorderedCa); - write_matrix("Beta Orbital Energies", wavefunction_->epsilon_b_subset("AO")); - write_matrix("Beta MO coefficients", reorderedCb); + //write_matrix("Alpha Orbital Energies", wavefunction_->epsilon_a_subset("AO")); + write_matrix(wavefunction_->epsilon_a()->name().c_str(), wavefunction_->epsilon_a_subset("AO")); + //write_matrix("Alpha MO coefficients", reorderedCa); + write_matrix(wavefunction_->Ca()->name().c_str(), reorderedCa); + //write_matrix("Beta Orbital Energies", wavefunction_->epsilon_b_subset("AO")); + write_matrix(wavefunction_->epsilon_b()->name().c_str(), wavefunction_->epsilon_b_subset("AO")); + //write_matrix("Beta MO coefficients", reorderedCb); + write_matrix(wavefunction_->Cb()->name().c_str(), reorderedCb); char* label = new char[256]; std::string type = name == "DFT" ? "SCF" : name; sprintf(label, "Total %s Density", type.c_str()); From b84fad432361bbe5af2076d23bbb78e20cd19bd3 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Tue, 27 Jun 2017 15:51:18 -0400 Subject: [PATCH 06/11] Ca_ is not reset now for future use --- psi4/src/psi4/occ/occwave.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/psi4/src/psi4/occ/occwave.cc b/psi4/src/psi4/occ/occwave.cc index 1cb88f4c33d..ca11d7298f4 100644 --- a/psi4/src/psi4/occ/occwave.cc +++ b/psi4/src/psi4/occ/occwave.cc @@ -593,7 +593,7 @@ void OCCWave::mem_release() delete oo_pairidxAA; delete vv_pairidxAA; - Ca_.reset(); + //Ca_.reset(); Ca_ref.reset(); Hso.reset(); Tso.reset(); From e3b66d63db09dd783d4107467aabc6bdcec8d671 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Tue, 27 Jun 2017 17:34:16 -0400 Subject: [PATCH 07/11] modified names of coefficients and orbital energies in hf, copying a matrix/vector copies the name as well now --- psi4/src/psi4/libmints/matrix.cc | 3 +++ psi4/src/psi4/libscf_solver/rhf.cc | 3 ++- psi4/src/psi4/libscf_solver/rohf.cc | 5 ++++- psi4/src/psi4/libscf_solver/uhf.cc | 6 ++++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/psi4/src/psi4/libmints/matrix.cc b/psi4/src/psi4/libmints/matrix.cc index 90c9e16cc8d..181c565f85d 100644 --- a/psi4/src/psi4/libmints/matrix.cc +++ b/psi4/src/psi4/libmints/matrix.cc @@ -91,6 +91,7 @@ Matrix::Matrix(const Matrix &c) matrix_ = NULL; nirrep_ = c.nirrep_; symmetry_ = c.symmetry_; + name_ = c.name(); alloc(); copy_from(c.matrix_); } @@ -101,6 +102,7 @@ Matrix::Matrix(const SharedMatrix &c) matrix_ = NULL; nirrep_ = c->nirrep_; symmetry_ = c->symmetry_; + name_ = c->name(); alloc(); copy_from(c->matrix_); } @@ -111,6 +113,7 @@ Matrix::Matrix(const Matrix *c) matrix_ = NULL; nirrep_ = c->nirrep_; symmetry_ = c->symmetry_; + name_ = c->name(); alloc(); copy_from(c->matrix_); } diff --git a/psi4/src/psi4/libscf_solver/rhf.cc b/psi4/src/psi4/libscf_solver/rhf.cc index 1f3ce2bf115..a1c3daaeb45 100644 --- a/psi4/src/psi4/libscf_solver/rhf.cc +++ b/psi4/src/psi4/libscf_solver/rhf.cc @@ -87,9 +87,10 @@ void RHF::common_init() // Allocate matrix memory Fa_ = SharedMatrix(factory_->create_matrix("F")); Fb_ = Fa_; - Ca_ = SharedMatrix(factory_->create_matrix("C")); + Ca_ = SharedMatrix(factory_->create_matrix("MO coefficients (C)")); Cb_ = Ca_; epsilon_a_ = SharedVector(factory_->create_vector()); + epsilon_a_->set_name("orbital energies"); epsilon_b_ = epsilon_a_; Da_ = SharedMatrix(factory_->create_matrix("SCF density")); Db_ = Da_; diff --git a/psi4/src/psi4/libscf_solver/rohf.cc b/psi4/src/psi4/libscf_solver/rohf.cc index ad2f13fd087..a362e856762 100644 --- a/psi4/src/psi4/libscf_solver/rohf.cc +++ b/psi4/src/psi4/libscf_solver/rohf.cc @@ -83,8 +83,9 @@ void ROHF::common_init() moFeff_ = SharedMatrix(factory_->create_matrix("F effective (MO basis)")); soFeff_ = SharedMatrix(factory_->create_matrix("F effective (orthogonalized SO basis)")); Ct_ = SharedMatrix(factory_->create_matrix("Orthogonalized Molecular orbitals")); - Ca_ = SharedMatrix(factory_->create_matrix("C")); + Ca_ = SharedMatrix(factory_->create_matrix("alpha MO coefficients (C)")); Cb_ = Ca_; + Cb_->set_name("beta MO coefficients (C)"); Da_ = SharedMatrix(factory_->create_matrix("SCF alpha density")); Db_ = SharedMatrix(factory_->create_matrix("SCF beta density")); Lagrangian_ = SharedMatrix(factory_->create_matrix("Lagrangian matrix")); @@ -100,7 +101,9 @@ void ROHF::common_init() moFb_ = SharedMatrix(factory_->create_matrix("MO beta Fock Matrix (MO basis)")); epsilon_a_ = SharedVector(factory_->create_vector()); + epsilon_a_->set_name("alpha orbital energies"); epsilon_b_ = epsilon_a_; + epsilon_b_->set_name("beta orbital energies"); same_a_b_dens_ = false; same_a_b_orbs_ = true; diff --git a/psi4/src/psi4/libscf_solver/uhf.cc b/psi4/src/psi4/libscf_solver/uhf.cc index cf20bd4218f..53ba817d9dc 100644 --- a/psi4/src/psi4/libscf_solver/uhf.cc +++ b/psi4/src/psi4/libscf_solver/uhf.cc @@ -95,8 +95,8 @@ void UHF::common_init() Db_old_ = SharedMatrix(factory_->create_matrix("Old beta SCF density")); Dt_old_ = SharedMatrix(factory_->create_matrix("D total old")); Lagrangian_ = SharedMatrix(factory_->create_matrix("Lagrangian")); - Ca_ = SharedMatrix(factory_->create_matrix("C alpha")); - Cb_ = SharedMatrix(factory_->create_matrix("C beta")); + Ca_ = SharedMatrix(factory_->create_matrix("alpha MO coefficients (C)")); + Cb_ = SharedMatrix(factory_->create_matrix("beta MO coefficients (C)")); Ga_ = SharedMatrix(factory_->create_matrix("G alpha")); Gb_ = SharedMatrix(factory_->create_matrix("G beta")); Va_ = SharedMatrix(factory_->create_matrix("V alpha")); @@ -108,7 +108,9 @@ void UHF::common_init() wKb_ = SharedMatrix(factory_->create_matrix("wK beta")); epsilon_a_ = SharedVector(factory_->create_vector()); + epsilon_a_->set_name("alpha orbital energies"); epsilon_b_ = SharedVector(factory_->create_vector()); + epsilon_b_->set_name("beta orbital energies"); same_a_b_dens_ = false; same_a_b_orbs_ = false; From a0f1ce97dbf20eb54a4dbee8f010ea1782916722 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Tue, 27 Jun 2017 23:42:44 -0400 Subject: [PATCH 08/11] updated energies and names for ccsd wfns now returns ccsd and cepa wfns in fnocc --- psi4/src/psi4/ccenergy/ccenergy.cc | 1 + psi4/src/psi4/dfocc/manager.cc | 4 ++++ psi4/src/psi4/fnocc/ccsd.cc | 3 +++ psi4/src/psi4/fnocc/df_ccsd.cc | 3 +++ psi4/src/psi4/fnocc/fnocc.cc | 5 ++++- 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/psi4/src/psi4/ccenergy/ccenergy.cc b/psi4/src/psi4/ccenergy/ccenergy.cc index cb356b69ba1..3f2edbb0e77 100644 --- a/psi4/src/psi4/ccenergy/ccenergy.cc +++ b/psi4/src/psi4/ccenergy/ccenergy.cc @@ -514,6 +514,7 @@ double CCEnergyWavefunction::compute_energy() #endif energy_ = moinfo_.ecc + moinfo_.eref; + name_ = "CCSD"; Process::environment.globals["CURRENT ENERGY"] = moinfo_.ecc+moinfo_.eref; Process::environment.globals["CURRENT CORRELATION ENERGY"] = moinfo_.ecc; //Process::environment.globals["CC TOTAL ENERGY"] = moinfo.ecc+moinfo.eref; diff --git a/psi4/src/psi4/dfocc/manager.cc b/psi4/src/psi4/dfocc/manager.cc index ad74f052e09..3beea8c075d 100644 --- a/psi4/src/psi4/dfocc/manager.cc +++ b/psi4/src/psi4/dfocc/manager.cc @@ -809,6 +809,10 @@ void DFOCC::ccsd_manager() Process::environment.globals["CCSD TOTAL ENERGY"] = Eccsd; Process::environment.globals["CCSD CORRELATION ENERGY"] = Eccsd - Escf; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["CCSD TOTAL ENERGY"]; + name_ = "DF-CCSD"; + // CCSDL if (dertype == "FIRST" || cc_lambda_ == "TRUE") { // memalloc diff --git a/psi4/src/psi4/fnocc/ccsd.cc b/psi4/src/psi4/fnocc/ccsd.cc index e56428bcbc9..5c02319a34a 100644 --- a/psi4/src/psi4/fnocc/ccsd.cc +++ b/psi4/src/psi4/fnocc/ccsd.cc @@ -201,6 +201,9 @@ double CoupledCluster::compute_energy() { Process::environment.globals["CCSD OPPOSITE-SPIN CORRELATION ENERGY"] = eccsd_os; Process::environment.globals["CCSD SAME-SPIN CORRELATION ENERGY"] = eccsd_ss; Process::environment.globals["CCSD TOTAL ENERGY"] = eccsd + escf; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["CCSD TOTAL ENERGY"]; + name_ = "CCSD"; }else{ Process::environment.globals["QCISD CORRELATION ENERGY"] = eccsd; Process::environment.globals["QCISD OPPOSITE-SPIN CORRELATION ENERGY"] = eccsd_os; diff --git a/psi4/src/psi4/fnocc/df_ccsd.cc b/psi4/src/psi4/fnocc/df_ccsd.cc index 2431450d0a8..68cc583866e 100644 --- a/psi4/src/psi4/fnocc/df_ccsd.cc +++ b/psi4/src/psi4/fnocc/df_ccsd.cc @@ -102,6 +102,9 @@ double DFCoupledCluster::compute_energy() { Process::environment.globals["CCSD SAME-SPIN CORRELATION ENERGY"] = eccsd_ss; Process::environment.globals["CCSD TOTAL ENERGY"] = eccsd + escf; Process::environment.globals["CURRENT ENERGY"] = eccsd + escf; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["CCSD TOTAL ENERGY"]; + name_ = "DF-CCSD"; if (options_.get_bool("COMPUTE_TRIPLES")){ long int o = ndoccact; diff --git a/psi4/src/psi4/fnocc/fnocc.cc b/psi4/src/psi4/fnocc/fnocc.cc index 9059499a106..1313543368e 100644 --- a/psi4/src/psi4/fnocc/fnocc.cc +++ b/psi4/src/psi4/fnocc/fnocc.cc @@ -72,9 +72,11 @@ SharedWavefunction fnocc(SharedWavefunction ref_wfn, Options &options) { if ( !options.get_bool("RUN_CEPA") ) { std::shared_ptr ccsd(new CoupledCluster(wfn,options)); ccsd->compute_energy(); + return ccsd; } else { std::shared_ptr cepa (new CoupledPair(wfn,options)); cepa->compute_energy(); + return cepa; } }else { @@ -114,10 +116,11 @@ SharedWavefunction fnocc(SharedWavefunction ref_wfn, Options &options) { tstop(); + return ccsd; } - return wfn; + //return wfn; } // end fnocc }} // end namespaces From f513e93677a282da789f02a7aba50b06731d40ce Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Thu, 29 Jun 2017 22:10:23 -0400 Subject: [PATCH 09/11] removed unnecessary header --- psi4/src/psi4/dfocc/dfocc.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/psi4/src/psi4/dfocc/dfocc.cc b/psi4/src/psi4/dfocc/dfocc.cc index 08ad981a72a..1364697fd30 100644 --- a/psi4/src/psi4/dfocc/dfocc.cc +++ b/psi4/src/psi4/dfocc/dfocc.cc @@ -33,7 +33,6 @@ #include "defines.h" #include "psi4/libpsi4util/PsiOutStream.h" #include "psi4/liboptions/liboptions.h" -#include "psi4/libpsi4util/process.h" From 1beda8e191ae43591d8aa6ea3d2453198f0e0f06 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Mon, 3 Jul 2017 12:50:04 -0400 Subject: [PATCH 10/11] updated name and energy ccsd(t) wfn --- psi4/src/psi4/dfocc/manager.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/psi4/src/psi4/dfocc/manager.cc b/psi4/src/psi4/dfocc/manager.cc index 3beea8c075d..cfff38e62d9 100644 --- a/psi4/src/psi4/dfocc/manager.cc +++ b/psi4/src/psi4/dfocc/manager.cc @@ -1180,6 +1180,9 @@ void DFOCC::ccsd_t_manager() Process::environment.globals["CURRENT CORRELATION ENERGY"] = Eccsd_t - Escf; Process::environment.globals["CCSD(T) TOTAL ENERGY"] = Eccsd_t; Process::environment.globals["(T) CORRECTION ENERGY"] = E_t; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["CCSD(T) TOTAL ENERGY"]; + name_ = "DF-CCSD(T)"; /* // CCSDL From 3dc70e92218a780784056902ae6a67e7bcfb6279 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Date: Mon, 3 Jul 2017 13:09:32 -0400 Subject: [PATCH 11/11] updated names and energies of all wfns in dfocc/manager.cc --- psi4/src/psi4/dfocc/manager.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/psi4/src/psi4/dfocc/manager.cc b/psi4/src/psi4/dfocc/manager.cc index cfff38e62d9..62b681173f9 100644 --- a/psi4/src/psi4/dfocc/manager.cc +++ b/psi4/src/psi4/dfocc/manager.cc @@ -1563,6 +1563,9 @@ void DFOCC::ccsdl_t_manager() Process::environment.globals["CURRENT CORRELATION ENERGY"] = Eccsd_at - Escf; Process::environment.globals["CCSD(AT) TOTAL ENERGY"] = Eccsd_at; Process::environment.globals["(AT) CORRECTION ENERGY"] = E_at; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["CCSD(AT) TOTAL ENERGY"]; + name_ = "DF-CCSD(AT)"; /* // Compute Analytic Gradients @@ -1828,6 +1831,9 @@ void DFOCC::ccd_manager() Process::environment.globals["CURRENT CORRELATION ENERGY"] = Eccd - Escf; Process::environment.globals["CCD TOTAL ENERGY"] = Eccd; Process::environment.globals["CCD CORRELATION ENERGY"] = Eccd - Escf; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["CCD TOTAL ENERGY"]; + name_ = "DF-CCD"; // CCDL if (dertype == "FIRST" || cc_lambda_ == "TRUE") { @@ -2153,6 +2159,9 @@ void DFOCC::omp3_manager() Process::environment.globals["CURRENT CORRELATION ENERGY"] = Emp3L - Escf; Process::environment.globals["OMP3 TOTAL ENERGY"] = Emp3L; Process::environment.globals["OMP3 CORRELATION ENERGY"] = Emp3L - Escf; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["OMP3 TOTAL ENERGY"]; + name_ = "DF-OMP3"; // OEPROP if (oeprop_ == "TRUE") oeprop(); @@ -2368,6 +2377,9 @@ void DFOCC::mp3_manager() Process::environment.globals["MP3 TOTAL ENERGY"] = Emp3; Process::environment.globals["MP3 CORRELATION ENERGY"] = Emp3 - Escf; Emp3L=Emp3; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["MP3 TOTAL ENERGY"]; + name_ = "DF-MP3"; // Compute Analytic Gradients if (dertype == "FIRST" || ekt_ip_ == "TRUE") { @@ -2677,6 +2689,9 @@ void DFOCC::omp2_5_manager() Process::environment.globals["CURRENT CORRELATION ENERGY"] = Emp3L - Escf; Process::environment.globals["OMP2.5 TOTAL ENERGY"] = Emp3L; Process::environment.globals["OMP2.5 CORRELATION ENERGY"] = Emp3L - Escf; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["OMP2.5 TOTAL ENERGY"]; + name_ = "DF-OMP2.5"; // OEPROP if (oeprop_ == "TRUE") oeprop(); @@ -2873,6 +2888,9 @@ void DFOCC::mp2_5_manager() Process::environment.globals["MP2.5 TOTAL ENERGY"] = Emp3; Process::environment.globals["MP2.5 CORRELATION ENERGY"] = Emp3 - Escf; Emp3L=Emp3; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["MP2.5 TOTAL ENERGY"]; + name_ = "DF-MP2.5"; // Compute Analytic Gradients if (dertype == "FIRST" || ekt_ip_ == "TRUE") { @@ -3155,6 +3173,9 @@ void DFOCC::olccd_manager() Process::environment.globals["CURRENT CORRELATION ENERGY"] = ElccdL - Escf; Process::environment.globals["OLCCD TOTAL ENERGY"] = ElccdL; Process::environment.globals["OLCCD CORRELATION ENERGY"] = ElccdL - Escf; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["OLCCD TOTAL ENERGY"]; + name_ = "DF-OLCCD"; // OEPROP if (oeprop_ == "TRUE") oeprop(); @@ -3348,6 +3369,9 @@ void DFOCC::lccd_manager() Process::environment.globals["LCCD TOTAL ENERGY"] = Elccd; Process::environment.globals["LCCD CORRELATION ENERGY"] = Elccd - Escf; ElccdL = Elccd; + /* updates the wavefunction for checkpointing */ + energy_ = Process::environment.globals["LCCD TOTAL ENERGY"]; + name_ = "DF-LCCD"; // Compute Analytic Gradients if (dertype == "FIRST" || ekt_ip_ == "TRUE") {