18.11.2014 Views

C++ Lab Course - Seminar topics

C++ Lab Course - Seminar topics

C++ Lab Course - Seminar topics

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Wave function class<br />

A wave function is the following object<br />

• It has up to three coordinate axes which also defines a discretization by a product basis (the<br />

axis class will be supplied)<br />

• It has a time<br />

• We can form the scalar product of two wave functions.<br />

• We can apply the overlap matrix and the inverse of the overlap matrix to the wave function.<br />

Operator class<br />

Operator representations on product basis sets. This is an important and large class, the task can<br />

be split into smaller parts.<br />

• An operator is constructed given a set of axes and a string that defines the operator. A typical<br />

string could be the kinetic energy in 2-d polar coordinates φ, ρ in the tensor-product form<br />

kin = ’+1/2(|)x(d|d) +1(d|d)x(|1/q^2|)’<br />

or general potentials, e.g the harmonic oscillator:<br />

pot = ’harmonic(kappax,kappay)’<br />

for<br />

pot(x, y) = κ x x 2 + κ y y 2<br />

• An operator can be applied to a wave function, the result is a wave function.<br />

• Operators on finite-element basis sets are stored piecewise for each product of finite elemetns.<br />

• Tensor product operators are stored as the individual factors.<br />

• Potentials are stored by their values on quadrature points and by the transformation matrices<br />

from the basis set to the quadrature points (compare the discussion of DVR).<br />

Timer routines<br />

Functionality like in “mytimer.py”: find <strong>C++</strong> class with this functionality or translate the python<br />

code. We want<br />

• Minimal timer overhead — timer operation must be fast!<br />

• Option to switch off the timer (to reduce any possible overhead to the absolute mininum).<br />

• Progress monitor: let the timer print a “.” or “-” if more than n seconds that have elapsed<br />

since it was last called last time.<br />

Time propagator class<br />

A time-propagator takes as an argument and operator, wave function, a new time, and an accuracy<br />

parameter. Advances the wave function from its current time to the new time by solving the TDSE<br />

with the given operator. Controls the accuracy.<br />

5

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

Saved successfully!

Ooh no, something went wrong!