Skip to content

Commit

Permalink
Add FCIDUMP test
Browse files Browse the repository at this point in the history
  • Loading branch information
robertodr committed Feb 12, 2018
1 parent 1c5d5f9 commit 795cf62
Show file tree
Hide file tree
Showing 6 changed files with 1,592 additions and 41 deletions.
27 changes: 27 additions & 0 deletions psi4/driver/p4util/fcidump.py
Expand Up @@ -29,9 +29,11 @@
from __future__ import division
import numpy as np
from datetime import datetime
from difflib import unified_diff
from uuid import uuid4
from .exceptions import *
from psi4.driver import constants
from psi4.driver.p4util.util import compare_arrays
from psi4.driver.procrouting.proc_util import check_iwl_file_from_scf_type


Expand Down Expand Up @@ -207,3 +209,28 @@ def fcidump(wfn, fname='INTDUMP', write_footer=False, oe_ints=None):
footer += 'UUID {}\n'.format(uuid4())
intdump.write(footer)
core.print_out('Done generating {} with integrals in FCIDUMP format.'.format(fname))


def compare_fcidumps(expected, computed, label):
"""Function to compare two FCIDUMP files. Prints :py:func:`util.success`
when value *computed* matches value *expected*.
Performs a system exit on failure. Used in input files in the test suite.
"""
# Grab expected header and integrals
with open(expected) as ref_dump:
ref_header = [next(ref_dump) for x in range(7)]
ref_intdump = np.loadtxt(expected, skiprows=7)
# Grab computed header and integrals
with open(computed) as dump:
header = [next(dump) for x in range(7)]
intdump = np.loadtxt(computed, skiprows=7)

# Compare headers
header_diff = list(unified_diff(ref_header, header, fromfile=expected, tofile=computed))
if header_diff:
message = ("\tComputed FCIDUMP file header does not match expected header.\n")
for l in header_diff:
message += l
raise TestComparisonError(message)
# Compare integrals
compare_arrays(ref_intdump, intdump, 10, label)
2 changes: 0 additions & 2 deletions psi4/driver/p4util/util.py
Expand Up @@ -33,8 +33,6 @@
import os
import math
import numpy as np
from datetime import datetime
from uuid import uuid4
from .exceptions import *


Expand Down
79 changes: 40 additions & 39 deletions tests/CMakeLists.txt
Expand Up @@ -32,60 +32,61 @@ find_package(Perl QUIET)

