center=sphere_center, radius=5.0)) # Combined Poisson solver poissonsolver = FDTDPoissonSolver(classical_material=classical_material, qm_spacing=0.40, cl_spacing=0.40 * 4, cell=large_cell, remove_moments=(1, 4), communicator=world, potential_coupler='Refiner') poissonsolver.set_calculation_mode('iterate') # Combined system atoms.set_cell(large_cell) atoms, qm_spacing, gpts = poissonsolver.cut_cell(atoms, vacuum=2.50) # Initialize GPAW gs_calc = GPAW(gpts=gpts, experimental={'niter_fixdensity': 2}, eigensolver='cg', nbands=-1, poissonsolver=poissonsolver, convergence={'energy': energy_eps}) atoms.set_calculator(gs_calc) # Ground state energy = atoms.get_potential_energy() # Test ground state equal(energy, -0.631881, energy_eps * gs_calc.get_number_of_electrons())
PolarizableSphere(center=0.5 * large_cell, radius=radius, permittivity=PermittivityPlus(data=gold))) # Poisson solver poissonsolver = FDTDPoissonSolver(classical_material=classical_material, cl_spacing=8.0, qm_spacing=1.0, cell=large_cell, communicator=world, remove_moments=(4, 1)) poissonsolver.set_calculation_mode('iterate') # Dummy quantum system atoms = Atoms('H', [0.5 * large_cell], cell=large_cell) atoms, qm_spacing, gpts = poissonsolver.cut_cell(atoms) del atoms[:] # Remove atoms, quantum system is empty # Initialize GPAW gs_calc = GPAW(gpts=gpts, nbands=-1, poissonsolver=poissonsolver) atoms.set_calculator(gs_calc) # Ground state energy = atoms.get_potential_energy() # Save state gs_calc.write('gs.gpw', 'all') # Initialize TDDFT and FDTD kick = [0.001, 0.000, 0.000] time_step = 10