[5.747, 1.958, 22.55], [7.912, 1.361, 81.04]] # Initialize classical material classical_material = PolarizableMaterial() # Classical nanosphere classical_material.add_component( PolarizableSphere(center=0.5 * large_cell, radius=radius, permittivity=PermittivityPlus(data=gold))) # Quasistatic FDTD qsfdtd = QSFDTD(classical_material=classical_material, atoms=None, cells=large_cell, spacings=[8.0, 1.0], communicator=world, remove_moments=(4, 1)) # Run ground state energy = qsfdtd.ground_state('gs.gpw', nbands=-1) # Run time evolution qsfdtd.time_propagation('gs.gpw', time_step=10, iterations=1000, kick_strength=[0.001, 0.000, 0.000], dipole_moment_file='dm.dat') # Spectrum photoabsorption_spectrum('dm.dat', 'spec.dat', width=0.0)
atom_center = np.array([10.0, 10.0, 20.0]) atoms = Atoms( 'Na2', [atom_center + [0.0, 0.0, -1.50], atom_center + [0.0, 0.0, +1.50]]) # Classical subsystem sphere_center = np.array([10.0, 10.0, 10.0]) classical_material = PolarizableMaterial() classical_material.add_component( PolarizableSphere(permittivity=PermittivityPlus(data=[[1.20, 0.20, 25.0]]), center=sphere_center, radius=5.0)) # Wrap calculators qsfdtd = QSFDTD(classical_material=classical_material, atoms=atoms, cells=(cell, 2.50), spacings=[1.60, 0.40], remove_moments=(1, 4), communicator=world) # Run qsfdtd.ground_state('gs.gpw', eigensolver='cg', nbands=-1, convergence={'energy': energy_eps}, experimental={'niter_fixdensity': 2}) equal(qsfdtd.energy, -0.631881, energy_eps * qsfdtd.gs_calc.get_number_of_electrons()) qsfdtd.time_propagation('gs.gpw', kick_strength=[0.000, 0.000, 0.001], time_step=10, iterations=5,
radius=3.9)) classical_material.add_component( PolarizableRod(permittivity=PermittivityPlus(data=[[1.00, 0.20, 25.0]]), corners=[[20.0, 21.5, 10.0], [25.0, 33.5, 10.0]], round_corners=False, radius=2.9)) classical_material.add_component( PolarizableTetrahedron( permittivity=PermittivityPlus(data=[[0.80, 0.20, 25.0]]), corners=[[24.1, 16.1, 5.1], [30.1, 36.1, 6.1], [36.4, 27.6, 7.1], [30.0, 25.0, 14.9]])) # Wrap calculators qsfdtd = QSFDTD(classical_material=classical_material, atoms=None, cells=(cell, 2.00), spacings=[1.60, 0.40], remove_moments=(1, 1)) # Run energy = qsfdtd.ground_state('gs.gpw', eigensolver='cg', nbands=-1) qsfdtd.time_propagation('gs.gpw', kick_strength=[0.000, 0.000, 0.001], time_step=10, iterations=5, dipole_moment_file='dmCl.dat') # Restart and run qsfdtd.write('td.gpw', mode='all') qsfdtd.time_propagation('td.gpw', kick_strength=None,
[0.7603, 1.946, -40.89], [1.161, 1.396, 17.22], [2.946, 1.183, 15.76], [4.161, 1.964, 36.63], [5.747, 1.958, 22.55], [7.912, 1.361, 81.04]]) # 1) Nanosphere only classical_material = PolarizableMaterial() classical_material.add_component(PolarizableSphere(center=sphere_center, radius=radius, permittivity=eps_gold)) qsfdtd = QSFDTD(classical_material=classical_material, atoms=None, cells=simulation_cell, spacings=[2.0, 0.5], remove_moments=(1, 1)) energy = qsfdtd.ground_state('gs.gpw', nbands=1) qsfdtd.time_propagation('gs.gpw', kick_strength=[0.001, 0.000, 0.000], time_step=10, iterations=1500, dipole_moment_file='dm.dat') photoabsorption_spectrum('dm.dat', 'spec.1.dat', width=0.15)