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

Baker, Christopher G. bakercg at ornl.gov
Thu Mar 25 07:15:13 MDT 2010


David,

The BlockKrylovSchur eigensolver in Anasazi can be queried for its generated Krylov basis and Hessenberg matrix. You would still be responsible for computing the exponential of the (small, dense) Hessenberg matrix, but the options available would be greater. If the matrix is symmetric/Hermitian, this solver will use a Lanczos iteration and return a symmetric/Hermitian tridiagonal matrix instead of a Hessenberg matrix; however, my recollection is that BKS uses full orthogonalization Lanczos instead of a short recurrence, for the purpose of robustness. You have the ability to specify the initial basis vector, which I assume is required to most-efficiently apply exp(A) to a vector x_0 via a Krylov method (maybe a random vectors works also, I have little familiarity with the Krylov-exponential techniques).

One potential difficulty regards the sophistication of the stopping conditions for the Krylov-exponential methods. It may be possible to encoded any such conditions into an Anasazi StatusTest that could be passed to the BKS solver. If you are interested in pursuing this, let me or the other Anasazi developers (anasazi-users at software.sandia.gov) know, and we can discuss it further.

Chris


On 3/25/10 8:35 AM, "David Hochstuhl" <Davidhochstuhl at web.de> wrote:

Thanks for your answers,

yes, I know this "19 dubious way ..." paper, and I know that expokit uses Krylov subspace techniques
to calculate the sparse-matrix exponential times a vector.

I also thought about Crank-Nicolson, but to me it seemed that it wouldn't pay the effort...as a second order scheme.
But maybe I have to think again on that...


The short iterative Lanczos propagator basically features the properties you've mentioned:
its norm conserving and thus stable, and it it a high order method (depending on the size of the Kryolv space).


Well, my hope was, to build something similar basing on Anasazi, but if it isn't possible in an easy way I
shall rely on my hand-written Lanczos code.

I would be glad for further ideas,
thanks
David





-----Ursprüngliche Nachricht-----
Von: Wim Vanroose <vanroose at gmail.com>
Gesendet: 25.03.2010 09:15:53
An: David Hochstuhl <Davidhochstuhl at web.de>
Betreff: Re: [Trilinos-Users] Anasazi: Matrix exponential for time evolution ?

>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
>
>
>_______________________________________________
>Trilinos-Users mailing list
>Trilinos-Users at software.sandia.gov
>http://software.sandia.gov/mailman/listinfo/trilinos-users
>
___________________________________________________________
WEB.DE DSL: Internet, Telefon und Entertainment für nur 19,99 EUR/mtl.!
http://produkte.web.de/go/02/


_______________________________________________
Trilinos-Users mailing list
Trilinos-Users at software.sandia.gov
http://software.sandia.gov/mailman/listinfo/trilinos-users





More information about the Trilinos-Users mailing list