from gpaw.xc.fxc_correlation_energy import FXCCorrelation import numpy as np a0 = 5.43 Ni = bulk('Ni', 'fcc') Ni.set_initial_magnetic_moments([0.7]) kpts = monkhorst_pack((3,3,3)) calc = GPAW(mode='pw', kpts=kpts, occupations=FermiDirac(0.001), setups={'Ni': '10'}, communicator=serial_comm) Ni.set_calculator(calc) E = Ni.get_potential_energy() calc.diagonalize_full_hamiltonian(nbands=50) rpa = RPACorrelation(calc) E_rpa = rpa.get_rpa_correlation_energy(ecut=50, skip_gamma=True, gauss_legendre=8) fxc = FXCCorrelation(calc, xc='RPA') E_fxc = fxc.get_fxc_correlation_energy(ecut=50, skip_gamma=True, gauss_legendre=8) equal(E_rpa, -7.826, 0.01) equal(E_fxc, -7.827, 0.01)
from ase import Atoms from gpaw import GPAW, PW from gpaw.mpi import serial_comm from gpaw.test import equal from gpaw.xc.fxc_correlation_energy import FXCCorrelation ecut = 50 He = Atoms('He') He.center(vacuum=1.0) calc = GPAW(mode=PW(force_complex_dtype=True), xc='PBE', communicator=serial_comm) He.set_calculator(calc) He.get_potential_energy() calc.diagonalize_full_hamiltonian() ralda = FXCCorrelation(calc, xc='rALDA') C6_ralda, C6_0 = ralda.get_C6_coefficient(ecut=ecut, direction=2) equal(C6_0, 1.772, 0.01) equal(C6_ralda, 1.609, 0.01)
from ase import * from ase.structure import molecule from gpaw import * from gpaw.mpi import serial_comm from gpaw.test import equal from gpaw.xc.fxc_correlation_energy import FXCCorrelation ecut = 50 He = Atoms('He') He.center(vacuum=1.0) calc = GPAW(mode='pw', dtype=complex, xc='PBE', communicator=serial_comm) He.set_calculator(calc) He.get_potential_energy() calc.diagonalize_full_hamiltonian() ralda = FXCCorrelation(calc, xc='rALDA') C6_ralda, C6_0 = ralda.get_C6_coefficient(ecut=ecut, direction=2) equal(C6_0, 1.772, 0.01) equal(C6_ralda, 1.609, 0.01)
H2.center() calc = GPAW(mode=PW(210), eigensolver='rmm-diis', dtype=complex, #spinpol=True, xc='LDA', basis='dzp', nbands=8, convergence={'density': 1.e-6}) H2.set_calculator(calc) H2.get_potential_energy() calc.diagonalize_full_hamiltonian(nbands=80, scalapack=scalapack1) calc.write('H2.gpw', mode='all') calc = GPAW('H2.gpw', communicator=serial_comm, txt=None) ralda = FXCCorrelation(calc, xc='rALDA', ) Ec_H2 = ralda.get_fxc_correlation_energy(ecut=200, directions=[[0, 2/3.], [2, 1/3.]]) # H --------------------------------------- H = Atoms('H', [(0,0,0)]) H.set_pbc(True) H.set_cell((2., 2., 3.)) H.center() calc = GPAW(mode=PW(210), eigensolver='rmm-diis', dtype=complex, xc='LDA', basis='dzp', nbands=4,
Ni.set_initial_magnetic_moments([0.7]) kpts = monkhorst_pack((3,3,3)) calc = GPAW(mode='pw', kpts=kpts, occupations=FermiDirac(0.001), setups={'Ni': '10'}, communicator=serial_comm) Ni.set_calculator(calc) E = Ni.get_potential_energy() calc.diagonalize_full_hamiltonian(nbands=50) ralda = FXCCorrelation(calc, xc='rALDA', method='solid') E_solid = ralda.get_fxc_correlation_energy(ecut=50, gauss_legendre=8, skip_gamma=True, kcommsize=world.size) ralda = FXCCorrelation(calc, xc='rALDA', method='standard', unit_cells=[2,1,1], ) E_standard = ralda.get_fxc_correlation_energy(ecut=50, gauss_legendre=8, skip_gamma=True, kcommsize=world.size)