Beispiel #1
0
    def setUp(self):

        mol1 = gto.Mole()
        mol1.atom = '''
        O 10.0 0.0 0.0
        H 10. 0.7586 0.5043
        H 10. 0.7586 -0.5043'''
        mol1.basis = 'sto-3g'
        mol1.build()
        self.sub1 = cluster_subsystem.ClusterEnvSubSystem(mol1, 'lda', env_order=1)

        mol2 = gto.Mole()
        mol2.atom = '''
        O 20.0 0.0 0.0
        H 20. 0.7586 0.5043
        H 20. 0.7586 -0.5043'''
        mol2.basis = 'sto-3g'
        mol2.build()
        self.sub2 = cluster_subsystem.ClusterEnvSubSystem(mol2, 'm06', env_order=2)

        mol3 = gto.Mole()
        mol3.atom = '''
        O 0.0 0.0 0.0
        H 0. 0.7586 0.5043
        H 0. 0.7586 -0.5043'''
        mol3.basis = 'sto-3g'
        mol3.build()
        self.sub3 = cluster_subsystem.ClusterHLSubSystem(mol3, 'm06', 'rhf', env_order=2)

        mol4 = gto.Mole()
        mol4.verbose=3
        mol4.atom = '''
        O 30.0 0.0 0.0
        H 30. 0.7586 0.5043
        H 30. 0.7586 -0.5043'''
        mol4.basis = 'sto-3g'
        mol4.build()
        self.sub4 = cluster_subsystem.ClusterEnvSubSystem(mol4, 'lda', env_order=2)

        sup1_alt_sub_mol = gto.Mole()
        sup1_alt_sub_mol.verbose = 3
        sup1_alt_sub_mol.atom = '''
        O 0.0 0.0 0.0
        H 0. 0.7586 0.5043
        H 0. 0.7586 -0.5043
        O 20.0 0.0 0.0
        H 20. 0.7586 0.5043
        H 20. 0.7586 -0.5043'''
        sup1_alt_sub_mol.basis = 'sto-3g'
        sup1_alt_sub_mol.build()
        self.sup1_alt_sub = cluster_subsystem.ClusterEnvSubSystem(sup1_alt_sub_mol, 'lda', env_order=2)
Beispiel #2
0
    def test_partialghost_supersystem(self):
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        H 0. -2.757 2.857
        H 0. 2.757 2.857
        ghost:H 0. 0. 2.857
        '''
        mol.basis = '3-21g'
        mol.build()
        env_method = 'm06'
        hl_method = 'ccsd'
        subsys = cluster_subsystem.ClusterHLSubSystem(mol, env_method, hl_method)

        mol2 = gto.Mole()
        mol2.verbose = 3
        mol2.atom = '''
        He 1.0 20.0 0.0
        He 3.0 20.0 0.0'''
        mol2.basis = '3-21g'
        mol2.build()
        env_method = 'm06'
        subsys2 = cluster_subsystem.ClusterEnvSubSystem(mol2, env_method)

        mol12 = helpers.concat_mols([mol, mol2])
        fs_scf_obj = helpers.gen_scf_obj(mol12, 'b3lyp')

        supersystem = cluster_supersystem.ClusterSuperSystem([subsys, subsys2], 'b3lyp', fs_scf_obj, init_guess='minao')
        self.assertEqual(supersystem.env_method, 'b3lyp')
        self.assertEqual(supersystem.proj_oper, 'huz')
        self.assertEqual(supersystem.init_guess, 'minao')
def combine_subsystems(subsystems, env_method, fs_kwargs=None):
    """Combines multiple subsystems into one larger subsystem object.

    Parameters
    __________
    subsystems : array
        A list of subsystem objects to combine
    env_method : str
        The name of the environment method to use for the combined subsystem
    fs_kwargs : dict
        Settings for the full system. Determines if subsystem is unrestricted
        (default is None)

    Returns
    -------
    ClusterEnvSubSystem
        The combined subsystem object.
    """
    mol_list = [x.mol for x in subsystems]
    mol = helpers.concat_mols(mol_list)
    sub_order = subsystems[0].env_order
    sub_unrestricted = False
    if fs_kwargs is not None:
        if 'fs_unrestricted' in fs_kwargs.keys():
            sub_unrestricted = fs_kwargs['fs_unrestricted']
    #Need a way of specifying the settings of the implied subsystem somehow.
    return cluster_subsystem.ClusterEnvSubSystem(mol,
                                                 env_method,
                                                 env_order=sub_order,
                                                 unrestricted=sub_unrestricted)
Beispiel #4
0
    def test_density_fitting_supersystem(self):
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        H 0. -2.757 2.857
        H 0. 2.757 2.857
        '''
        mol.basis = '3-21g'
        mol.build()
        env_method = 'm06'
        hl_method = 'ccsd'
        subsys = cluster_subsystem.ClusterHLSubSystem(mol, env_method, hl_method)

        mol2 = gto.Mole()
        mol2.verbose = 3
        mol2.atom = '''
        He 1.0 20.0 0.0
        He 3.0 20.0 0.0'''
        mol2.basis = '3-21g'
        mol2.build()

        env_method = 'm06'
        subsys2 = cluster_subsystem.ClusterEnvSubSystem(mol2, env_method)
        mol12 = helpers.concat_mols([mol, mol2])
        fs_scf_obj = helpers.gen_scf_obj(mol12, 'm06', density_fitting=True)
        supersystem = cluster_supersystem.ClusterSuperSystem([subsys, subsys2], 'm06', fs_scf_obj, init_guess='minao')

        #Check SCF object
        scf_obj = supersystem.fs_scf_obj
        from pyscf.df.df_jk import _DFHF
        self.assertTrue(isinstance(scf_obj, _DFHF))
        self.assertEqual(scf_obj.xc, 'm06')
        self.assertEqual(scf_obj.density_fitting, True)
Beispiel #5
0
    def test_custom_subsystem(self):

        t_file = tempfile.NamedTemporaryFile()
        subsys = cluster_subsystem.ClusterEnvSubSystem(self.cs_mol, self.env_method,
            env_order=2, env_smearsigma=0.5, damp=1, shift=1, subcycles=10,
            diis=2, unrestricted=False, density_fitting=True, freeze=True,
            verbose=2, nproc=4, pmem=300, scrdir='/path/to/scratch/',
            save_orbs=True, save_density=True, filename=t_file.name)

        self.assertEqual(subsys.mol, self.cs_mol)
        self.assertEqual(subsys.env_method, self.env_method)
        self.assertEqual(subsys.filename, t_file.name)

        self.assertEqual(subsys.env_smearsigma, 0.5)
        self.assertEqual(subsys.env_damp, 1)
        self.assertEqual(subsys.env_shift, 1)
        self.assertEqual(subsys.env_subcycles, 10)
        self.assertEqual(subsys.freeze, True)
        self.assertEqual(subsys.env_initguess, None)
        self.assertEqual(subsys.verbose, 2)
        self.assertEqual(subsys.save_orbs, True)
        self.assertEqual(subsys.save_density, True)

        #Check SCF object
        scf_obj = subsys.env_scf
        comp_scf_obj = dft.RKS(self.cs_mol).density_fit()
        from pyscf.df.df_jk import _DFHF
        self.assertTrue(isinstance(scf_obj, _DFHF))
        self.assertEqual(scf_obj.xc, self.env_method)
