Re: Schroedinger Equation and InterCall
- To: mathgroup at yoda.physics.unc.edu
- Subject: Re: Schroedinger Equation and InterCall
- From: luciole!babar at uunet.uu.net (Jean-Pierre Hebert)
- Date: Thu, 4 Mar 93 23:34:18 PST
> From uunet!yoda.physics.unc.edu!mathgroup-adm Tue Mar 2 23:11:17 1993
> Subject: Schroedinger Equation and InterCall
> To: mathgroup at yoda.physics.unc.edu
> Content-Length: 2461
> X-Lines: 54
>
> Dear Mathgroup,
>
> >Date: 20 Feb 1993 21:45:04 -0600
> >From: gmk at pegasos.ccsr.uiuc.edu (Gottfried Mayer-Kress)
> >Subject: MathLink and Integration of Schroedinger Equation
> >
> >We want to use mathlink to integrate the one-dimensional
> >time-dependent Schroedinger equation with arbitrary potential.
> >We think about using the numerical recipe algorithm (pg 851 of the
> >most recent edition). Has anybody implemented that or can recommend
> >some other package?
>
> I've dusted off one of my old Crank-Nicholson solvers (written in fortran)
> and adjusted it so that it can solve Schroedinger-type equations of the form:
> I*D[psi,t] == -D[psi,{x,2}] + V[x,t]*psi
> where psi[x,t], a<x<b, t>0 is the complex wave-function, and
> the equation is solved subject to some initial condition:
> psi[x,0]==psi0[x] for a<x<b,
> and some linear time-dependent boundary conditions, ie.
> a0[t]*psi[a,t]+a1[t]*psi'[a,t] == ac[t],
> b0[t]*psi[b,t]+b1[t]*psi'[b,t] == bc[t].
>
> By importing the fortran subroutine (named SCHROED) into Mathematica using
> InterCall I was able to do a few experiments involving shooting a wave-packet
> at a potential barrier, and watching an animation of the packet being
> mostly reflected but also partially tunnelling through the wall.
>
> I could supply the potential function V[x,t] (required by the fortran
> SCHROED routine) by writing it as a Mathematica function which gave me
> a lot of flexibility. Typically V=Function[{x,t}, If[x<4 || x>6,0,40]]
> for a potential wall, but I could set it to any Mathematica expression.
>
> Also the initial condition for a wave-packet was computed in Mathematica
> too. The fortran subroutine SCHROED just advanced the solution an amount
> dt of time per call, and so I simply called the routine inside a Mathematica
> loop and did a ListPlot of the evolution.
>
> I used 400 points to represent the solution, and the rendering of each plot
> was the slow part. Calling SCHROED from within Mathematica using InterCall
> was very fast.
>
> If anyone is interested in the details,
I am... thank you !
jean-pierre
I'll put a Notebook at MathSource
> about how easy it was to do using the InterCall package.
>
> Terry.
>
> ###################################################################
> Dr Terry Robb Email: tdr at vaxc.cc.monash.edu.au
> Department of Mathematics Phone: +61 (3) 565-5666
> Monash University Fax : +61 (3) 565-4403
> Clayton 3168, Melbourne, AUSTRALIA.
> ###################################################################
>
>
>