From: <fer...@us...> - 2007-07-29 08:03:17
|
Revision: 3627 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3627&view=rev Author: fer_perez Date: 2007-07-29 01:03:12 -0700 (Sun, 29 Jul 2007) Log Message: ----------- Small optimization. Modified Paths: -------------- trunk/py4science/examples/schrodinger/schrod_fdtd.py Modified: trunk/py4science/examples/schrodinger/schrod_fdtd.py =================================================================== --- trunk/py4science/examples/schrodinger/schrod_fdtd.py 2007-07-29 06:50:34 UTC (rev 3626) +++ trunk/py4science/examples/schrodinger/schrod_fdtd.py 2007-07-29 08:03:12 UTC (rev 3627) @@ -237,22 +237,26 @@ IDX2 = range(2,N) # psi [ k + 1 ] IDX3 = range(0,N-2) # psi [ k - 1 ] -for t in range(0,T+1): +for t in range(T+1): + # Precompute a couple of indexing constants, this speeds up the computation + psi_rPR = psi_r[PR] + psi_iPR = psi_i[PR] + # Apply the update equations. psi_i[FU,IDX1] = psi_i[PA,IDX1] + \ - c1*(psi_r[PR,IDX2] - 2*psi_r[PR,IDX1] + - psi_r[PR,IDX3]) - psi_i[FU] = psi_i[FU] - c2V*psi_r[PR] + c1*(psi_rPR[IDX2] - 2*psi_rPR[IDX1] + + psi_rPR[IDX3]) + psi_i[FU] -= c2V*psi_r[PR] psi_r[FU,IDX1] = psi_r[PA,IDX1] - \ - c1*(psi_i[PR,IDX2] - 2*psi_i[PR,IDX1] + - psi_i[PR,IDX3]) - psi_r[FU] = psi_r[FU] + c2V*psi_i[PR] + c1*(psi_iPR[IDX2] - 2*psi_iPR[IDX1] + + psi_iPR[IDX3]) + psi_r[FU] += c2V*psi_i[PR] # Increment the time steps. PR -> PA and FU -> PR - psi_r[PA] = psi_r[PR] + psi_r[PA] = psi_rPR psi_r[PR] = psi_r[FU] - psi_i[PA] = psi_i[PR] + psi_i[PA] = psi_iPR psi_i[PR] = psi_i[FU] # Only plot after a few iterations to make the simulation run faster. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |