From: Ulf L. <ulf...@de...> - 2010-10-20 07:57:00
|
On Wed, 2010-10-20 at 10:35 +0800, wanglei365x wrote: > hello, > i am one of the wavepacket-users, i am confusing about the following > questions: Great, feedback. :) > what does the variable 'hamilt.truncate' mean, why we need it, and how > to decide it? The variable used to be more central, and is admittedly hard to follow in the code flow. However, it still has two uses: 1. Less important: When plotting, in the absence of other parameters, it is used to select some energy ranges for the plot. However, there are other variables nowadays, which are not really documented and sometimes do the same (making developing note). 2. For the Chebychev propagator to converge, all eigenvalues of the Hamiltonian must be in a finite range [min,max]. Furthermore, the propagator is faster (allows larger time steps with the same accuracy and cost) the smaller the range delta = max-min is. In this case, hamilt.truncate.{min|max} is used to truncate the potential and kinetic energy grids so that they are guaranteed to have eigenvalues in the range [min,max] (potentials) or [0,delta] (kinetic energy). Then the bounds are added to give a worst case estimate of the smallest and largest eigenvalue of the total Hamiltonian (stored in hamilt.{min| max}), which you can override if you know better. If you normally use the split operator and do not care too much about the plots (or fiddle around with them using plots.pot.{min|max}) then you can ignore this variable. If you set it, set it such that the important part of the potential and kinetic energy is safely within the boundaries. Ulf |