[Trilinos-Users] Anasazi: Matrix exponential for time evolution ?

Wim Vanroose vanroose at gmail.com
Thu Mar 25 02:15:53 MDT 2010


Dear David,

There is no off the shelf code for that problem in trilinos but it has
all the building block you need.  Note that here is something like
expokit  (http://www.maths.uq.edu.au/expokit/) that you can use ---but
this is not in parallel.

An important thing for the Schrodinger equation is that you need an
integration scheme that preserves
the norm, since you eventually want to calculate some reaction rates
at the end of your time integration.
And if your integration scheme eats away probability you'll end up
with the wrong reaction rates.

We have played with various schemes such as  implicit-explicit,
exponential time differencing, etc. They work efficiently
but they eat away probability.      Our conclusion from that exercise
was to use plain Crank-Nicholson and use an efficient preconditioning
to solve the implicit step.
This can be build with the building blocks in Trilinos.

An other good reference on time integration for the Schrodinger
equation is the book by Lubich: From quantum to classical molecular
dynamics: reduced models and numerical methods

Best Regards,
Wim Vanroose.



On Wed, Mar 24, 2010 at 22:46, David Hochstuhl <Davidhochstuhl at web.de> wrote:
>
> Hello,
>
>
>
> I have not only a single question but rather need a whole algorithm...lets start:
>
>
>
> I am trying to propagate the Schrödinger equation in time,
>
> i d/dt C = H(t) C
>
> where H is a sparse matrix.
>
>
>
> The initial state to this propagation was found by solving the time-independent Schrödinger equation
>
> H C = E C
>
> with Anasazi.
>
>
>
>
>
> Ok, for the time evolution, I basically need to perform the following steps (or a combination of the two):
>
>
>
> (i) Add a time-dependent pertubation D(t) to H,
>
>      i.e. H(t) = H + D(t)
>
>     (D is for instance the action of an electromagnetic field
>
>
>
> (ii) For a given state C(t), apply the matrix exponential of -I*H(t) to obtain C(t+dt)
>
>       C(t+dt) = exp(-I*H(t)*dt) C(t)
>
>
>
>
>
> This can be done for instance with a simple implementation of the Lanczos algorithm, that people
>
> usually call "short iterative Lanczos". However, the Anasazi solvers are of course much better than my
>
> hand-written Lanczos agorithm. So, is there any way to perform the above procedure in an efficient way.
>
>
>
> I thought about it yet, but I didn't find an efficient solution, and
>
> before I start coding I wanted to hear what the trilinos cracks mean.
>
> so, thanks in advance,
>
>
>
> David
>
>
>
>
>
>
> ___________________________________________________________
> GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT!
> Jetzt freischalten unter http://movieflat.web.de
>
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users



--
Wim Vanroose,  Nachtegaallaan 55, B-2660 Hoboken (Antwerpen). Belgium.
Tel: +32 3 230 25 71 Mobile: +32 473 247 263




More information about the Trilinos-Users mailing list