Introduction to the octopus code - TDDFT.org
Introduction to the octopus code - TDDFT.org
Introduction to the octopus code - TDDFT.org
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
section 2. First session 9<br />
Note that ĤKS is explicitly time-dependent due <strong>to</strong> <strong>the</strong> Hartree and xc potentials. It<br />
is <strong>the</strong>refore important <strong>to</strong> retain <strong>the</strong> time-ordering product ˆT, in <strong>the</strong> definition of <strong>the</strong><br />
opera<strong>to</strong>r Û. The exponential in expression (9) is clearly <strong>to</strong>o complex <strong>to</strong> be applied<br />
directly, and needs <strong>to</strong> be approximated in some suitable manner.<br />
oc<strong>to</strong>pus provides several approximation methods: <strong>the</strong> split-opera<strong>to</strong>r, Suzuki-Trotter<br />
(a higher order split-opera<strong>to</strong>r method), Enforced Time-Reversal Symmetry, Approximated<br />
Enforced Time-Reversal Symmetry, Exponential Midpoint Rule, and Magnus<br />
Expansion methods. The method used in <strong>the</strong> propagation is chosen putting in<br />
<strong>the</strong> input file <strong>the</strong> keyword<br />
TDEvolutionMethod = xxx<br />
where xxx is ei<strong>the</strong>r split, suzuki-trotter, etrs, aetrs, exp mid, or magnus.<br />
Some of <strong>the</strong>se methods require also a numerical approximation <strong>to</strong> <strong>the</strong> exponential<br />
of <strong>the</strong> Hamil<strong>to</strong>nian. The methods supplied by oc<strong>to</strong>pus with <strong>the</strong> input variable<br />
TDExponentialMethod = xxx<br />
are <strong>the</strong> split-opera<strong>to</strong>r, Suzuki-Trotter, Lanczos, Chebyshev methods and a standard<br />
n-th order expansion of <strong>the</strong> exponential. The value of <strong>the</strong> above variable is ei<strong>the</strong>r<br />
split, suzuki-trotter, lanczos, chebyshev, or standard. You can look in <strong>the</strong><br />
manual for some information about <strong>the</strong>se methods.<br />
O<strong>the</strong>r oc<strong>to</strong>pus variables that are relevant for <strong>the</strong> propagation are, obviously, <strong>the</strong><br />
duration of <strong>the</strong> propagation (TDMaximumIter, which is <strong>the</strong> number of time iterations<br />
that <strong>the</strong> <strong>code</strong> will compute) and <strong>the</strong> time-step for <strong>the</strong> propagation (TDTimeStep).<br />
If we had infinite speed computers <strong>the</strong> latter could be chosen as small as numerical<br />
accuracy would allow. But, in <strong>the</strong> real world, we have <strong>to</strong> compromise and use a<br />
large time-step. However, <strong>the</strong> discretization of <strong>the</strong> evolution opera<strong>to</strong>r imposes an<br />
upper limit on <strong>the</strong> allowed time-step. This upper limit depends on <strong>the</strong> grid-spacing,<br />
becoming smaller for finer grids. You will now determine <strong>the</strong> relation between <strong>the</strong><br />
maximum time-step that allows for an energy-conserving propagation and <strong>the</strong> gridspacing.<br />
To do this, you will have <strong>to</strong> perform several <strong>TDDFT</strong> runs for each grid<br />
spacing with different time-steps, and moni<strong>to</strong>r <strong>the</strong> evolution of <strong>the</strong> system and <strong>the</strong><br />
variation of <strong>the</strong> <strong>to</strong>tal energy. You will notice that an energy-conserving well-behaved<br />
propagation will occur only below a certain ∆t max .<br />
To start a simple <strong>TDDFT</strong> run with oc<strong>to</strong>pus you replace<br />
CalculationMode = gs<br />
with<br />
CalculationMode = td<br />
in <strong>the</strong> input file and include, e.g., <strong>the</strong> following lines