[gpaw-users] (no subject)

mohamed amin siasas at yahoo.com
Wed Apr 6 07:53:57 CEST 2016


Thank you.I have tried your suggestion and the energy improved but still didn't match the ground state energy. So it starts the TD iterations with -24 energy while the ground state energy converged at -669. However, before adding your solution the energy used to start with 2043. My in gs and td script are://///////// GS ///////////////////////////
import sys
import numpy as np
from ase import Atoms, Atom
from ase.units import Bohr
from gpaw import GPAW
from ase.io import write
from gpaw import GPAW, FermiDirac
from jellium_cluster import *
from gpaw import Mixer

mixer=Mixer(beta=0.02, nmaxold=5, weight=100.0)
L = 32.
jellium = Atoms(cell=(L, L, L)) # simulation cell with no atoms (cube LxLxL)

convergence ={'density': 1.0e-5}

# radius of positive sphere
R = 14.276
# charge of positive sphere
Z = 331.
# center of 
center = (L/2,L/2,L/2)
# special poisson solver
poissonsolver = SphericalJelliumClusterPoissonSolver(Z, R, center)

nelec     = 331   # number of electrons
nstates   = 192  # number of states
jellium.calc = GPAW( poissonsolver=poissonsolver, # use special Poisson solver
                     xc='LDA',
                     charge=-nelec,          # charge of electrons, total charge = Z - nelec
                     nbands=nstates,
                     h=.50,
                     txt='Na_out.txt',
                     eigensolver='cg',                #'rmm-diis','cg'
                     occupations=FermiDirac(width=0.05),
                     mixer=mixer,
                     convergence=convergence,
                     maxiter=2000)

jellium.calc.attach(jellium.calc.write, 10, 'rest.gpw')
# find electronic states
e0 = jellium.get_potential_energy()

# save states
jellium.calc.write('na.gpw', mode='all')



//////////////////// TD ////////////////////////from ase import Atoms
from gpaw import GPAW
from gpaw.tddft import TDDFT, photoabsorption_spectrum
from jellium_cluster import *


L = 32.
jellium = Atoms(cell=(L, L, L)) # simulation cell with no atoms (cube LxLxL)
# radius of positive sphere
R = 14.276
# charge of positive sphere
Z = 331.
# center of
center = (L/2,L/2,L/2)
# special poisson solver
poissonsolver = SphericalJelliumClusterPoissonSolver(Z, R, center)
time_step = 1.0 # 8.0 as (1 as = 0.041341 autime)5D
iters =  4000     # 2000 x 8 as => 16 fs
kick = [0,0,5e-3]
# TDDFT calculator
td_calc = TDDFT('na.gpw',  
                 poissonsolver=poissonsolver)

# Kick
td_calc.absorption_kick(kick)


# Propagate
td_calc.propagate(time_step, iters, '331_jell.dat', '331_JELLIUM_td.gpw')
td_calc.write('331_JELLIUM_td.gpw', mode='all')
photoabsorption_spectrum('331_jell.dat', '331_spectrum_z.dat')

//////////////////////////////////////////////////////////////////////////////////////////Thank you for you help Sincerely,

Muhamed Amin 

    On Monday, April 4, 2016 12:07 PM, Tuomas Rossi <tuomas.rossi at aalto.fi> wrote:
 

 Hi,

The following should work:

td_calc = TDDFT('na.gpw',
                poissonsolver=poissonsolver)

(TDDFT calculator inherits from GPAW class, so it supports similar 
arguments.)

Best,
Tuomas


