# Initialize GPAW gs_calc = GPAW(gpts=gpts, eigensolver='cg', nbands=-2, poissonsolver=poissonsolver) atoms.set_calculator(gs_calc) # Ground state energy = atoms.get_potential_energy() # Save state gs_calc.write('gs.%s.gpw' % tag, 'all') # Initialize TDDFT and FDTD td_calc = TDDFT('gs.%s.gpw' % tag) td_calc.absorption_kick(kick_strength=kick) td_calc.hamiltonian.poisson.set_kick(kick) # Propagate TDDFT and FDTD td_calc.propagate(time_step, 50, 'dm.%s.dat' % tag, 'td.%s.gpw' % tag) # Test ref_cl_dipole_moment = [2.72623607e-02, 1.98393701e-09, -1.98271199e-09] ref_qm_dipole_moment = [1.44266213e-02, 1.04985435e-09, -1.04920610e-09] tol = 0.0001 equal(td_calc.get_dipole_moment(), ref_qm_dipole_moment, tol) equal(td_calc.hamiltonian.poisson.get_dipole_moment(), ref_cl_dipole_moment, tol)
eigensolver = 'cg', nbands = -2, poissonsolver = poissonsolver) atoms.set_calculator(gs_calc) # Ground state energy = atoms.get_potential_energy() # Save state gs_calc.write('gs.%s.gpw' % tag, 'all') # Initialize TDDFT and FDTD td_calc = TDDFT('gs.%s.gpw' % tag) td_calc.absorption_kick(kick_strength=kick) td_calc.hamiltonian.poisson.set_kick(kick) # Propagate TDDFT and FDTD td_calc.propagate(time_step, 50, 'dm.%s.dat' % tag, 'td.%s.gpw' % tag) # Test ref_cl_dipole_moment = [ 2.72623607e-02, 1.98393701e-09, -1.98271199e-09 ] ref_qm_dipole_moment = [ 1.44266213e-02, 1.04985435e-09, -1.04920610e-09 ] tol = 0.0001 equal(td_calc.get_dipole_moment(), ref_qm_dipole_moment, tol) equal(td_calc.hamiltonian.poisson.get_dipole_moment(), ref_cl_dipole_moment, tol)