Skip to content

Commit 15fd8bf

Browse files
committed
Add option of restart_nevpt2_npdm
1 parent db04b66 commit 15fd8bf

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

dmrg.C

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,9 @@ int calldmrg(char* input, char* output)
324324
case (RESTART_FOURPDM):
325325
Npdm::npdm(NPDM_FOURPDM,true);
326326
break;
327+
case (RESTART_NEVPT2PDM):
328+
Npdm::npdm(NPDM_NEVPT2,true);
329+
break;
327330
case (TRANSITION_ONEPDM):
328331
Npdm::npdm(NPDM_ONEPDM,false,true);
329332
if (dmrginp.hamiltonian() == BCS) {

input.C

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -613,6 +613,8 @@ SpinAdapted::Input::Input(const string& config_name) {
613613
m_calc_type = RESTART_THREEPDM;
614614
else if (boost::iequals(keyword, "restart_fourpdm") || boost::iequals(keyword, "restart_fourrdm") )
615615
m_calc_type = RESTART_FOURPDM;
616+
else if (boost::iequals(keyword, "restart_nevpt2_npdm") )
617+
m_calc_type = RESTART_NEVPT2PDM;
616618
else if (boost::iequals(keyword, "transition_onepdm") || boost::iequals(keyword, "transition_onerdm") || boost::iequals(keyword, "tran_onepdm"))
617619
m_calc_type = TRANSITION_ONEPDM;
618620
else if (boost::iequals(keyword, "transition_twopdm") || boost::iequals(keyword, "transition_twordm") || boost::iequals(keyword, "tran_twopdm"))

input.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ enum solveTypes {LANCZOS, DAVIDSON, CONJUGATE_GRADIENT};
3535
enum algorithmTypes {ONEDOT, TWODOT, TWODOT_TO_ONEDOT};
3636
enum noiseTypes {RANDOM, EXCITEDSTATE};
3737
enum calcType {DMRG, ONEPDM, TWOPDM, THREEPDM, FOURPDM, NEVPT2PDM, RESTART_TWOPDM,
38-
RESTART_ONEPDM, RESTART_THREEPDM, RESTART_FOURPDM, TINYCALC, FCI,
38+
RESTART_ONEPDM, RESTART_THREEPDM, RESTART_FOURPDM, RESTART_NEVPT2PDM, TINYCALC, FCI,
3939
EXCITEDDMRG, CALCOVERLAP, CALCHAMILTONIAN, COMPRESS, RESPONSE,
4040
TRANSITION_ONEPDM, TRANSITION_TWOPDM, RESTART_T_ONEPDM, RESTART_T_TWOPDM,
4141
NEVPT2,RESTART_NEVPT2};

set_spinblock_components.C

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,15 +331,17 @@ void SpinBlock::default_op_components(bool complementary_, bool implicitTranspos
331331
(dmrginp.calc_type() == FOURPDM) ||
332332
(dmrginp.calc_type() == RESTART_THREEPDM) ||
333333
(dmrginp.calc_type() == RESTART_FOURPDM) ||
334-
(dmrginp.calc_type() == NEVPT2PDM) ) {
334+
(dmrginp.calc_type() == NEVPT2PDM) ||
335+
(dmrginp.calc_type() == RESTART_NEVPT2PDM) ) {
335336
ops[DES_CRE] = make_new_op(DES_CRE, true);
336337
ops[CRE_CRE_CRE] = make_new_op(CRE_CRE_CRE, true);
337338
ops[CRE_DES_DES] = make_new_op(CRE_DES_DES, true);
338339
ops[CRE_CRE_DES] = make_new_op(CRE_CRE_DES, true);
339340
ops[CRE_DES_CRE] = make_new_op(CRE_DES_CRE, true);
340341
if ( (dmrginp.calc_type() == FOURPDM) ||
341342
(dmrginp.calc_type() == RESTART_FOURPDM) ||
342-
(dmrginp.calc_type() == NEVPT2PDM) ) {
343+
(dmrginp.calc_type() == NEVPT2PDM) ||
344+
(dmrginp.calc_type() == RESTART_NEVPT2PDM) ) {
343345
ops[DES_CRE_DES] = make_new_op(DES_CRE_DES, true);
344346
ops[DES_DES_CRE] = make_new_op(DES_DES_CRE, true);
345347
ops[DES_CRE_CRE] = make_new_op(DES_CRE_CRE, true);
@@ -429,15 +431,17 @@ void SpinBlock::default_op_components(bool direct, SpinBlock& lBlock, SpinBlock&
429431
(dmrginp.calc_type() == FOURPDM) ||
430432
(dmrginp.calc_type() == RESTART_THREEPDM) ||
431433
(dmrginp.calc_type() == RESTART_FOURPDM) ||
432-
(dmrginp.calc_type() == NEVPT2PDM) ) {
434+
(dmrginp.calc_type() == NEVPT2PDM) ||
435+
(dmrginp.calc_type() == RESTART_NEVPT2PDM) ) {
433436
ops[DES_CRE] = make_new_op(DES_CRE, true);
434437
ops[CRE_CRE_CRE] = make_new_op(CRE_CRE_CRE, true);
435438
ops[CRE_DES_DES] = make_new_op(CRE_DES_DES, true);
436439
ops[CRE_CRE_DES] = make_new_op(CRE_CRE_DES, true);
437440
ops[CRE_DES_CRE] = make_new_op(CRE_DES_CRE, true);
438441
if ( (dmrginp.calc_type() == FOURPDM) ||
439442
(dmrginp.calc_type() == RESTART_FOURPDM) ||
440-
(dmrginp.calc_type() == NEVPT2PDM) ) {
443+
(dmrginp.calc_type() == NEVPT2PDM) ||
444+
(dmrginp.calc_type() == RESTART_NEVPT2PDM) ) {
441445
ops[DES_CRE_DES] = make_new_op(DES_CRE_DES, true);
442446
ops[DES_DES_CRE] = make_new_op(DES_DES_CRE, true);
443447
ops[DES_CRE_CRE] = make_new_op(DES_CRE_CRE, true);
@@ -503,15 +507,17 @@ void SpinBlock::default_op_components(bool direct, SpinBlock& lBlock, SpinBlock&
503507
(dmrginp.calc_type() == FOURPDM) ||
504508
(dmrginp.calc_type() == RESTART_THREEPDM) ||
505509
(dmrginp.calc_type() == RESTART_FOURPDM) ||
506-
(dmrginp.calc_type() == NEVPT2PDM) ) {
510+
(dmrginp.calc_type() == NEVPT2PDM) ||
511+
(dmrginp.calc_type() == RESTART_NEVPT2PDM) ) {
507512
ops[DES_CRE] = make_new_op(DES_CRE, false);
508513
ops[CRE_CRE_CRE] = make_new_op(CRE_CRE_CRE, false);
509514
ops[CRE_DES_DES] = make_new_op(CRE_DES_DES, false);
510515
ops[CRE_CRE_DES] = make_new_op(CRE_CRE_DES, false);
511516
ops[CRE_DES_CRE] = make_new_op(CRE_DES_CRE, false);
512517
if ( (dmrginp.calc_type() == FOURPDM) ||
513518
(dmrginp.calc_type() == RESTART_FOURPDM) ||
514-
(dmrginp.calc_type() == NEVPT2PDM) ) {
519+
(dmrginp.calc_type() == NEVPT2PDM) ||
520+
(dmrginp.calc_type() == RESTART_NEVPT2PDM) ) {
515521
ops[DES_CRE_DES] = make_new_op(DES_CRE_DES, false);
516522
ops[DES_DES_CRE] = make_new_op(DES_DES_CRE, false);
517523
ops[DES_CRE_CRE] = make_new_op(DES_CRE_CRE, false);

0 commit comments

Comments
 (0)