from box.md import check_energy_conservation from hotbit.test.misc import default_param # check that C1H1-presentation of C6H6 goes right SCC=True cut=3.0 atoms = Atoms('CH',[(1.42,0,0),(2.0,1.0,0.2)],container='Wedge') atoms.set_container(M=6,height=10) calc = Hotbit(SCC=SCC,txt='tmp.cal',kpts=(6,1,1),gamma_cut=cut,**default_param) atoms.set_calculator(calc) e1 = atoms.get_potential_energy() atoms6 = ase_Atoms(pbc=False) atoms6 += atoms.extended_copy([(i-2,0,0) for i in range(6)]) #view(atoms) calc = Hotbit(SCC=SCC,txt='tmp.cal',gamma_cut=cut,**default_param) atoms6.set_calculator(calc) e6 = atoms6.get_potential_energy() assert abs(6*e1-e6)<1E-5 # # energy conservation # atoms = Atoms('CH',[(1.42,0,0),(2.0,0.5,0.3)],container='Wedge') atoms.set_container(M=6,height=10) calc = Hotbit(SCC=SCC,txt='tmp.cal',kpts=(6,1,1),gamma_cut=cut,**default_param) atoms.set_calculator(calc)
from ase import * from ase import Atoms as ase_Atoms from hotbit import * from hotbit.atoms import Atoms from box.md import check_energy_conservation from hotbit.test.misc import default_param SCC=True cut=3.0 atoms = Atoms('CH',[(1.42,0,0),(2.42,0,0)],container='Wedge') atoms.set_container(M=6,height=10) calc = Hotbit(SCC=SCC,txt='tmp.cal',kpts=(6,1,1),gamma_cut=cut,**default_param) atoms.set_calculator(calc) e1 = atoms.get_potential_energy() aux = atoms.extended_copy((3,1,1)) atoms2 = Atoms(container='Wedge') atoms2 += aux[0] atoms2 += aux[-1] atoms2.set_container(M=6,height=10) #view(atoms2) calc = Hotbit(SCC=SCC,txt='tmp.cal',kpts=(6,1,1),gamma_cut=cut,**default_param) atoms2.set_calculator(calc) e2 = atoms.get_potential_energy() assert abs(e1-e2)<1E-5
sm = 0.0 for i in range(calc.st.norb): for j in range(i, calc.st.norb): x1, y1 = calc.get_covalent_energy('orbitals', i=i, j=j) sm += y1.sum() assert abs(y.sum() - sm) < eps if True: # check that C1H1-presentation of C6H6 goes right n1 = 4 SCC = True cut = 1E10 a1 = Atoms('CH', [(1.42, 0, 0), (2.42, 0.1, 0.1)], container='Wedge') a1.set_container(M=6, height=10) aux = a1.extended_copy([(1, 0, 0)]) a1 += aux a1.set_container(M=3, height=10) n2 = 12 c1 = Hotbit(SCC=SCC, txt='-', kpts=(3, 1, 1), gamma_cut=cut, **default_param) a1.set_calculator(c1) a1.get_potential_energy() a2 = a1.extended_copy((3, 1, 1)) c2 = Hotbit(SCC=SCC, txt='-',
# check that C1H1-presentation of C6H6 goes right SCC = True cut = 3.0 atoms = Atoms('CH', [(1.42, 0, 0), (2.0, 1.0, 0.2)], container='Wedge') atoms.set_container(M=6, height=10) calc = Hotbit(SCC=SCC, txt='tmp.cal', kpts=(6, 1, 1), gamma_cut=cut, **default_param) atoms.set_calculator(calc) e1 = atoms.get_potential_energy() atoms6 = ase_Atoms(pbc=False) atoms6 += atoms.extended_copy([(i - 2, 0, 0) for i in range(6)]) #view(atoms) calc = Hotbit(SCC=SCC, txt='tmp.cal', gamma_cut=cut, **default_param) atoms6.set_calculator(calc) e6 = atoms6.get_potential_energy() assert abs(6 * e1 - e6) < 1E-5 # # energy conservation # atoms = Atoms('CH', [(1.42, 0, 0), (2.0, 0.5, 0.3)], container='Wedge') atoms.set_container(M=6, height=10) calc = Hotbit(SCC=SCC, txt='tmp.cal', kpts=(6, 1, 1),
from hotbit.test.misc import default_param SCC = True cut = 3.0 atoms = Atoms('CH', [(1.42, 0, 0), (2.42, 0, 0)], container='Wedge') atoms.set_container(M=6, height=10) calc = Hotbit(SCC=SCC, txt='tmp.cal', kpts=(6, 1, 1), gamma_cut=cut, **default_param) atoms.set_calculator(calc) e1 = atoms.get_potential_energy() aux = atoms.extended_copy((3, 1, 1)) atoms2 = Atoms(container='Wedge') atoms2 += aux[0] atoms2 += aux[-1] atoms2.set_container(M=6, height=10) #view(atoms2) calc = Hotbit(SCC=SCC, txt='tmp.cal', kpts=(6, 1, 1), gamma_cut=cut, **default_param) atoms2.set_calculator(calc) e2 = atoms.get_potential_energy() assert abs(e1 - e2) < 1E-5
sm = 0.0 for i in range(calc.st.norb): for j in range(i,calc.st.norb): x1,y1 = calc.get_covalent_energy('orbitals',i=i,j=j) sm += y1.sum() assert abs(y.sum()-sm)<eps if True: # check that C1H1-presentation of C6H6 goes right n1 = 4 SCC=True cut=1E10 a1 = Atoms('CH',[(1.42,0,0),(2.42,0.1,0.1)],container='Wedge') a1.set_container(M=6,height=10) aux = a1.extended_copy([(1,0,0)]) a1 += aux a1.set_container(M=3,height=10) n2 = 12 c1 = Hotbit(SCC=SCC,txt='-',kpts=(3,1,1),gamma_cut=cut,**default_param) a1.set_calculator(c1) a1.get_potential_energy() a2 = a1.extended_copy((3,1,1)) c2 = Hotbit(SCC=SCC,txt='-',kpts=(1,1,1),gamma_cut=cut,**default_param) a2.set_calculator(c2) a2.get_potential_energy()