Beispiel #6
0
    def test_excited_supersystem(self):
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        H 0. -2.757 2.857
        H 0. 2.757 2.857
        '''
        mol.basis = '3-21g'
        mol.build()
        env_method = 'm06'
        hl_method = 'ccsd'
        subsys = cluster_subsystem.ClusterHLSubSystem(mol, env_method, hl_method)

        mol2 = gto.Mole()
        mol2.verbose = 3
        mol2.atom = '''
        He 1.0 20.0 0.0
        He 3.0 20.0 0.0'''
        mol2.basis = '3-21g'
        mol2.build()
        env_method = 'm06'
        subsys2 = cluster_subsystem.ClusterEnvSubSystem(mol2, env_method)

        mol12 = helpers.concat_mols([mol, mol2])
        fs_scf_obj = helpers.gen_scf_obj(mol12, 'm06')

        supersystem = cluster_supersystem.ClusterSuperSystem([subsys, subsys2], 'm06', fs_scf_obj, init_guess='minao',
                fs_excited=True, fs_excited_dict={'nroots':4}, ft_excited_relax=True, ft_excited_dict={'nroots':2})

        self.assertTrue(supersystem.fs_excited)
        self.assertTrue(supersystem.ft_excited_relax)
        self.assertDictEqual(supersystem.fs_excited_dict, {'nroots':4})
        self.assertDictEqual(supersystem.ft_excited_dict, {'nroots':2})
        self.assertEqual(supersystem.fs_excited_nroots, 4)
        self.assertEqual(supersystem.ft_excited_nroots, 2)
Beispiel #7
0
    def test_hsros_supersystem(self):
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        H 0. -2.757 2.857
        H 0. 2.757 2.857
        '''
        mol.basis = '3-21g'
        mol.spin = 2
        mol.build()
        env_method = 'm06'
        hl_method = 'ccsd'
        subsys = cluster_subsystem.ClusterHLSubSystem(mol, env_method, hl_method)

        mol2 = gto.Mole()
        mol2.verbose = 3
        mol2.atom = '''
        He 1.0 20.0 0.0
        He 3.0 20.0 0.0'''
        mol2.basis = '3-21g'
        mol2.build()

        env_method = 'm06'
        subsys2 = cluster_subsystem.ClusterEnvSubSystem(mol2, env_method)
        mol12 = helpers.concat_mols([mol, mol2])
        fs_scf_obj = helpers.gen_scf_obj(mol12, 'm06')
        supersystem = cluster_supersystem.ClusterSuperSystem([subsys, subsys2], 'm06', fs_scf_obj, init_guess='minao')

        #Check SCF object
        scf_obj = supersystem.fs_scf_obj
        comp_scf_obj = dft.ROKS(gto.mole.conc_mol(mol, mol2))
        self.assertEqual(type(scf_obj), type(comp_scf_obj))
        self.assertEqual(scf_obj.xc, 'm06')
Beispiel #8
0
    def test_density_fitting_subsystem(self):
        subsys = cluster_subsystem.ClusterEnvSubSystem(self.cs_mol, self.env_method2, density_fitting=True)

        #Check SCF object
        scf_obj = subsys.env_scf
        comp_scf_obj = dft.RKS(self.cs_mol).density_fit()
        from pyscf.df.df_jk import _DFHF
        self.assertTrue(isinstance(scf_obj, _DFHF))
Beispiel #9
0
    def test_unrestricted_subsystem(self):
        subsys = cluster_subsystem.ClusterEnvSubSystem(self.cs_mol, self.env_method, unrestricted=True)
        subsys.init_density()

        #Check SCF object
        scf_obj = subsys.env_scf
        comp_scf_obj = dft.UKS(self.cs_mol)
        self.assertEqual(type(scf_obj), type(comp_scf_obj))
        self.assertEqual(scf_obj.xc, 'm06')
        self.assertEqual(subsys.env_method, self.env_method)
Beispiel #10
0
    def test_restrictedos_subsystem(self):
        mol = self.cs_mol.copy()
        mol.spin = 2
        mol.build()
        subsys = cluster_subsystem.ClusterEnvSubSystem(mol, self.env_method)
        subsys.init_density()

        #Check SCF object
        scf_obj = subsys.env_scf
        comp_scf_obj = dft.ROKS(mol)
        self.assertEqual(type(scf_obj), type(comp_scf_obj))
        self.assertEqual(scf_obj.xc, 'm06')
Beispiel #11
0
    def test_ovlpghost_supersystem(self):
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        H 0. -2.757 2.857
        H 0. 2.757 2.857
        ghost:He 1.0 20.0 0.0
        ghost:H 0. 0. 2.857
        '''
        mol.basis = '3-21g'
        mol.build()
        env_method = 'm06'
        hl_method = 'ccsd'
        subsys = cluster_subsystem.ClusterHLSubSystem(mol, env_method, hl_method)

        mol2 = gto.Mole()
        mol2.verbose = 3
        mol2.atom = '''
        ghost:H 0. 2.757 2.857
        He 1.0 20.0 0.0
        He 3.0 20.0 0.0'''
        mol2.basis = '3-21g'
        mol2.build()
        env_method = 'm06'
        subsys2 = cluster_subsystem.ClusterEnvSubSystem(mol2, env_method)

        supersystem = cluster_supersystem.ClusterSuperSystem([subsys, subsys2], 'b3lyp', ft_initguess='minao')
        self.assertEqual(supersystem.fs_method, 'b3lyp')
        self.assertEqual(supersystem.proj_oper, 'huz')
        self.assertEqual(supersystem.ft_cycles, 100)
        self.assertEqual(supersystem.ft_conv, 1e-8)
        self.assertEqual(supersystem.ft_grad, None)
        self.assertEqual(supersystem.ft_initguess, 'minao')
        self.assertEqual(supersystem.ft_updatefock, 0)

        self.assertEqual(supersystem.fs_cycles, None)
        self.assertEqual(supersystem.fs_conv, None)
        self.assertEqual(supersystem.fs_grad, None)
        self.assertEqual(supersystem.fs_damp, 0)
        self.assertEqual(supersystem.fs_shift, 0)
        self.assertEqual(supersystem.fs_smearsigma, 0)
        self.assertEqual(supersystem.fs_initguess, None)
        self.assertEqual(supersystem.grid_level, None)
        self.assertEqual(supersystem.rho_cutoff, None)
        self.assertEqual(supersystem.fs_verbose, None)
Beispiel #12
0
    def test_basic_supersystem(self):
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        H 0. -2.757 2.857
        H 0. 2.757 2.857
        '''
        mol.basis = '3-21g'
        mol.build()
        env_method = 'm06'
        hl_method = 'ccsd'
        subsys = cluster_subsystem.ClusterHLSubSystem(mol, env_method, hl_method)

        mol2 = gto.Mole()
        mol2.verbose = 3
        mol2.atom = '''
        He 1.0 20.0 0.0
        He 3.0 20.0 0.0'''
        mol2.basis = '3-21g'
        mol2.build()
        env_method = 'm06'
        subsys2 = cluster_subsystem.ClusterEnvSubSystem(mol2, env_method)

        mol12 = helpers.concat_mols([mol, mol2])
        fs_scf_obj = helpers.gen_scf_obj(mol12, 'm06')

        supersystem = cluster_supersystem.ClusterSuperSystem([subsys, subsys2], 'm06', fs_scf_obj, init_guess='minao')
        self.assertEqual(supersystem.env_method, 'm06')
        self.assertEqual(supersystem.proj_oper, 'huz')
        self.assertEqual(supersystem.max_cycle, 200)
        self.assertEqual(supersystem.conv_tol, 1e-9)
        self.assertEqual(supersystem.damp, 0)
        self.assertEqual(supersystem.init_guess, 'minao')
        self.assertEqual(supersystem.fock_subcycles, 1)

        #Check SCF object
        scf_obj = supersystem.fs_scf_obj
        comp_scf_obj = dft.RKS(gto.mole.conc_mol(mol, mol2))
        self.assertEqual(type(scf_obj), type(comp_scf_obj))
        print (comp_scf_obj.mol._basis)
        print (supersystem.mol._basis)
        self.assertTrue(gto.same_mol(comp_scf_obj.mol, supersystem.mol, cmp_basis=False))
        self.assertEqual(scf_obj.xc, 'm06')
Beispiel #13
0
    def test_basic_subsystem(self):

        subsys = cluster_subsystem.ClusterEnvSubSystem(self.cs_mol, self.env_method)

        self.assertEqual(subsys.mol, self.cs_mol)
        self.assertEqual(subsys.env_method, self.env_method)
        self.assertEqual(subsys.env_order, 1)

        self.assertEqual(subsys.env_smearsigma, 0.)
        self.assertEqual(subsys.env_damp, 0.)
        self.assertEqual(subsys.env_shift, 0.)
        self.assertEqual(subsys.env_subcycles, 1)
        self.assertEqual(subsys.freeze, False)
        self.assertEqual(subsys.env_initguess, None)
        self.assertEqual(subsys.verbose, 3)

        #Check SCF object
        scf_obj = subsys.env_scf
        comp_scf_obj = dft.RKS(self.cs_mol)
        self.assertEqual(type(scf_obj), type(comp_scf_obj))
        self.assertEqual(scf_obj.xc, 'm06')
