From b6bbeb3f3b076fed4a264eac563dcb09d68f6fd0 Mon Sep 17 00:00:00 2001 From: Pierre-Francois Loos Date: Tue, 9 Jun 2020 21:24:37 +0200 Subject: [PATCH] fix bug in BSE triplet --- examples/basis.CN3.aug-cc-pvtz | 240 ++++++++++++++++++++++++ examples/basis.acrolein.aug-cc-pvdz | 192 +++++++++++++++++++ examples/basis.butadiene.aug-cc-pvdz | 218 +++++++++++++++++++++ examples/basis.diacetylene.aug-cc-pvdz | 166 ++++++++++++++++ examples/basis.glyoxal.aug-cc-pvdz | 166 ++++++++++++++++ examples/molecule.H2 | 2 +- examples/molecule.HeH+ | 4 +- examples/molecule.acrolein | 11 ++ examples/molecule.diacetylene | 9 + examples/molecule.glyoxal | 9 + input/basis | 127 +++++++------ input/options | 4 +- src/QuAcK/ACFDT.f90 | 7 +- src/QuAcK/AOtoMO_integral_transform.f90 | 1 + src/QuAcK/Bethe_Salpeter.f90 | 11 +- src/QuAcK/G0T0.f90 | 7 +- src/QuAcK/G0W0.f90 | 28 ++- src/QuAcK/QuAcK.f90 | 28 +-- src/QuAcK/RPA.f90 | 2 +- src/QuAcK/RPAx.f90 | 2 +- src/QuAcK/evGT.f90 | 8 +- src/QuAcK/evGW.f90 | 22 ++- src/QuAcK/excitation_density.f90 | 1 - src/QuAcK/qsGW.f90 | 21 ++- src/QuAcK/read_options.f90 | 15 +- 25 files changed, 1180 insertions(+), 121 deletions(-) create mode 100644 examples/basis.CN3.aug-cc-pvtz create mode 100644 examples/basis.acrolein.aug-cc-pvdz create mode 100644 examples/basis.butadiene.aug-cc-pvdz create mode 100644 examples/basis.diacetylene.aug-cc-pvdz create mode 100644 examples/basis.glyoxal.aug-cc-pvdz create mode 100644 examples/molecule.acrolein create mode 100644 examples/molecule.diacetylene create mode 100644 examples/molecule.glyoxal diff --git a/examples/basis.CN3.aug-cc-pvtz b/examples/basis.CN3.aug-cc-pvtz new file mode 100644 index 0000000..464f766 --- /dev/null +++ b/examples/basis.CN3.aug-cc-pvtz @@ -0,0 +1,240 @@ +1 14 +S 8 + 1 8236.0000000 0.0005310 + 2 1235.0000000 0.0041080 + 3 280.8000000 0.0210870 + 4 79.2700000 0.0818530 + 5 25.5900000 0.2348170 + 6 8.9970000 0.4344010 + 7 3.3190000 0.3461290 + 8 0.3643000 -0.0089830 +S 8 + 1 8236.0000000 -0.0001130 + 2 1235.0000000 -0.0008780 + 3 280.8000000 -0.0045400 + 4 79.2700000 -0.0181330 + 5 25.5900000 -0.0557600 + 6 8.9970000 -0.1268950 + 7 3.3190000 -0.1703520 + 8 0.3643000 0.5986840 +S 1 + 1 0.9059000 1.0000000 +S 1 + 1 0.1285000 1.0000000 +S 1 + 1 0.0440200 1.0000000 +P 3 + 1 18.7100000 0.0140310 + 2 4.1330000 0.0868660 + 3 1.2000000 0.2902160 +P 1 + 1 0.3827000 1.0000000 +P 1 + 1 0.1209000 1.0000000 +P 1 + 1 0.0356900 1.0000000 +D 1 + 1 1.0970000 1.0000000 +D 1 + 1 0.3180000 1.0000000 +D 1 + 1 0.1000000 1.0000000 +F 1 + 1 0.7610000 1.0000000 +F 1 + 1 0.2680000 1.0000000 +2 14 +S 8 + 1 11420.0000000 0.0005230 + 2 1712.0000000 0.0040450 + 3 389.3000000 0.0207750 + 4 110.0000000 0.0807270 + 5 35.5700000 0.2330740 + 6 12.5400000 0.4335010 + 7 4.6440000 0.3474720 + 8 0.5118000 -0.0085080 +S 8 + 1 11420.0000000 -0.0001150 + 2 1712.0000000 -0.0008950 + 3 389.3000000 -0.0046240 + 4 110.0000000 -0.0185280 + 5 35.5700000 -0.0573390 + 6 12.5400000 -0.1320760 + 7 4.6440000 -0.1725100 + 8 0.5118000 0.5999440 +S 1 + 1 1.2930000 1.0000000 +S 1 + 1 0.1787000 1.0000000 +S 1 + 1 0.0576000 1.0000000 +P 3 + 1 26.6300000 0.0146700 + 2 5.9480000 0.0917640 + 3 1.7420000 0.2986830 +P 1 + 1 0.5550000 1.0000000 +P 1 + 1 0.1725000 1.0000000 +P 1 + 1 0.0491000 1.0000000 +D 1 + 1 1.6540000 1.0000000 +D 1 + 1 0.4690000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +F 1 + 1 1.0930000 1.0000000 +F 1 + 1 0.3640000 1.0000000 +3 14 +S 8 + 1 11420.0000000 0.0005230 + 2 1712.0000000 0.0040450 + 3 389.3000000 0.0207750 + 4 110.0000000 0.0807270 + 5 35.5700000 0.2330740 + 6 12.5400000 0.4335010 + 7 4.6440000 0.3474720 + 8 0.5118000 -0.0085080 +S 8 + 1 11420.0000000 -0.0001150 + 2 1712.0000000 -0.0008950 + 3 389.3000000 -0.0046240 + 4 110.0000000 -0.0185280 + 5 35.5700000 -0.0573390 + 6 12.5400000 -0.1320760 + 7 4.6440000 -0.1725100 + 8 0.5118000 0.5999440 +S 1 + 1 1.2930000 1.0000000 +S 1 + 1 0.1787000 1.0000000 +S 1 + 1 0.0576000 1.0000000 +P 3 + 1 26.6300000 0.0146700 + 2 5.9480000 0.0917640 + 3 1.7420000 0.2986830 +P 1 + 1 0.5550000 1.0000000 +P 1 + 1 0.1725000 1.0000000 +P 1 + 1 0.0491000 1.0000000 +D 1 + 1 1.6540000 1.0000000 +D 1 + 1 0.4690000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +F 1 + 1 1.0930000 1.0000000 +F 1 + 1 0.3640000 1.0000000 +4 9 +S 3 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 +S 1 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 +S 1 + 1 0.0252600 1.0000000 +P 1 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +P 1 + 1 0.1020000 1.0000000 +D 1 + 1 1.0570000 1.0000000 +D 1 + 1 0.2470000 1.0000000 +5 9 +S 3 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 +S 1 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 +S 1 + 1 0.0252600 1.0000000 +P 1 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +P 1 + 1 0.1020000 1.0000000 +D 1 + 1 1.0570000 1.0000000 +D 1 + 1 0.2470000 1.0000000 +6 9 +S 3 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 +S 1 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 +S 1 + 1 0.0252600 1.0000000 +P 1 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +P 1 + 1 0.1020000 1.0000000 +D 1 + 1 1.0570000 1.0000000 +D 1 + 1 0.2470000 1.0000000 +7 9 +S 3 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 +S 1 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 +S 1 + 1 0.0252600 1.0000000 +P 1 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +P 1 + 1 0.1020000 1.0000000 +D 1 + 1 1.0570000 1.0000000 +D 1 + 1 0.2470000 1.0000000 +8 9 +S 3 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 +S 1 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 +S 1 + 1 0.0252600 1.0000000 +P 1 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +P 1 + 1 0.1020000 1.0000000 +D 1 + 1 1.0570000 1.0000000 +D 1 + 1 0.2470000 1.0000000 diff --git a/examples/basis.acrolein.aug-cc-pvdz b/examples/basis.acrolein.aug-cc-pvdz new file mode 100644 index 0000000..c6d92db --- /dev/null +++ b/examples/basis.acrolein.aug-cc-pvdz @@ -0,0 +1,192 @@ +1 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +2 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +3 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +4 9 +S 8 + 1 11720.0000000 0.0007100 + 2 1759.0000000 0.0054700 + 3 400.8000000 0.0278370 + 4 113.7000000 0.1048000 + 5 37.0300000 0.2830620 + 6 13.2700000 0.4487190 + 7 5.0250000 0.2709520 + 8 1.0130000 0.0154580 +S 8 + 1 11720.0000000 -0.0001600 + 2 1759.0000000 -0.0012630 + 3 400.8000000 -0.0062670 + 4 113.7000000 -0.0257160 + 5 37.0300000 -0.0709240 + 6 13.2700000 -0.1654110 + 7 5.0250000 -0.1169550 + 8 1.0130000 0.5573680 +S 1 + 1 0.3023000 1.0000000 +S 1 + 1 0.0789600 1.0000000 +P 3 + 1 17.7000000 0.0430180 + 2 3.8540000 0.2289130 + 3 1.0460000 0.5087280 +P 1 + 1 0.2753000 1.0000000 +P 1 + 1 0.0685600 1.0000000 +D 1 + 1 1.1850000 1.0000000 +D 1 + 1 0.3320000 1.0000000 +5 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +6 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +7 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +8 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 diff --git a/examples/basis.butadiene.aug-cc-pvdz b/examples/basis.butadiene.aug-cc-pvdz new file mode 100644 index 0000000..c16f8e1 --- /dev/null +++ b/examples/basis.butadiene.aug-cc-pvdz @@ -0,0 +1,218 @@ +1 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +2 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +3 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +4 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +5 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +6 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +7 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +8 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +9 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +10 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 diff --git a/examples/basis.diacetylene.aug-cc-pvdz b/examples/basis.diacetylene.aug-cc-pvdz new file mode 100644 index 0000000..2e25706 --- /dev/null +++ b/examples/basis.diacetylene.aug-cc-pvdz @@ -0,0 +1,166 @@ +1 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +2 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +3 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +4 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +5 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +6 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 diff --git a/examples/basis.glyoxal.aug-cc-pvdz b/examples/basis.glyoxal.aug-cc-pvdz new file mode 100644 index 0000000..9c305d3 --- /dev/null +++ b/examples/basis.glyoxal.aug-cc-pvdz @@ -0,0 +1,166 @@ +1 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +2 9 +S 8 + 1 6665.0000000 0.0006920 + 2 1000.0000000 0.0053290 + 3 228.0000000 0.0270770 + 4 64.7100000 0.1017180 + 5 21.0600000 0.2747400 + 6 7.4950000 0.4485640 + 7 2.7970000 0.2850740 + 8 0.5215000 0.0152040 +S 8 + 1 6665.0000000 -0.0001460 + 2 1000.0000000 -0.0011540 + 3 228.0000000 -0.0057250 + 4 64.7100000 -0.0233120 + 5 21.0600000 -0.0639550 + 6 7.4950000 -0.1499810 + 7 2.7970000 -0.1272620 + 8 0.5215000 0.5445290 +S 1 + 1 0.1596000 1.0000000 +S 1 + 1 0.0469000 1.0000000 +P 3 + 1 9.4390000 0.0381090 + 2 2.0020000 0.2094800 + 3 0.5456000 0.5085570 +P 1 + 1 0.1517000 1.0000000 +P 1 + 1 0.0404100 1.0000000 +D 1 + 1 0.5500000 1.0000000 +D 1 + 1 0.1510000 1.0000000 +3 9 +S 8 + 1 11720.0000000 0.0007100 + 2 1759.0000000 0.0054700 + 3 400.8000000 0.0278370 + 4 113.7000000 0.1048000 + 5 37.0300000 0.2830620 + 6 13.2700000 0.4487190 + 7 5.0250000 0.2709520 + 8 1.0130000 0.0154580 +S 8 + 1 11720.0000000 -0.0001600 + 2 1759.0000000 -0.0012630 + 3 400.8000000 -0.0062670 + 4 113.7000000 -0.0257160 + 5 37.0300000 -0.0709240 + 6 13.2700000 -0.1654110 + 7 5.0250000 -0.1169550 + 8 1.0130000 0.5573680 +S 1 + 1 0.3023000 1.0000000 +S 1 + 1 0.0789600 1.0000000 +P 3 + 1 17.7000000 0.0430180 + 2 3.8540000 0.2289130 + 3 1.0460000 0.5087280 +P 1 + 1 0.2753000 1.0000000 +P 1 + 1 0.0685600 1.0000000 +D 1 + 1 1.1850000 1.0000000 +D 1 + 1 0.3320000 1.0000000 +4 9 +S 8 + 1 11720.0000000 0.0007100 + 2 1759.0000000 0.0054700 + 3 400.8000000 0.0278370 + 4 113.7000000 0.1048000 + 5 37.0300000 0.2830620 + 6 13.2700000 0.4487190 + 7 5.0250000 0.2709520 + 8 1.0130000 0.0154580 +S 8 + 1 11720.0000000 -0.0001600 + 2 1759.0000000 -0.0012630 + 3 400.8000000 -0.0062670 + 4 113.7000000 -0.0257160 + 5 37.0300000 -0.0709240 + 6 13.2700000 -0.1654110 + 7 5.0250000 -0.1169550 + 8 1.0130000 0.5573680 +S 1 + 1 0.3023000 1.0000000 +S 1 + 1 0.0789600 1.0000000 +P 3 + 1 17.7000000 0.0430180 + 2 3.8540000 0.2289130 + 3 1.0460000 0.5087280 +P 1 + 1 0.2753000 1.0000000 +P 1 + 1 0.0685600 1.0000000 +D 1 + 1 1.1850000 1.0000000 +D 1 + 1 0.3320000 1.0000000 +5 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 +6 5 +S 3 + 1 13.0100000 0.0196850 + 2 1.9620000 0.1379770 + 3 0.4446000 0.4781480 +S 1 + 1 0.1220000 1.0000000 +S 1 + 1 0.0297400 1.0000000 +P 1 + 1 0.7270000 1.0000000 +P 1 + 1 0.1410000 1.0000000 diff --git a/examples/molecule.H2 b/examples/molecule.H2 index 02087a0..81c624a 100644 --- a/examples/molecule.H2 +++ b/examples/molecule.H2 @@ -2,4 +2,4 @@ 2 1 1 0 0 # Znuc x y z H 0. 0. 0. - H 0. 0. 10.1 + H 0. 0. 1.4 diff --git a/examples/molecule.HeH+ b/examples/molecule.HeH+ index fcae88e..7bf872f 100644 --- a/examples/molecule.HeH+ +++ b/examples/molecule.HeH+ @@ -1,5 +1,5 @@ # nAt nEla nElb nCore nRyd 2 1 1 0 0 # Znuc x y z - He 0. 0. -0.5 - H 0. 0. +0.5 + He 0. 0. 0.0 + H 0. 0. 1.4632 diff --git a/examples/molecule.acrolein b/examples/molecule.acrolein new file mode 100644 index 0000000..271be90 --- /dev/null +++ b/examples/molecule.acrolein @@ -0,0 +1,11 @@ +# nAt nEla nElb nCore nRyd + 8 15 15 0 0 +# Znuc x y z +C -1.11645072 -0.68348783 0.00000000 +C 1.20647847 0.83714564 0.00000000 +C 3.46831059 -0.28872636 0.00000000 +O -3.23666415 0.19187203 0.00000000 +H -0.80613858 -2.74747338 0.00000000 +H 0.98699813 2.86613511 0.00000000 +H 5.20930864 0.77443560 0.00000000 +H 3.60951559 -2.33000749 0.00000000 diff --git a/examples/molecule.diacetylene b/examples/molecule.diacetylene new file mode 100644 index 0000000..8360dbb --- /dev/null +++ b/examples/molecule.diacetylene @@ -0,0 +1,9 @@ +# nAt nEla nElb nCore nRyd + 6 13 13 0 0 +# Znuc x y z +C 0.00000000 0.00000000 1.29447700 +C 0.00000000 0.00000000 -1.29447700 +C 0.00000000 0.00000000 3.58448429 +C 0.00000000 0.00000000 -3.58448429 +H 0.00000000 0.00000000 5.58943003 +H 0.00000000 0.00000000 -5.58943003 diff --git a/examples/molecule.glyoxal b/examples/molecule.glyoxal new file mode 100644 index 0000000..9fe4619 --- /dev/null +++ b/examples/molecule.glyoxal @@ -0,0 +1,9 @@ +# nAt nEla nElb nCore nRyd + 6 15 15 0 0 +# Znuc x y z +C 1.21360282 0.75840215 0.00000000 +C -1.21360282 -0.75840215 0.00000000 +O 3.25581408 -0.26453186 0.00000000 +O -3.25581408 0.26453186 0.00000000 +H 0.96135276 2.81883243 0.00000000 +H -0.96135276 -2.81883243 0.00000000 diff --git a/input/basis b/input/basis index 80356bb..bbe0bfe 100644 --- a/input/basis +++ b/input/basis @@ -1,64 +1,71 @@ -1 6 -S 9 -1 9.046000E+03 7.000000E-04 -2 1.357000E+03 5.389000E-03 -3 3.093000E+02 2.740600E-02 -4 8.773000E+01 1.032070E-01 -5 2.856000E+01 2.787230E-01 -6 1.021000E+01 4.485400E-01 -7 3.838000E+00 2.782380E-01 -8 7.466000E-01 1.544000E-02 -9 2.248000E-01 -2.864000E-03 -S 9 -1 9.046000E+03 -1.530000E-04 -2 1.357000E+03 -1.208000E-03 -3 3.093000E+02 -5.992000E-03 -4 8.773000E+01 -2.454400E-02 -5 2.856000E+01 -6.745900E-02 -6 1.021000E+01 -1.580780E-01 -7 3.838000E+00 -1.218310E-01 -8 7.466000E-01 5.490030E-01 -9 2.248000E-01 5.788150E-01 +1 9 +S 8 + 1 9046.0000000 0.0007000 + 2 1357.0000000 0.0053890 + 3 309.3000000 0.0274060 + 4 87.7300000 0.1032070 + 5 28.5600000 0.2787230 + 6 10.2100000 0.4485400 + 7 3.8380000 0.2782380 + 8 0.7466000 0.0154400 +S 8 + 1 9046.0000000 -0.0001530 + 2 1357.0000000 -0.0012080 + 3 309.3000000 -0.0059920 + 4 87.7300000 -0.0245440 + 5 28.5600000 -0.0674590 + 6 10.2100000 -0.1580780 + 7 3.8380000 -0.1218310 + 8 0.7466000 0.5490030 S 1 -1 2.248000E-01 1.000000E+00 -P 4 -1 1.355000E+01 3.991900E-02 -2 2.917000E+00 2.171690E-01 -3 7.973000E-01 5.103190E-01 -4 2.185000E-01 4.622140E-01 -P 1 -1 2.185000E-01 1.000000E+00 -D 1 -1 8.170000E-01 1.0000000 -2 6 -S 9 -1 9.046000E+03 7.000000E-04 -2 1.357000E+03 5.389000E-03 -3 3.093000E+02 2.740600E-02 -4 8.773000E+01 1.032070E-01 -5 2.856000E+01 2.787230E-01 -6 1.021000E+01 4.485400E-01 -7 3.838000E+00 2.782380E-01 -8 7.466000E-01 1.544000E-02 -9 2.248000E-01 -2.864000E-03 -S 9 -1 9.046000E+03 -1.530000E-04 -2 1.357000E+03 -1.208000E-03 -3 3.093000E+02 -5.992000E-03 -4 8.773000E+01 -2.454400E-02 -5 2.856000E+01 -6.745900E-02 -6 1.021000E+01 -1.580780E-01 -7 3.838000E+00 -1.218310E-01 -8 7.466000E-01 5.490030E-01 -9 2.248000E-01 5.788150E-01 + 1 0.2248000 1.0000000 S 1 -1 2.248000E-01 1.000000E+00 -P 4 -1 1.355000E+01 3.991900E-02 -2 2.917000E+00 2.171690E-01 -3 7.973000E-01 5.103190E-01 -4 2.185000E-01 4.622140E-01 + 1 0.0612400 1.0000000 +P 3 + 1 13.5500000 0.0399190 + 2 2.9170000 0.2171690 + 3 0.7973000 0.5103190 P 1 -1 2.185000E-01 1.000000E+00 + 1 0.2185000 1.0000000 +P 1 + 1 0.0561100 1.0000000 D 1 -1 8.170000E-01 1.0000000 + 1 0.8170000 1.0000000 +D 1 + 1 0.2300000 1.0000000 +2 9 +S 8 + 1 9046.0000000 0.0007000 + 2 1357.0000000 0.0053890 + 3 309.3000000 0.0274060 + 4 87.7300000 0.1032070 + 5 28.5600000 0.2787230 + 6 10.2100000 0.4485400 + 7 3.8380000 0.2782380 + 8 0.7466000 0.0154400 +S 8 + 1 9046.0000000 -0.0001530 + 2 1357.0000000 -0.0012080 + 3 309.3000000 -0.0059920 + 4 87.7300000 -0.0245440 + 5 28.5600000 -0.0674590 + 6 10.2100000 -0.1580780 + 7 3.8380000 -0.1218310 + 8 0.7466000 0.5490030 +S 1 + 1 0.2248000 1.0000000 +S 1 + 1 0.0612400 1.0000000 +P 3 + 1 13.5500000 0.0399190 + 2 2.9170000 0.2171690 + 3 0.7973000 0.5103190 +P 1 + 1 0.2185000 1.0000000 +P 1 + 1 0.0561100 1.0000000 +D 1 + 1 0.8170000 1.0000000 +D 1 + 1 0.2300000 1.0000000 + diff --git a/input/options b/input/options index 1ed8348..dd6fae5 100644 --- a/input/options +++ b/input/options @@ -8,8 +8,8 @@ T T # GF: maxSCF thresh DIIS n_diis lin renorm BSE TDA eta 256 0.00001 T 5 T 3 T T 0.00367493 -# GW/GT: maxSCF thresh DIIS n_diis COHSEX SOSEX BSE TDA G0W GW0 lin eta - 256 0.00001 T 5 F F T F F F T 0.00367493 +# GW/GT: maxSCF thresh DIIS n_diis COHSEX SOSEX BSE TDA_W TDA G0W GW0 lin eta + 256 0.00001 T 5 F F T F F F F T 0.00367493 # ACFDT: AC Kx XBS F F T # MCMP2: nMC nEq nWalk dt nPrint iSeed doDrift diff --git a/src/QuAcK/ACFDT.f90 b/src/QuAcK/ACFDT.f90 index 0b02b94..89b77b2 100644 --- a/src/QuAcK/ACFDT.f90 +++ b/src/QuAcK/ACFDT.f90 @@ -1,4 +1,4 @@ -subroutine ACFDT(exchange_kernel,doXBS,dRPA,TDA,BSE,singlet_manifold,triplet_manifold,eta, & +subroutine ACFDT(exchange_kernel,doXBS,dRPA,TDA_W,TDA,BSE,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eW,e,Omega,XpY,XmY,rho,EcAC) ! Compute the correlation energy via the adiabatic connection fluctuation dissipation theorem @@ -12,6 +12,7 @@ subroutine ACFDT(exchange_kernel,doXBS,dRPA,TDA,BSE,singlet_manifold,triplet_man logical,intent(in) :: doXBS logical,intent(in) :: exchange_kernel logical,intent(in) :: dRPA + logical,intent(in) :: TDA_W logical,intent(in) :: TDA logical,intent(in) :: BSE logical,intent(in) :: singlet_manifold @@ -77,7 +78,7 @@ subroutine ACFDT(exchange_kernel,doXBS,dRPA,TDA,BSE,singlet_manifold,triplet_man if(doXBS) then - call linear_response(ispin,dRPA,.false.,.false.,eta,nBas,nC,nO,nV,nR,nS,lambda,eW,ERI, & + call linear_response(ispin,dRPA,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,lambda,eW,ERI, & rho(:,:,:,ispin),EcAC(ispin),Omega(:,ispin),XpY(:,:,ispin),XmY(:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,ERI,XpY(:,:,ispin),rho(:,:,:,ispin)) @@ -123,7 +124,7 @@ subroutine ACFDT(exchange_kernel,doXBS,dRPA,TDA,BSE,singlet_manifold,triplet_man if(doXBS) then - call linear_response(ispin,dRPA,.false.,.false.,eta,nBas,nC,nO,nV,nR,nS,lambda,eW,ERI, & + call linear_response(1,dRPA,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,lambda,eW,ERI, & rho(:,:,:,ispin),EcAC(ispin),Omega(:,ispin),XpY(:,:,ispin),XmY(:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,ERI,XpY(:,:,ispin),rho(:,:,:,ispin)) diff --git a/src/QuAcK/AOtoMO_integral_transform.f90 b/src/QuAcK/AOtoMO_integral_transform.f90 index 1320df9..6ab35bb 100644 --- a/src/QuAcK/AOtoMO_integral_transform.f90 +++ b/src/QuAcK/AOtoMO_integral_transform.f90 @@ -78,4 +78,5 @@ subroutine AOtoMO_integral_transform(nBas,c,ERI_AO_basis,ERI_MO_basis) enddo enddo + end subroutine AOtoMO_integral_transform diff --git a/src/QuAcK/Bethe_Salpeter.f90 b/src/QuAcK/Bethe_Salpeter.f90 index bce790d..52e28b4 100644 --- a/src/QuAcK/Bethe_Salpeter.f90 +++ b/src/QuAcK/Bethe_Salpeter.f90 @@ -1,4 +1,4 @@ -subroutine Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & +subroutine Bethe_Salpeter(TDA_W,TDA,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eW,eGW,OmRPA,XpY_RPA,XmY_RPA,rho_RPA,EcRPA,EcBSE) ! Compute the Bethe-Salpeter excitation energies @@ -8,6 +8,7 @@ subroutine Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & ! Input variables + logical,intent(in) :: TDA_W logical,intent(in) :: TDA logical,intent(in) :: singlet_manifold logical,intent(in) :: triplet_manifold @@ -52,9 +53,9 @@ subroutine Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & ispin = 1 EcBSE(ispin) = 0d0 - ! Compute RPA screening + ! Compute (singlet) RPA screening - call linear_response(ispin,.true.,.false.,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eW,ERI, & + call linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eW,ERI, & rho_RPA(:,:,:,ispin),EcRPA(ispin),OmRPA(:,ispin),XpY_RPA(:,:,ispin),XmY_RPA(:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,ERI,XpY_RPA(:,:,ispin),rho_RPA(:,:,:,ispin)) @@ -99,9 +100,9 @@ subroutine Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & ispin = 2 EcBSE(ispin) = 0d0 - ! Compute RPA screening + ! Compute (singlet) RPA screening - call linear_response(ispin,.true.,.false.,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eW,ERI, & + call linear_response(1,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eW,ERI, & rho_RPA(:,:,:,ispin),EcRPA(ispin),OmRPA(:,ispin),XpY_RPA(:,:,ispin),XmY_RPA(:,:,ispin)) call excitation_density(nBas,nC,nO,nR,nS,ERI,XpY_RPA(:,:,ispin),rho_RPA(:,:,:,ispin)) diff --git a/src/QuAcK/G0T0.f90 b/src/QuAcK/G0T0.f90 index 2e19b5c..48a2e98 100644 --- a/src/QuAcK/G0T0.f90 +++ b/src/QuAcK/G0T0.f90 @@ -1,4 +1,4 @@ -subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA,singlet_manifold,triplet_manifold, & +subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA_W,TDA,singlet_manifold,triplet_manifold, & linearize,eta,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF,eG0T0) ! Perform one-shot calculation with a T-matrix self-energy (G0T0) @@ -12,6 +12,7 @@ subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA,singlet_manifold,triplet_m logical,intent(in) :: exchange_kernel logical,intent(in) :: doXBS logical,intent(in) :: BSE + logical,intent(in) :: TDA_W logical,intent(in) :: TDA logical,intent(in) :: singlet_manifold logical,intent(in) :: triplet_manifold @@ -210,7 +211,7 @@ subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA,singlet_manifold,triplet_m allocate(Omega(nS,nspin),XpY(nS,nS,nspin),XmY(nS,nS,nspin),rho(nBas,nBas,nS,nspin)) - call Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & + call Bethe_Salpeter(TDA_W,TDA,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eHF,eG0T0,Omega,XpY,XmY,rho,EcRPA,EcBSE) if(exchange_kernel) then @@ -245,7 +246,7 @@ subroutine G0T0(doACFDT,exchange_kernel,doXBS,BSE,TDA,singlet_manifold,triplet_m end if - call ACFDT(exchange_kernel,doXBS,.true.,TDA,BSE,singlet_manifold,triplet_manifold,eta, & + call ACFDT(exchange_kernel,doXBS,.true.,TDA_W,TDA,BSE,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eHF,eG0T0,Omega,XpY,XmY,rho,EcAC) if(exchange_kernel) then diff --git a/src/QuAcK/G0W0.f90 b/src/QuAcK/G0W0.f90 index d4d468a..53f9105 100644 --- a/src/QuAcK/G0W0.f90 +++ b/src/QuAcK/G0W0.f90 @@ -1,5 +1,5 @@ -subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & - singlet_manifold,triplet_manifold,linearize,eta, & +subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA_W,TDA, & + singlet_manifold,triplet_manifold,linearize,eta, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,Hc,H,ERI,PHF,cHF,eHF,eGW) ! Perform G0W0 calculation @@ -16,6 +16,7 @@ subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & logical,intent(in) :: COHSEX logical,intent(in) :: SOSEX logical,intent(in) :: BSE + logical,intent(in) :: TDA_W logical,intent(in) :: TDA logical,intent(in) :: singlet_manifold logical,intent(in) :: triplet_manifold @@ -34,7 +35,7 @@ subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & ! Local variables - logical :: print_W = .false. + logical :: print_W = .true. integer :: ispin double precision :: EcRPA(nspin) double precision :: EcBSE(nspin) @@ -72,6 +73,16 @@ subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & if(COHSEX) write(*,*) 'COHSEX approximation activated!' write(*,*) +! TDA for W + + if(TDA_W) write(*,*) 'Tamm-Dancoff approximation for dynamic screening!' + write(*,*) + +! TDA + + if(TDA) write(*,*) 'Tamm-Dancoff approximation activated!' + write(*,*) + ! Spin manifold ispin = 1 @@ -83,7 +94,7 @@ subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & ! Compute linear response - call linear_response(ispin,.true.,.false.,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eHF,ERI, & + call linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eHF,ERI, & rho(:,:,:,ispin),EcRPA(ispin),Omega(:,ispin),XpY(:,:,ispin),XmY(:,:,ispin)) ! Compute correlation part of the self-energy @@ -125,15 +136,16 @@ subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & ! Dump results - if(print_W) call print_excitation('RPA ',ispin,nS,Omega(:,ispin)) + if(print_W) call print_excitation('RPA@G0W0 ',ispin,nS,Omega(:,ispin)) call print_G0W0(nBas,nO,eHF,ENuc,ERHF,SigC,Z,eGW,EcRPA(ispin),EcGM) ! Compute the RPA correlation energy - call linear_response(ispin,.true.,TDA,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI, & + call linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI, & rho(:,:,:,ispin),EcRPA(ispin),Omega(:,ispin),XpY(:,:,ispin),XmY(:,:,ispin)) + write(*,*) write(*,*)'-------------------------------------------------------------------------------' write(*,'(2X,A50,F20.10)') 'Tr@RPA@G0W0 correlation energy (singlet) =',EcRPA(1) @@ -151,7 +163,7 @@ subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & if(BSE) then - call Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & + call Bethe_Salpeter(TDA_W,TDA,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eHF,eGW,Omega,XpY,XmY,rho,EcRPA,EcBSE) if(exchange_kernel) then @@ -186,7 +198,7 @@ subroutine G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA, & end if - call ACFDT(exchange_kernel,doXBS,.true.,TDA,BSE,singlet_manifold,triplet_manifold,eta, & + call ACFDT(exchange_kernel,doXBS,.true.,TDA_W,TDA,BSE,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eHF,eGW,Omega,XpY,XmY,rho,EcAC) if(exchange_kernel) then diff --git a/src/QuAcK/QuAcK.f90 b/src/QuAcK/QuAcK.f90 index 023058a..bfc5be4 100644 --- a/src/QuAcK/QuAcK.f90 +++ b/src/QuAcK/QuAcK.f90 @@ -101,7 +101,7 @@ program QuAcK integer :: maxSCF_GW,n_diis_GW double precision :: thresh_GW - logical :: DIIS_GW,COHSEX,SOSEX,BSE_GW,TDA_GW,G0W,GW0,linGW + logical :: DIIS_GW,COHSEX,SOSEX,BSE_GW,TDA_W,TDA_GW,G0W,GW0,linGW double precision :: eta_GW integer :: nMC,nEq,nWalk,nPrint,iSeed @@ -147,7 +147,7 @@ program QuAcK maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,linGF,renormGF, & BSE_GF,TDA_GF,eta_GF, & maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW, & - COHSEX,SOSEX,BSE_GW,TDA_GW,G0W,GW0,linGW,eta_GW, & + COHSEX,SOSEX,BSE_GW,TDA_W,TDA_GW,G0W,GW0,linGW,eta_GW, & doACFDT,exchange_kernel,doXBS, & nMC,nEq,nWalk,dt,nPrint,iSeed,doDrift) @@ -671,8 +671,8 @@ program QuAcK if(doG0W0) then call cpu_time(start_G0W0) - call G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE_GW,TDA_GW, & - singlet_manifold,triplet_manifold,linGW,eta_GW, & + call G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE_GW,TDA_W,TDA_GW, & + singlet_manifold,triplet_manifold,linGW,eta_GW, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,Hc,H,ERI_MO,PHF,cHF,eHF,eG0W0) call cpu_time(end_G0W0) @@ -690,7 +690,7 @@ program QuAcK call cpu_time(start_evGW) call evGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX, & - BSE_GW,TDA_GW,G0W,GW0,singlet_manifold,triplet_manifold,eta_GW, & + BSE_GW,TDA_W,TDA_GW,G0W,GW0,singlet_manifold,triplet_manifold,eta_GW, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,Hc,H,ERI_MO,PHF,cHF,eHF,eG0W0) call cpu_time(end_evGW) @@ -708,7 +708,7 @@ program QuAcK call cpu_time(start_qsGW) call qsGW(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX, & - BSE_GW,TDA_GW,G0W,GW0,singlet_manifold,triplet_manifold,eta_GW, & + BSE_GW,TDA_W,TDA_GW,G0W,GW0,singlet_manifold,triplet_manifold,eta_GW, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,S,X,T,V,Hc,ERI_AO,ERI_MO,PHF,cHF,eHF) call cpu_time(end_qsGW) @@ -727,8 +727,8 @@ program QuAcK if(doG0T0) then call cpu_time(start_G0T0) - call G0T0(doACFDT,exchange_kernel,doXBS,BSE_GW,TDA_GW, & - singlet_manifold,triplet_manifold,linGW,eta_GW, & + call G0T0(doACFDT,exchange_kernel,doXBS,BSE_GW,TDA_W,TDA_GW, & + singlet_manifold,triplet_manifold,linGW,eta_GW, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_MO,eHF,eG0T0) call cpu_time(end_G0T0) @@ -745,8 +745,8 @@ program QuAcK if(doevGT) then call cpu_time(start_evGT) - call evGT(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS, & - BSE_GW,TDA_GW,singlet_manifold,triplet_manifold,eta_GW, & + call evGT(maxSCF_GW,thresh_GW,n_diis_GW,doACFDT,exchange_kernel,doXBS, & + BSE_GW,TDA_W,TDA_GW,singlet_manifold,triplet_manifold,eta_GW, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_MO,eHF,eG0T0) call cpu_time(end_evGT) @@ -862,8 +862,8 @@ program QuAcK ! Long-range G0W0 calculation call cpu_time(start_G0W0) - call G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE_GW,TDA_GW, & - singlet_manifold,triplet_manifold,linGW,eta_GW, & + call G0W0(doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE_GW,TDA_W,TDA_GW, & + singlet_manifold,triplet_manifold,linGW,eta_GW, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,Hc,H,ERI_ERF_MO,PHF,cHF,eHF,eG0W0) call cpu_time(end_G0W0) @@ -876,8 +876,8 @@ program QuAcK ERI_ERF_MO(:,:,:,:) = ERI_MO(:,:,:,:) - ERI_ERF_MO(:,:,:,:) call cpu_time(start_G0T0) - call G0T0(doACFDT,exchange_kernel,doXBS,BSE_GW,TDA_GW, & - singlet_manifold,triplet_manifold,linGW,eta_GW, & + call G0T0(doACFDT,exchange_kernel,doXBS,BSE_GW,TDA_W,TDA_GW, & + singlet_manifold,triplet_manifold,linGW,eta_GW, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI_ERF_MO,eHF,eG0T0) call cpu_time(end_G0T0) diff --git a/src/QuAcK/RPA.f90 b/src/QuAcK/RPA.f90 index a01a30e..32d9587 100644 --- a/src/QuAcK/RPA.f90 +++ b/src/QuAcK/RPA.f90 @@ -103,7 +103,7 @@ subroutine RPA(doACFDT,exchange_kernel,singlet_manifold,triplet_manifold,eta, & write(*,*) '------------------------------------------------------' write(*,*) - call ACFDT(exchange_kernel,.false.,.true.,.false.,.false.,singlet_manifold,triplet_manifold,eta, & + call ACFDT(exchange_kernel,.false.,.true.,.false.,.false.,.false.,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,e,e,Omega,XpY,XmY,rho,EcAC) if(exchange_kernel) then diff --git a/src/QuAcK/RPAx.f90 b/src/QuAcK/RPAx.f90 index 10d2f58..8afd56d 100644 --- a/src/QuAcK/RPAx.f90 +++ b/src/QuAcK/RPAx.f90 @@ -105,7 +105,7 @@ subroutine RPAx(doACFDT,exchange_kernel,singlet_manifold,triplet_manifold,eta, & write(*,*) '-------------------------------------------------------' write(*,*) - call ACFDT(exchange_kernel,.false.,.false.,.false.,.false.,singlet_manifold,triplet_manifold,eta, & + call ACFDT(exchange_kernel,.false.,.false.,.false.,.false.,.false.,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,e,e,Omega,XpY,XmY,rho,EcAC) if(exchange_kernel) then diff --git a/src/QuAcK/evGT.f90 b/src/QuAcK/evGT.f90 index acaf92b..4166c85 100644 --- a/src/QuAcK/evGT.f90 +++ b/src/QuAcK/evGT.f90 @@ -1,4 +1,5 @@ -subroutine evGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,TDA,singlet_manifold,triplet_manifold, & +subroutine evGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, & + BSE,TDA_W,TDA,singlet_manifold,triplet_manifold, & eta,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,ERI,eHF,eG0T0) ! Perform eigenvalue self-consistent calculation with a T-matrix self-energy (evGT) @@ -15,6 +16,7 @@ subroutine evGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,TDA,sin logical,intent(in) :: exchange_kernel logical,intent(in) :: doXBS logical,intent(in) :: BSE + logical,intent(in) :: TDA_W logical,intent(in) :: TDA logical,intent(in) :: singlet_manifold logical,intent(in) :: triplet_manifold @@ -257,7 +259,7 @@ subroutine evGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,TDA,sin allocate(Omega(nS,nspin),XpY(nS,nS,nspin),XmY(nS,nS,nspin),rho(nBas,nBas,nS,nspin)) - call Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & + call Bethe_Salpeter(TDA_W,TDA,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eGT,eGT,Omega,XpY,XmY,rho,EcRPA,EcBSE) if(exchange_kernel) then @@ -292,7 +294,7 @@ subroutine evGT(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,BSE,TDA,sin end if - call ACFDT(exchange_kernel,doXBS,.true.,TDA,BSE,singlet_manifold,triplet_manifold,eta, & + call ACFDT(exchange_kernel,doXBS,.true.,TDA_W,TDA,BSE,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eGT,eGT,Omega,XpY,XmY,rho,EcAC) if(exchange_kernel) then diff --git a/src/QuAcK/evGW.f90 b/src/QuAcK/evGW.f90 index 4990ac5..240c3ed 100644 --- a/src/QuAcK/evGW.f90 +++ b/src/QuAcK/evGW.f90 @@ -1,6 +1,5 @@ -subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA,G0W,GW0, & - singlet_manifold,triplet_manifold,eta, & - nBas,nC,nO,nV,nR,nS,ENuc,ERHF,Hc,H,ERI,PHF,cHF,eHF,eG0W0) +subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSEX,BSE,TDA_W,TDA,G0W,GW0, & + singlet_manifold,triplet_manifold,eta,nBas,nC,nO,nV,nR,nS,ENuc,ERHF,Hc,H,ERI,PHF,cHF,eHF,eG0W0) ! Perform self-consistent eigenvalue-only GW calculation @@ -20,6 +19,7 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSE logical,intent(in) :: COHSEX logical,intent(in) :: SOSEX logical,intent(in) :: BSE + logical,intent(in) :: TDA_W logical,intent(in) :: TDA logical,intent(in) :: G0W logical,intent(in) :: GW0 @@ -78,6 +78,16 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSE if(COHSEX) write(*,*) 'COHSEX approximation activated!' write(*,*) +! TDA for W + + if(TDA_W) write(*,*) 'Tamm-Dancoff approximation for dynamic screening!' + write(*,*) + +! TDA + + if(TDA) write(*,*) 'Tamm-Dancoff approximation activated!' + write(*,*) + ! Linear mixing linear_mixing = .false. @@ -112,7 +122,7 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSE if(.not. GW0 .or. nSCF == 0) then - call linear_response(ispin,.true.,.false.,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI, & + call linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI, & rho(:,:,:,ispin),EcRPA(ispin),Omega(:,ispin),XpY(:,:,ispin),XmY(:,:,ispin)) endif @@ -217,7 +227,7 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSE if(BSE) then - call Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & + call Bethe_Salpeter(TDA_W,TDA,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eGW,eGW,Omega,XpY,XmY,rho,EcRPA,EcBSE) write(*,*) @@ -245,7 +255,7 @@ subroutine evGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS,COHSEX,SOSE end if - call ACFDT(exchange_kernel,doXBS,.true.,TDA,BSE,singlet_manifold,triplet_manifold,eta, & + call ACFDT(exchange_kernel,doXBS,.true.,TDA_W,TDA,BSE,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI,eGW,eGW,Omega,XpY,XmY,rho,EcAC) write(*,*) diff --git a/src/QuAcK/excitation_density.f90 b/src/QuAcK/excitation_density.f90 index f3d02e4..dafa59e 100644 --- a/src/QuAcK/excitation_density.f90 +++ b/src/QuAcK/excitation_density.f90 @@ -34,5 +34,4 @@ subroutine excitation_density(nBas,nC,nO,nR,nS,ERI,XpY,rho) enddo enddo - end subroutine excitation_density diff --git a/src/QuAcK/qsGW.f90 b/src/QuAcK/qsGW.f90 index a6b9692..0339249 100644 --- a/src/QuAcK/qsGW.f90 +++ b/src/QuAcK/qsGW.f90 @@ -1,5 +1,5 @@ -subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, & - COHSEX,SOSEX,BSE,TDA,G0W,GW0,singlet_manifold,triplet_manifold,eta, & +subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, & + COHSEX,SOSEX,BSE,TDA_W,TDA,G0W,GW0,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ENuc,ERHF,S,X,T,V,Hc,ERI_AO_basis,ERI_MO_basis,PHF,cHF,eHF) ! Perform a quasiparticle self-consistent GW calculation @@ -18,6 +18,7 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, logical,intent(in) :: COHSEX logical,intent(in) :: SOSEX logical,intent(in) :: BSE + logical,intent(in) :: TDA_W logical,intent(in) :: TDA logical,intent(in) :: G0W logical,intent(in) :: GW0 @@ -100,6 +101,16 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, if(COHSEX) write(*,*) 'COHSEX approximation activated!' write(*,*) +! TDA for W + + if(TDA_W) write(*,*) 'Tamm-Dancoff approximation for dynamic screening!' + write(*,*) + +! TDA + + if(TDA) write(*,*) 'Tamm-Dancoff approximation activated!' + write(*,*) + ! Memory allocation allocate(eGW(nBas),c(nBas,nBas),cp(nBas,nBas),P(nBas,nBas),F(nBas,nBas),Fp(nBas,nBas), & @@ -141,7 +152,7 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, if(.not. GW0 .or. nSCF == 0) then - call linear_response(ispin,.true.,.false.,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI_MO_basis, & + call linear_response(ispin,.true.,TDA_W,.false.,eta,nBas,nC,nO,nV,nR,nS,1d0,eGW,ERI_MO_basis, & rho(:,:,:,ispin),EcRPA(ispin),Omega(:,ispin),XpY(:,:,ispin),XmY(:,:,ispin)) endif @@ -259,7 +270,7 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, if(BSE) then - call Bethe_Salpeter(TDA,singlet_manifold,triplet_manifold,eta, & + call Bethe_Salpeter(TDA_W,TDA,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI_MO_basis,eGW,eGW,Omega,XpY,XmY,rho,EcRPA,EcBSE) write(*,*) @@ -287,7 +298,7 @@ subroutine qsGW(maxSCF,thresh,max_diis,doACFDT,exchange_kernel,doXBS, end if - call ACFDT(exchange_kernel,doXBS,.true.,TDA,BSE,singlet_manifold,triplet_manifold,eta, & + call ACFDT(exchange_kernel,doXBS,.true.,TDA_W,TDA,BSE,singlet_manifold,triplet_manifold,eta, & nBas,nC,nO,nV,nR,nS,ERI_MO_basis,eGW,eGW,Omega,XpY,XmY,rho,EcAC) write(*,*) diff --git a/src/QuAcK/read_options.f90 b/src/QuAcK/read_options.f90 index 3beec7c..cfd2f7c 100644 --- a/src/QuAcK/read_options.f90 +++ b/src/QuAcK/read_options.f90 @@ -4,7 +4,7 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t maxSCF_GF,thresh_GF,DIIS_GF,n_diis_GF,linGF,renormGF, & BSE_GF,TDA_GF,eta_GF, & maxSCF_GW,thresh_GW,DIIS_GW,n_diis_GW, & - COHSEX,SOSEX,BSE_GW,TDA_GW,G0W,GW0,linGW,eta_GW, & + COHSEX,SOSEX,BSE_GW,TDA_W,TDA_GW,G0W,GW0,linGW,eta_GW, & doACFDT,exchange_kernel,doXBS, & nMC,nEq,nWalk,dt,nPrint,iSeed,doDrift) @@ -46,6 +46,7 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t logical,intent(out) :: COHSEX logical,intent(out) :: SOSEX logical,intent(out) :: BSE_GW + logical,intent(out) :: TDA_W logical,intent(out) :: TDA_GW logical,intent(out) :: G0W logical,intent(out) :: GW0 @@ -148,6 +149,7 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t COHSEX = .false. SOSEX = .false. BSE_GW = .false. + TDA_W = .false. TDA_GW = .false. G0W = .false. GW0 = .false. @@ -156,16 +158,17 @@ subroutine read_options(maxSCF_HF,thresh_HF,DIIS_HF,n_diis_HF,guess_type,ortho_t read(1,*) read(1,*) maxSCF_GW,thresh_GW,answer1,n_diis_GW,answer2, & - answer3,answer4,answer5,answer6,answer7,answer8,eta_GW + answer3,answer4,answer5,answer6,answer7,answer8,answer9,eta_GW if(answer1 == 'T') DIIS_GW = .true. if(answer2 == 'T') COHSEX = .true. if(answer3 == 'T') SOSEX = .true. if(answer4 == 'T') BSE_GW = .true. - if(answer5 == 'T') TDA_GW = .true. - if(answer6 == 'T') G0W = .true. - if(answer7 == 'T') GW0 = .true. - if(answer8 == 'T') linGW = .true. + if(answer5 == 'T') TDA_W = .true. + if(answer6 == 'T') TDA_GW = .true. + if(answer7 == 'T') G0W = .true. + if(answer8 == 'T') GW0 = .true. + if(answer9 == 'T') linGW = .true. if(.not.DIIS_GW) n_diis_GW = 1 ! Options for adiabatic connection