Commit 1b4e97b3 authored by Andrew Wildman's avatar Andrew Wildman
Browse files

Merge branch 'postSCF' into 'minor_rc'

post-SCF option for SCF.ALG

See merge request chronusq/chronusq_dev!74
parents d154bafd 2381377b
......@@ -62,7 +62,8 @@ namespace ChronusQ {
*/
enum SCF_ALG {
_CONVENTIONAL_SCF,
_NEWTON_RAPHSON_SCF
_NEWTON_RAPHSON_SCF,
_SKIP_SCF
};
/**
......@@ -111,7 +112,6 @@ namespace ChronusQ {
// Printing
bool printMOCoeffs = false;
bool resetMOCoeffs = false;
}; // SCFControls struct
......
......@@ -50,6 +50,9 @@ namespace ChronusQ {
if( scfControls.scfAlg == _NEWTON_RAPHSON_SCF )
scfControls.doExtrap = false;
if( scfControls.scfAlg == _SKIP_SCF )
isConverged = true;
// Compute initial properties
this->computeProperties(pert);
......
......@@ -806,14 +806,6 @@ namespace ChronusQ {
}
// Save MO coefficents if doing a "reset" after the SCF
if ( scfControls.resetMOCoeffs ) {
savFile.safeWriteData("SCF/OLD_MO1", this->mo[0].pointer(), {NB, NB});
if ( this->nC == 1 and not this->iCS )
savFile.safeWriteData("SCF/OLD_MO2", this->mo[1].pointer(), {NB, NB});
}
// Form density from MOs
formDensity();
......
......@@ -211,12 +211,6 @@ namespace ChronusQ {
else
NewtonRaphsonSCF();
if ( scfControls.resetMOCoeffs ) {
savFile.readData("SCF/OLD_MO1", this->mo[0].pointer());
if ( this->nC == 1 and not this->iCS )
savFile.readData("SCF/OLD_MO2", this->mo[1].pointer());
}
#ifdef CQ_ENABLE_MPI
// Broadcast the AO 1PDM to all MPI processes
if( MPISize(comm) > 1 ) {
......
......@@ -76,10 +76,10 @@ namespace ChronusQ {
// OPTOPT( restart |= input.getData<bool>("RESP.RESTART"); )
if ( restart ) {
out << " *** RESTART requested -- SCF.GUESS set to READMO ***";
out << " *** RESTART requested -- SCF.GUESS set to READMO and SCF.ALG set to SKIP ***";
out << std::endl;
ss.scfControls.guess = READMO;
ss.scfControls.resetMOCoeffs = true;
ss.scfControls.scfAlg = _SKIP_SCF;
}
}
......@@ -147,6 +147,9 @@ namespace ChronusQ {
ss.scfControls.scfAlg = _CONVENTIONAL_SCF;
else if( not algString.compare("NR") )
ss.scfControls.scfAlg = _NEWTON_RAPHSON_SCF;
else if( not algString.compare("SKIP") )
ss.scfControls.scfAlg = _SKIP_SCF;
else CErr("Unrecognized entry for SCF.ALG!");
)
......
[MOLECULE]
charge = 0
mult = 2
# H
geom:
H 0.000000 0.000000 0.000000
[QM]
reference = UHF
job = SCF
[BASIS]
basis = 3-21g
[SCF]
guess=core
alg=skip
......@@ -54,6 +54,13 @@ TEST( UHF, RbHe_sto3G ) {
};
// H atom 3-21g post-scf test
TEST( UHF, H_321G ) {
CQSCFTEST( "scf/serial/uhf/H_3-21G", "H_3-21G.bin.ref" );
};
#ifdef _CQ_DO_PARTESTS
// SMP Li 6-31G(d) test
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment