[gpaw-users] LCAO-TDDFT propagation on a charged system

Tuomas Rossi tuomas.rossi at aalto.fi
Tue Aug 10 10:45:50 CEST 2021


Dear Vardha,

It seems that the spin-polarized calculation was broken for LCAO 
RT-TDDFT. Thank you for reporting the issue!

A fix for the spin-polarized calculation is work in progress in 
https://gitlab.com/gpaw/gpaw/-/merge_requests/910. Before the fix, 
odd-electron systems would work only in spin-paired mode (resulting in 
partial occupations).

Best regards,

Tuomas


On 5.8.2021 10.11, Varadharajan Srinivasan via gpaw-users wrote:
> Dear all,
> 
> I was wondering whether there are any limitations on using the 
> LCAO-based RT-TDDFT on a singly charged (odd-electron) system? I ran an 
> example for Na2- and, while I was able to perform the ground state 
> calculation, the time-dependent run crashed with the following error:
>   vt_G = hamiltonian.vt_sG[kpt.s]
> IndexError: list index out of range
> 
> I am able to run RT-TDDFT on the same system in FD mode just fine. My 
> ground state and tddft input scripts are given below. I am using GPAW 
> 21.6.0. Any help would be appreciated. I apologize if this issue has 
> been answered before but I couldn't find any posts. Also, not sure if 
> there are any obvious mistakes I am making here.
> 
> Thanks,
> Vardha.
> 
> GS:
> 
> from ase import Atoms
> from gpaw import GPAW
> from gpaw.poisson import PoissonSolver
> from gpaw.poisson_extravacuum import ExtraVacuumPoissonSolver
> 
> # Sodium atom chain
> atoms = Atoms('Na2',
>                positions=[[i * 3.0, 0, 0] for i in range(2)])
> atoms.center(vacuum=6.0)
> 
> # Use an advanced Poisson solver
> ps = ExtraVacuumPoissonSolver(gpts=(512, 256, 256),
>                                poissonsolver_large=PoissonSolver(),
>                                coarses=2,
>                                poissonsolver_small=PoissonSolver())
> 
> # Ground-state calculation
> calc = GPAW(mode='lcao', h=0.3, basis='pvalence.dz 
> <http://pvalence.dz/ 
> xc='LDA', charge = -1.0,
>              setups={'Na': '1'}, spinpol = True,
>              poissonsolver=ps,
>              convergence={'density': 1e-12},
>              txt='gs.out')
> atoms.calc = calc
> energy = atoms.get_potential_energy()
> calc.write('gs.gpw', mode='all')
> 
> TD:from gpaw.lcaotddft import LCAOTDDFT
> from gpaw.lcaotddft.dipolemomentwriter import DipoleMomentWriter
> from gpaw.lcaotddft.wfwriter import WaveFunctionWriter
> 
> # Read the ground-state file
> td_calc = LCAOTDDFT('gs.gpw', txt='td.out')
> 
> # Attach any data recording or analysis tools
> DipoleMomentWriter(td_calc, 'dm.dat')
> WaveFunctionWriter(td_calc, 'wf.ulm')
> 
> # Kick and propagate
> td_calc.absorption_kick([1e-5, 0., 0.])
> td_calc.propagate(20, 1500)
> 
> # Save the state for restarting later
> td_calc.write('td.gpw', mode='all')
> 
> 
> 
> _______________________________________________
> 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