[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