01.02.2015 Views

Introduction to the octopus code - TDDFT.org

Introduction to the octopus code - TDDFT.org

Introduction to the octopus code - TDDFT.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8<br />

EigenSolverInitTolerance = 1.0e-6<br />

EigenSolverFinalToleranceIteration = 7<br />

EigenSolverFinalTolerance = 1.0e-6<br />

EigenSolverMaxIter = 50<br />

[The values given are <strong>the</strong> default ones. If you find that <strong>the</strong> convergence is <strong>to</strong>o slow,<br />

you can try increasing <strong>the</strong> <strong>to</strong>lerance thresholds. Note that <strong>the</strong>se variables do not only<br />

apply <strong>to</strong> <strong>the</strong> calculation of unoccupied states; <strong>the</strong>y also apply <strong>to</strong> <strong>the</strong> eigenproblem<br />

at each one of <strong>the</strong> SCF step during <strong>the</strong> calculation of <strong>the</strong> ground state].<br />

Note also that you can perform a first run setting a poor convergence criterion, and<br />

afterwards re-start <strong>the</strong> run with a more stringent criterion, making sure that you<br />

re-read <strong>the</strong> previously badly converged wave functions by setting:<br />

FromScratch = no<br />

This will restart <strong>the</strong> unoccupied states calculation from <strong>the</strong> point where <strong>the</strong> previous<br />

calculation ended. [This also holds for any o<strong>the</strong>r run mode; <strong>the</strong> FromScratch<br />

variable instructs <strong>the</strong> <strong>code</strong> <strong>to</strong> try and restart a previous calculation, or not.] This is<br />

important as using <strong>the</strong> default value of EigenSolverMaxIter, it is very likely that<br />

your unoccupied states will not converge (<strong>the</strong> program will tell, in <strong>the</strong> standard<br />

output, whe<strong>the</strong>r or not <strong>the</strong> eigenstates are converged or not). You may increase <strong>the</strong><br />

value of EigenSolverMaxIter and restart.<br />

The distribution of KS eigenvalues (especially <strong>the</strong> differences between occupied and<br />

unoccupied ones) provides us with a first impression about <strong>the</strong> possible excitations<br />

of <strong>the</strong> system. However, it is only a very crude approximation; in <strong>the</strong> following we<br />

will learn how <strong>to</strong> improve on it.<br />

Q6. How do <strong>the</strong> eigenvalue differences differ from <strong>the</strong> experimental excitation energies<br />

provided, e.g., by an absorption spectrum<br />

4. Determine <strong>the</strong> optimal time-step for <strong>the</strong> propagation of <strong>the</strong> TDKS equations<br />

While <strong>the</strong> time-independent Kohn-Sham equations constitute a boundary value<br />

problem, <strong>the</strong> solution of <strong>the</strong> time-dependent Kohn-Sham equations is an initial<br />

value problem. At t = t 0 <strong>the</strong> system is in some initial state described by <strong>the</strong> Kohn-<br />

Sham orbitals ϕ i (⃗r, t 0 ). In most cases <strong>the</strong> initial state will be <strong>the</strong> ground state of<br />

<strong>the</strong> system (i.e., ϕ i (⃗r, t 0 ) will be <strong>the</strong> solution of <strong>the</strong> ground-state Kohn-Sham equations).<br />

To solve <strong>the</strong> TDKS equations amounts <strong>to</strong> propagate this initial state until<br />

some final time, t f .<br />

The time-dependent Kohn-Sham equations can be rewritten in <strong>the</strong> integral form<br />

where <strong>the</strong> time-evolution opera<strong>to</strong>r, Û, is defined by<br />

[<br />

ϕ i (⃗r, t f ) = Û(t f, t 0 )ϕ i (⃗r, t 0 ) , (8)<br />

Û(t ′ , t) = ˆT exp<br />

−i<br />

∫ t ′<br />

t<br />

dτ ĤKS(τ)<br />

]<br />

. (9)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!