Exemple #1
0
def Run(mm):
    try:
        tester = psr.testing.Tester("Testing Boys and Bernardi CP")
        tester.print_header()
        pulsar_psi4.pulsar_psi4_setup(mm)
        LoadDefaultModules(mm)
        mm.change_option("PSI4_SCF","BASIS_SET","sto-3g")
        mm.change_option("PSR_CP","METHOD","PSI4_SCF")
        mm.change_option("PSR_MBE","METHOD","PSI4_SCF")
        mm.change_option("PSI4_SCF","PRINT",0)

        mol=psr.system.make_system("""
        0 1
        O    1.2361419   1.0137761  -0.0612424
        H    0.5104418   0.8944555   0.5514190
        H    1.9926927   1.1973129   0.4956931
        O   -0.9957202   0.0160415   1.2422556
        H   -1.4542703  -0.5669741   1.8472817
        H   -0.9377950  -0.4817912   0.4267562
        O   -0.2432343  -1.0198566  -1.1953808
        H    0.4367536  -0.3759433  -0.9973297
        H   -0.5031835  -0.8251492  -2.0957959
        """)
        mol = ApplyBasis(mol,"sto-3g","sto-3g")
        wfn=psr.datastore.Wavefunction()
        wfn.system=mol

        MyMod=mm.get_module("PSR_CP",0)

        NewWfn,Egy=MyMod.deriv(0,wfn)
        tester.test("Testing CP Energy via Deriv(0)", True, CompareEgy, Egy[0])
        NewWfn,Egy=MyMod.energy(wfn)
        tester.test("Testing CP Energy via Energy()", True, CompareEgy, Egy)
        NewWfn,Egy=MyMod.deriv(1,wfn)
        tester.test("Testing CP Gradient via Deriv(1)", True, CompareGrad, Egy)
        NewWfn,Egy=MyMod.gradient(wfn)
        tester.test("Testing CP Gradient via Gradient()", True, CompareGrad, Egy)
        
        tester.print_results()
     
    except Exception as e:
      psr.output.Output("Caught exception in main handler\n")
      traceback.print_exc()
Exemple #2
0
def Run(mm):
    try:
        tester = psr.testing.Tester("Testing Various Flavors of MBE")
        tester.print_header()

        pulsar_psi4.pulsar_psi4_setup(mm)
        LoadDefaultModules(mm)

        mm.change_option("PSR_BOND_FRAG","TRUNCATION_ORDER",2)       
        mm.change_option("PSI4_SCF","BASIS_SET","sto-3g")
        
        mm.change_option("PSR_MBE","METHOD","PSI4_SCF")
        mm.change_option("PSR_MBE","FRAGMENTIZER","PSR_BOND_FRAG")       
        mm.duplicate_key("PSR_MBE","PSR_VMFC")
        mm.change_option("PSR_VMFC","METHOD","PSI4_SCF")
        mm.change_option("PSR_VMFC","FRAGMENTIZER","PSR_VMFC_FRAG")
        mm.change_option("PSI4_SCF","PRINT",0)#Set to 1+ to see all the output

        
        mol=psr.system.make_system("""
        0 1
        O    1.2361419   1.0137761  -0.0612424
        H    0.5104418   0.8944555   0.5514190
        H    1.9926927   1.1973129   0.4956931
        O   -0.9957202   0.0160415   1.2422556
        H   -1.4542703  -0.5669741   1.8472817
        H   -0.9377950  -0.4817912   0.4267562
        O   -0.2432343  -1.0198566  -1.1953808
        H    0.4367536  -0.3759433  -0.9973297
        H   -0.5031835  -0.8251492  -2.0957959
        """)
        mol = ApplyBasis(mol,"sto-3g","sto-3g")
        wfn=psr.datastore.Wavefunction()
        wfn.system=mol
        
        
        MyMod=mm.get_module("PSR_MBE",0)
        NewWfn,Egy=MyMod.deriv(0,wfn)
        tester.test("Testing MBE(2) Energy via Deriv(0)",True,CompareEgy,Egy[0],UnCPEgy)
        NewWfn,Egy=MyMod.energy(wfn)
        tester.test("Testing MBE(2) Energy via Energy()",True,CompareEgy,Egy,UnCPEgy)
        NewWfn,Grad=MyMod.deriv(1,wfn)
        tester.test("Testing MBE(2) Gradient via Deriv(1)",True, CompareGrad,Grad,UnCPGrad)
        NewWfn,Grad=MyMod.gradient(wfn)
        tester.test("Testing MBE(2) Gradient via Gradient()",True,CompareGrad,Grad,UnCPGrad)


        MyMod=mm.get_module("PSR_VMFC",0)
        NewWfn,Egy=MyMod.deriv(0,wfn)
        tester.test("Testing VMFC(2) Energy via Deriv(0)",True,CompareEgy,Egy[0],VMFCEgy)
        NewWfn,Egy=MyMod.energy(wfn)
        tester.test("Testing VMFC(2) Energy via Energy()",True,CompareEgy,Egy,VMFCEgy)
        NewWfn,Grad=MyMod.deriv(1,wfn)
        tester.test("Testing VMFC(2) Gradient via Deriv(1)",True, CompareGrad,Grad,VMFCGrad)
        NewWfn,Grad=MyMod.gradient(wfn)
        tester.test("Testing VMFC(2) Gradient via Gradient()",True,CompareGrad,Grad,VMFCGrad)       

        tester.print_results()
        
     
    except Exception as e:
      psr.output.Output("Caught exception in main handler\n")
      traceback.print_exc()