On 2016-04-04 11:39, mohamed amin wrote:
> Thanks for reply,
> I checked the GPAW manual and I didn't see a way to give poissonsolver
> to TDDFT object. It only allows you to provide the linear equation solver.
> Do you know how to provide the poissonsolver to TDDFT object?
> Thanks again
> Sincerely,
>
> Muhamed Amin
>
>
> On Monday, April 4, 2016 8:59 AM, Tuomas Rossi <tuomas.rossi at aalto.fi>
> wrote:
>
>
> Hi,
>
> It seems that the TDDFT calculator is using the default poissonsolver
> and thus the jellium potential is not present there. So, you need to
> give the same jellium poissonsolver to TDDFT calculator also.
>
> Note: the poissonsolver is not stored in gpw file (question to
> developers: should it be?).
>
> If this doesn't help, please attach the entire input scripts and output
> files.
>
> Best,
> Tuomas
>
>
> On 2016-04-01 13:39, Ask Hjorth Larsen via gpaw-users wrote:
>  > Hello Amin
>  >
>  > 2016-03-31 18:42 GMT+02:00 mohamed amin <siasas at yahoo.com
> <mailto:siasas at yahoo.com>>:
>  >> Hi Ask,
>  >> I have tried to send my questions to the GPAW list many times but I
> never see them posted although I'm getting the messages from other users.
>  >> I wanted to know why when I start td propagation the energy is very
> different that the ground state energy. For example, when I ran the same
> calculations on octopus, the td calculations start with the ground state
> energy then it changes gradually with time. In GPAW, the td energies are
> positive while the gs are negative. I don't know what is the source of
> error.
>  >
>  > I guess this will reach the mailing list now then.  Unfortunately I am
>  > not so well into the time-dependent code.  Maybe someone else can have
>  > a look?
>  >
>  > Note: I recommend attaching entire scripts rather than inline snippets.
>  >
>  > Also, who can tell why Amin's e-mails might not be arriving to the
> mailing list?
>  >
>  > Best regards
>  > Ask
>  >
>  >> Here is my gs input:
>  >> jellium.calc = GPAW( poissonsolver=poissonsolver, # use special
> Poisson solver
>  >>                      xc='LDA',
>  >>                      charge=-nelec,          # charge of electrons,
> total charge = Z - nelec
>  >>                      nbands=nstates,
>  >>                      h=.50,
>  >>                      txt='Na.txt',
>  >>                      eigensolver='cg',                #'rmm-diis','cg'
>  >>                      occupations=FermiDirac(width=0.05),
>  >>                      mixer=mixer,
>  >>                      convergence=convergence,
>  >>                      maxiter=2000)
>  >>
>  >> jellium.calc.attach(jellium.calc.write, 10, 'rest.gpw')
>  >> # find electronic states
>  >> e0 = jellium.get_potential_energy()
>  >>
>  >> # save states
>  >> jellium.calc.write('na.gpw', mode='all')
>  >>
>  >> and my td input
>  >>
>  >> time_step = 1.0 # 8.0 as (1 as = 0.041341 autime)5D
>  >> iters =  4000    # 2000 x 8 as => 16 fs
>  >> # Weak delta kick to z-direction
>  >> kick = [0,0,5e-3]
>  >> print "*********************************Starting TDDFT
> calculations******************************"
>  >> # TDDFT calculator
>  >> td_calc = TDDFT('na.gpw')
>  >> # Kick
>  >> td_calc.absorption_kick(kick)
>  >>
>  >> frequencies = [2.80, 2.98]    # Frequencies of interest in eV
>  >> folding = 'Gauss'            # Folding function
>  >> width = 0.1                  # Line width for folding in eV
>  >> ind = TDDFTInducedField(paw=td_calc,
>  >>                          frequencies=frequencies,
>  >>                          folding=folding,
>  >>                          width=width,
>  >>                          restart_file='331_jellium_td.ind')
>  >>
>  >>
>  >> # Propagate
>  >> td_calc.propagate(time_step, iters, '331_jell.dat',
> '331_JELLIUM_td.gpw')
>  >> td_calc.write('331_JELLIUM_td.gpw', mode='all')
>  >> ind.write('331_jellium_td.ind')
>  >> photoabsorption_spectrum('331_jell.dat', '331_spectrum_z.dat')
>  >>
>  >> Thanks
>  >>
>  >> Sincerely,
>  >>
>  >> Muhamed Amin
>
>  >
>  > _______________________________________________
>  > gpaw-users mailing list
>  > gpaw-users at listserv.fysik.dtu.dk
> <mailto:gpaw-users at listserv.fysik.dtu.dk>
>  > https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
>
>  >
>
>


  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.fysik.dtu.dk/pipermail/gpaw-users/attachments/20160406/ab64c584/attachment-0001.html>


More information about the gpaw-users mailing list