Beispiel #14
0
    def test_ghost_subsystem(self):
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        O 0.0 0.0 0.0
        H 0. -2.757 2.857
        H 0. 2.757 2.857
        ghost.H 0. 0.0 2.857'''
        mol.basis = 'aug-cc-pVDZ'
        mol.build()
        env_method = 'm06'
        subsys = cluster_subsystem.ClusterEnvSubSystem(mol, env_method)

        self.assertEqual(subsys.mol.atom_coords()[3][0],0.)
        self.assertEqual(subsys.mol.atom_coords()[3][1],0.)
        self.assertAlmostEqual(subsys.mol.atom_coords()[3][2],5.39894754, delta=1e-8)

        self.assertEqual(subsys.mol.atom_charges()[0],8)
        self.assertEqual(subsys.mol.atom_charges()[1],1)
        self.assertEqual(subsys.mol.atom_charges()[2],1)
        self.assertEqual(subsys.mol.atom_charges()[3],0)

        self.assertEqual(subsys.mol._basis['GHOST-H'],subsys.mol._basis['H'])
def optimal_density_damping():
    output_filename = 'optimal_density_damping_results.out'
    molO = MolObjects()
    moliter = iter(molO)
    x = next(moliter)
    num = 0
    while x is not None:
        for gp in grid_points:
            for ig in init_guess:
                for xc in xc_fun:
                    for fud in range(2):
                        for pud in range(fud, 2):
                            header_string = f"molnum: {num}\nbasis: {x[0].basis}\ncharge: {x[0].charge}\ngridsize: {gp}\ninitguess: {ig}\nxc_fun: {xc}\nfock_update: {fud}\nproj_update: {pud}\n"
                            with open(output_filename, 'a') as fout:
                                fout.write(header_string)
                            sub1 = cluster_subsystem.ClusterEnvSubSystem(
                                x[0], xc, damp=-1)
                            sub2 = cluster_subsystem.ClusterEnvSubSystem(
                                x[1], xc, damp=-1)
                            sup = cluster_supersystem.ClusterSuperSystem(
                                [sub1, sub2],
                                xc,
                                fs_grid_level=gp,
                                ft_cycles=100,
                                ft_initguess=ig,
                                ft_updatefock=fud,
                                ft_updateproj=pud,
                                ft_diis=None)
                            sup.init_density()
                            start_time = time.time()
                            sup.freeze_and_thaw()
                            end_time = time.time()
                            elapsed_time = end_time - start_time
                            cycles = sup.ft_iter
                            write_string = f"  FT cycles: {cycles}\n  Elapsed Time: {elapsed_time}\n  Average time per cycle: {elapsed_time/float(cycles)}\n  Sub1 E: {sub1.get_env_energy()}\n  Sub2 E: {sub2.get_env_energy()}\n\n"
                            with open(output_filename, 'a') as fout:
                                fout.write(write_string)
                            if x[0].spin != 0 or x[1].spin != 0:
                                sub1 = cluster_subsystem.ClusterEnvSubSystem(
                                    x[0], xc, unrestricted=True, damp=-1)
                                sub2 = cluster_subsystem.ClusterEnvSubSystem(
                                    x[1], xc, unrestricted=True, damp=-1)
                                sup = cluster_supersystem.ClusterSuperSystem(
                                    [sub1, sub2],
                                    xc,
                                    fs_grid_level=gp,
                                    ft_cycles=100,
                                    ft_initguess=ig,
                                    ft_updatefock=fud,
                                    ft_updateproj=pud,
                                    fs_unrestricted=True,
                                    ft_unrestricted=True,
                                    ft_diis=None)
                                sup.init_density()
                                start_time = time.time()
                                sup.freeze_and_thaw()
                                end_time = time.time()
                                elapsed_time = end_time - start_time
                                cycles = sup.ft_iter
                                write_string = f"Unrestricted\n  FT cycles: {cycles}\n  Elapsed Time: {elapsed_time}\n  Average time per cycle: {elapsed_time/float(cycles)}\n  Sub1 E: {sub1.get_env_energy()}\n  Sub2 E: {sub2.get_env_energy()}\n\n"

        num += 2
        x = next(moliter)
        print("Progress")
        print(f"{num/2} Done Total")
Beispiel #16
0
react_total_energy += react_cc.kernel()[0]
react_total_energy += ccsd_t.kernel(react_cc, react_cc.ao2mo())

trans_mf = scf.RHF(trans_mol)
trans_total_energy = trans_mf.kernel()
trans_cc = cc.CCSD(trans_mf)
trans_total_energy += trans_cc.kernel()[0]
trans_total_energy += ccsd_t.kernel(trans_cc, trans_cc.ao2mo())

print("Canonical Difference")
print(trans_total_energy - react_total_energy)

sub1_react = cluster_subsystem.ClusterActiveSubSystem(sub1_react_mol,
                                                      dft_method,
                                                      active_method)
sub2_react = cluster_subsystem.ClusterEnvSubSystem(sub2_react_mol, dft_method)
sup_react = cluster_supersystem.ClusterSuperSystem([sub1_react, sub2_react],
                                                   dft_method)
sup_react.freeze_and_thaw()
sup_react.get_active_energy()
sup_react_energy = sup_react.get_supersystem_energy()
react_energy = sup_react_energy - sup_react.subsystems[
    0].env_energy + sup_react.subsystems[0].active_energy

sub1_trans = cluster_subsystem.ClusterActiveSubSystem(sub1_trans_mol,
                                                      dft_method,
                                                      active_method)
sub2_trans = cluster_subsystem.ClusterEnvSubSystem(sub2_trans_mol, dft_method)
sup_trans = cluster_supersystem.ClusterSuperSystem([sub1_trans, sub2_trans],
                                                   dft_method)
sup_trans.freeze_and_thaw()
Beispiel #17
0
    def test_custom_supersystem(self):
        t_file = tempfile.NamedTemporaryFile()
        mol = gto.Mole()
        mol.verbose = 3
        mol.atom = '''
        O 0.0 0.0 0.0
        H 0. -2.757 2.857
        H 0. 2.757 2.857'''
        mol.basis = 'aug-cc-pVDZ'
        mol.build()
        env_method = 'm06'
        hl_method = 'ccsd'
        hl_dict = {'froz_orbs': 10}
        subsys = cluster_subsystem.ClusterHLSubSystem(mol, env_method, hl_method, filename=t_file.name, hl_dict=hl_dict)

        mol2 = gto.Mole()
        mol2.verbose = 3
        mol2.atom = '''
        O 1.0 0.0 0.0
        O 3.0 0.0 0.0'''
        mol2.basis = 'aug-cc-pVDZ'
        mol2.verbose = 1
        mol2.build()
        env_method = 'm06'
        subsys2 = cluster_subsystem.ClusterEnvSubSystem(mol2, env_method, filename=t_file.name)

        mol12 = helpers.concat_mols([mol, mol2])
        fs_scf_obj = helpers.gen_scf_obj(mol12, 'b3lyp', max_cycle=3, conv_tol=2,
                                         damp=1, level_shift_factor=2.1,
                                         init_guess='atom', grid_level=2, 
                                         small_rho_cutoff=1e-2, save_orbs=True,
                                         save_density=True,
                                         stability_analysis='internal')

        supersystem = cluster_supersystem.ClusterSuperSystem([subsys, subsys2],
                          'b3lyp', fs_scf_obj, proj_oper='huzfermi', max_cycle=2, 
                          conv_tol=1e-1, diis_num=3, init_guess='1e', 
                          fock_subcycles=1, set_fermi=-0.1, damp=0.5, 
                          compare_density=True, save_density=True,
                          save_orbs=True, filename=t_file.name)

        self.assertEqual(supersystem.env_method, 'b3lyp')
        self.assertEqual(supersystem.proj_oper, 'huzfermi')
        self.assertEqual(supersystem.filename, t_file.name)
        self.assertEqual(supersystem.max_cycle, 2)
        self.assertEqual(supersystem.conv_tol, 1e-1)
        self.assertEqual(supersystem.damp, 0.5)
        self.assertIsInstance(supersystem.emb_diis, lib.diis.DIIS)
        self.assertIsInstance(supersystem.emb_diis_2, lib.diis.DIIS)
        self.assertEqual(supersystem.set_fermi, -0.1)
        self.assertEqual(supersystem.init_guess, '1e')
        self.assertEqual(supersystem.fock_subcycles, 1)
        self.assertEqual(supersystem.compare_density, True)
        self.assertEqual(supersystem.save_orbs, True)
        self.assertEqual(supersystem.save_density, True)

        fs_scf_obj = supersystem.fs_scf_obj
        self.assertEqual(fs_scf_obj.max_cycle, 3)
        self.assertEqual(fs_scf_obj.conv_tol, 2)
        self.assertEqual(fs_scf_obj.damp, 1)
        self.assertEqual(fs_scf_obj.level_shift_factor, 2.1)
        self.assertEqual(fs_scf_obj.init_guess, 'atom')
        self.assertEqual(fs_scf_obj.grids.level, 2)
        self.assertEqual(fs_scf_obj.small_rho_cutoff, 1e-2)
        self.assertEqual(fs_scf_obj.verbose, 1)
        self.assertEqual(fs_scf_obj.stability_analysis, 'internal')
        self.assertEqual(fs_scf_obj.save_orbs, True)
        self.assertEqual(fs_scf_obj.save_density, True)