[gpaw-users] Dipole moment

Jens Jørgen Mortensen jjmo at dtu.dk
Mon Aug 5 13:08:05 CEST 2019


On 8/1/19 2:43 AM, Taha Salavati-Fard via gpaw-users wrote:
> Dear gpaw users,
> 
> I have started gpaw calculations with a 4-layer 2x2 Au111 slab which was 
> already optimized with vasp. I am using the same functional and E_cut 
> when I am trying to get wavefunction with gpaw. One very strange 
> observation is that the converged calculations show the following dipole 
> moment:
> 
> 
> Dipole moment: (-16.610906, -0.422997, -0.003230) |e|*Ang
> 
> The slab is limited in z-direction ... so this is obviously wrong ...

The x- and y-values should be ignored because of the periodic 
boundaries, but the z-value has a physical meaning and looks fine - I think.

Jens Jørgen

> I need to use the wavefunction to get dielectric function. Is there 
> anything that you see problematic here?
> I have copied my python script here.
> 
> Thanks and I really appreciate your help in advance.
> Taha
> 
> from __future__ import print_function
> import numpy as np
> from ase.optimize import LBFGS
> from ase.parallel import parprint, rank
> from ase.visualize import view
> from ase import Atoms, cluster, io, constraints
> from ase.io <http://ase.io> import vasp
> from gpaw import GPAW, PW, Mixer, FermiDirac, restart
> from gpaw.poisson import PoissonSolver
> from gpaw.utilities.tools import cutoff2gridspacing, gridspacing2cutoff
> from ase.units import Rydberg
> from gpaw.utilities import h2gpts
> from ase.parallel import paropen, world
> from gpaw.response.df import DielectricFunction
> 
> 
> # Ground state calculation
> atoms = vasp.read_vasp(filename='CONTCAR')
> atoms.center()
> atoms.set_pbc([1,1,0])
> 
> conv = {'energy': 1e-5, 'bands': -10}
> 
> calc = GPAW(mode=PW(540),txt='Au111_ground_state_energy.txt',
>              kpts={'size': (9,9,1), 'gamma': True},
>              parallel={'band': 1, 'domain': 1},
>              xc='PBE', convergence=conv,
>              occupations=FermiDirac(0.001))  # use small FD smearing
> 
> atoms.set_calculator(calc)
> atoms.get_potential_energy()  # get ground state density
> 
> 
> #calc.write('Au111_step1.gpw', 'all')  # write wavefunctions
> 
> # Restart Calculation with fixed density and dense kpoint sampling
> #calc.set(kpts={'size': (15,15,1), 'gamma': False},  # dense kpoint sampling
> #         fixdensity=True)
> 
> 
> #calc.diagonalize_full_hamiltonian(nbands=120)  # diagonalize Hamiltonian
> calc.write('Au111.gpw', 'all')  # write wavefunctions
> 
> # Getting absorption spectrum
> df = 
> DielectricFunction(calc='Au111.gpw',txt='Au111_dielectric_function.txt',
>                          eta=0.05,ecut=150)
> df.get_dielectric_function(filename='Au111_abs.csv')
> 
> # Getting macroscopic constant
> df = DielectricFunction(calc='Au111.gpw',
>                          
> frequencies=[0.0],txt='Au111_dielectric_constant.txt',
>                          hilbert=False,
>                          eta=0.0001,
>                          ecut=150)
> 
> epsNLF, epsLF = df.get_macroscopic_dielectric_constant()
> 
> -- 
> Taha Salavati-fard
> Postdoctoral Fellow
> Department of Chemical and Biomolecular Engineering
> University of Houston, Houston TX
> Office: N45, Engineering Bldg 1
> Phone:  713-743-4340
> 
> _______________________________________________
> gpaw-users mailing list
> gpaw-users at listserv.fysik.dtu.dk
> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
> 



More information about the gpaw-users mailing list