set(py3_fail_list pywrap-freq-e-sowreap
pywrap-freq-g-sowreap pywrap-opt-sowreap
pywrap-db2)
pywrap-db2)
#set(py36_fail_list extern1 extern2)
foreach(test_name adc1 adc2 casscf-fzc-sp casscf-semi casscf-sa-sp ao-casscf-sp casscf-sp castup1
castup2 castup3 cbs-delta-energy cbs-xtpl-energy
cbs-xtpl-freq cbs-xtpl-gradient cbs-xtpl-opt cbs-xtpl-func
cbs-xtpl-wrapper cc1 cc10 cc11 cc12 cc13 cc13a cc13b cc13c cc13d cc14 cc15 cc16
cc17 cc18 cc19 cc2 cc21 cc22 cc23 cc24 cc25 cc26 cc27 cc28
cc29 cc3 cc30 cc31 cc32 cc33 cc34 cc35 cc36 cc37 cc38 cc39
cc4 cc40 cc41 cc42 cc43 cc44 cc45 cc46 cc47 cc48 cc49 cc4a
cc50 cc51 cc52 cc53 cc54 cc55 cc5a cc6 cc7 cc8 cc8a cc8b cc8c
cc9 cc9a cdomp2-1 cdomp2-2 cepa0-grad1 cepa0-grad2 cepa1
cepa2 cepa3 cepa4 cepa-module ci-multi cisd-h2o+-0 cisd-h2o+-1
cisd-h2o+-2 cisd-h2o-clpse cisd-opt-fd cisd-sp cisd-sp-2
ci-property cubeprop decontract dcft-grad1 dcft-grad2
dcft-grad3 dcft-grad4 dcft1 dcft2 dcft3 dcft4 dcft5 dcft6
dcft7 dcft8 dcft9 ao-dfcasscf-sp dfcasscf-sa-sp dfcasscf-fzc-sp dfcasscf-sp
foreach(test_name adc1 adc2 casscf-fzc-sp casscf-semi casscf-sa-sp ao-casscf-sp casscf-sp castup1
castup2 castup3 cbs-delta-energy cbs-xtpl-energy
cbs-xtpl-freq cbs-xtpl-gradient cbs-xtpl-opt cbs-xtpl-func
cbs-xtpl-wrapper cc1 cc10 cc11 cc12 cc13 cc13a cc13b cc13c cc13d cc14 cc15 cc16
cc17 cc18 cc19 cc2 cc21 cc22 cc23 cc24 cc25 cc26 cc27 cc28
cc29 cc3 cc30 cc31 cc32 cc33 cc34 cc35 cc36 cc37 cc38 cc39
cc4 cc40 cc41 cc42 cc43 cc44 cc45 cc46 cc47 cc48 cc49 cc4a
cc50 cc51 cc52 cc53 cc54 cc55 cc5a cc6 cc7 cc8 cc8a cc8b cc8c
cc9 cc9a cdomp2-1 cdomp2-2 cepa0-grad1 cepa0-grad2 cepa1
cepa2 cepa3 cepa4 cepa-module ci-multi cisd-h2o+-0 cisd-h2o+-1
cisd-h2o+-2 cisd-h2o-clpse cisd-opt-fd cisd-sp cisd-sp-2
ci-property cubeprop decontract dcft-grad1 dcft-grad2
dcft-grad3 dcft-grad4 dcft1 dcft2 dcft3 dcft4 dcft5 dcft6
dcft7 dcft8 dcft9 ao-dfcasscf-sp dfcasscf-sa-sp dfcasscf-fzc-sp dfcasscf-sp
dfccd1 dfccdl1 dfccd-grad1 dfccsd1 dfccsdl1 dfccsd-grad1 dfccsd-t-grad1
dfccsdt1 dfccsdat1 dfmp2-1 dfmp2-2 dfmp2-3 dfmp2-4 dfmp2-ecp dfmp2-grad1
dfmp2-grad2 dfmp2-grad3 dfmp2-grad4 dfmp2-grad5 dfomp2-1 dfomp2-2 dfomp2-3
dfomp2-4 dfomp2-grad1 dfomp2-grad2 dfomp2-grad3 dfomp3-1 dfomp3-2
dfomp2-4 dfomp2-grad1 dfomp2-grad2 dfomp2-grad3 dfomp3-1 dfomp3-2
dfomp3-grad1 dfomp3-grad2 dfomp2p5-1 dfomp2p5-2 dfomp2p5-grad1
dfomp2p5-grad2 dfrasscf-sp dfscf-bz2 dft-b2plyp dft-grac
dft-freq dft-grad1 dft-grad2 dft-psivar dft-b3lyp dft1 dft-vv10
dft1-alt dft2 dft3 dft-omega docs-bases docs-dft extern1 extern2
fsapt1 fsapt2 fsapt-terms fsapt-allterms isapt1 isapt2
fci-dipole fci-h2o fci-h2o-2 fci-h2o-fzcv fci-tdm fci-tdm-2 fci-coverage
fd-freq-energy fd-freq-energy-large fd-freq-gradient
fd-freq-gradient-large fd-gradient freq-isotope fnocc1 fnocc2
fci-dipole fci-h2o fci-h2o-2 fci-h2o-fzcv fci-tdm fci-tdm-2
fci-coverage fcidump
fd-freq-energy fd-freq-energy-large fd-freq-gradient
fd-freq-gradient-large fd-gradient freq-isotope fnocc1 fnocc2
fnocc3 fnocc4 frac frac-ip-fitting frac-traverse ghosts gibbs matrix1
mcscf1 mcscf2 mcscf3
mints1 mints2 mints3 mints4 mints5 mints6 mints8 mints-benchmark mints-helper
mints9 mints10 molden1 molden2 mom mp2-1 mp2-def2 mp2-grad1 mp2-grad2
mp2-module mp2p5-grad1 mp2p5-grad2 mp3-grad1 mp3-grad2
mp2-property mpn-bh nbody-he-cluster numpy-array-interface
ocepa-freq1 ocepa-grad1 ocepa-grad2 ocepa1 ocepa2 ocepa3
omp2-1 omp2-2 omp2-3 omp2-4 omp2-5 omp2-grad1 omp2-grad2
omp2p5-1 omp2p5-2 omp2p5-grad1 omp2p5-grad2 omp3-1 omp3-2
omp3-3 omp3-4 omp3-5 omp3-grad1 omp3-grad2 opt-lindep-change
opt1 opt1-fd opt2 opt2-fd opt3 opt4 opt5 opt6 opt7 opt8 opt9
opt11 opt12 opt13 opt14 opt-irc-1 opt-irc-2 opt-irc-3 opt-freeze-coords
props1 props2 props3 psimrcc-ccsd_t-1 psimrcc-ccsd_t-2
psimrcc-ccsd_t-3 psimrcc-ccsd_t-4 psimrcc-fd-freq1
psimrcc-fd-freq2 psimrcc-pt2 psimrcc-sp1 psithon1 psithon2
pubchem1 pubchem2 pywrap-alias pywrap-all pywrap-basis
pywrap-cbs1 pywrap-checkrun-convcrit pywrap-checkrun-rhf
mints1 mints2 mints3 mints4 mints5 mints6 mints8 mints-benchmark mints-helper
mints9 mints10 molden1 molden2 mom mp2-1 mp2-def2 mp2-grad1 mp2-grad2
mp2-module mp2p5-grad1 mp2p5-grad2 mp3-grad1 mp3-grad2
mp2-property mpn-bh nbody-he-cluster numpy-array-interface
ocepa-freq1 ocepa-grad1 ocepa-grad2 ocepa1 ocepa2 ocepa3
omp2-1 omp2-2 omp2-3 omp2-4 omp2-5 omp2-grad1 omp2-grad2
omp2p5-1 omp2p5-2 omp2p5-grad1 omp2p5-grad2 omp3-1 omp3-2
omp3-3 omp3-4 omp3-5 omp3-grad1 omp3-grad2 opt-lindep-change
opt1 opt1-fd opt2 opt2-fd opt3 opt4 opt5 opt6 opt7 opt8 opt9
opt11 opt12 opt13 opt14 opt-irc-1 opt-irc-2 opt-irc-3 opt-freeze-coords
props1 props2 props3 psimrcc-ccsd_t-1 psimrcc-ccsd_t-2
psimrcc-ccsd_t-3 psimrcc-ccsd_t-4 psimrcc-fd-freq1
psimrcc-fd-freq2 psimrcc-pt2 psimrcc-sp1 psithon1 psithon2
pubchem1 pubchem2 pywrap-alias pywrap-all pywrap-basis
pywrap-cbs1 pywrap-checkrun-convcrit pywrap-checkrun-rhf
pywrap-checkrun-rohf pywrap-checkrun-uhf pywrap-db1 pywrap-db2
pywrap-db3 pywrap-freq-e-sowreap pywrap-freq-g-sowreap
pywrap-molecule pywrap-opt-sowreap rasci-c2-active rasci-h2o
rasci-ne rasscf-sp sad1 sapt1 sapt2 sapt3 sapt4 sapt5 sapt6
pywrap-db3 pywrap-freq-e-sowreap pywrap-freq-g-sowreap
pywrap-molecule pywrap-opt-sowreap rasci-c2-active rasci-h2o
rasci-ne rasscf-sp sad1 sapt1 sapt2 sapt3 sapt4 sapt5 sapt6
sapt7 sapt8 scf-bz2 scf-ecp scf-guess-read1 scf-upcast-custom-basis scf-guess-read2 scf-bs scf1 scf-occ
scf2 scf3 scf4 scf5 scf6 scf7 scf-property soscf-large soscf-ref
soscf-dft stability1 dfep2-1 dfep2-2 sapt-dft1 sapt-dft2 sapt-compare dft-custom dft-reference
stability2 tu1-h2o-energy tu2-ch2-energy tu3-h2o-opt scf-response1
tu4-h2o-freq tu5-sapt tu6-cp-ne2 x2c1 x2c2 x2c3 zaptn-nh2
stability2 tu1-h2o-energy tu2-ch2-energy tu3-h2o-opt scf-response1
tu4-h2o-freq tu5-sapt tu6-cp-ne2 x2c1 x2c2 x2c3 zaptn-nh2
options1 cubeprop-esp dft-smoke scf-hess1 scf-freq1 dft-jk scf-coverage
dft-custom-dhdf dft-custom-hybrid dft-custom-mgga dft-custom-gga
)
Expand Down
3 changes: 3 additions & 0 deletions tests/fcidump/CMakeLists.txt
@@ -0,0 +1,3 @@
include(TestingMacros)

add_regression_test(fcidump "psi;smoketests;fcidump")

0 comments on commit 795cf62

Please sign in to comment.