-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
79 lines (63 loc) · 3.51 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
12. March 2007
Changed the concept of Distribution as a progress of making pyprop
properly multiproc enabled. It is now the Distribution, and not the
Wavefunction which knows how the data is distributed. In practice this
means that all the DistributedRank property of Wavefunction is moved to
DistributedModel, and all GetLocal*() methods on the representations
no longer require the Wavefunction parameter.
31. January 2007
Added support for transformed radial grids. Using variable transforms by
Sørevik, along with chebyshev differentiation, a highly accurate solution
of bound problems can be propagted in the radial direction of spherical
problems, or on the half space R^+.
See the examples/1d/transformedrgid, and examples/spherical/h2+ for
details on how to use the transformed grid representation.
5. January 2007
Added support for spherical coordinates. It is now possible to
use spherical coordinates instead of cartesian. As a part of this
implementation, CombinedRepresentation was introduced. With
combined representation it is possible to use different
representations for different ranks of the wavefunction.
3D Spherical coordinates is implemented using one rank for
the radial part and one rank for the angles. The reason for using
one rank for the angles instead of two, is that when we transform
to spherical harmonics, (l,m) is not a product space of l and m,
but rather a "triangular space". Because it is not possible to
change the rank of the wavefunction during propagation, I decided
it was best to compress theta and phi into one rank, with
theta in the highest stride, and phi in the lowest.
1. December 2006
Rewrite of the propagation model. During the implementation of
spherical coordinates it became obvious that the propagation model
with a momentum_evaluator was not efficient.
It was therefore generalized such that the basic class instantiated
by the user is Problem. A Problem instance uses a config object
to find a subclass of Propagator which knows how to propagate
the wavefunction one timestep.
Suitable propagators has been made for Cartesian,
CartesianMixed, ExponentialFiniteDifference, and Spherical
This means that the "momentum_evaluator = " option in the config file
is no longer used, and should be changed to the appropriate
"propagator = "
27. September 2007
Added partial support for spherical representations. More info
will be added when it is working properly
12. September 2006:
Added support for an alternative to the fourier spectral method for
evaluating the kinetic energy operator p**2. It is now possible to
use a form of finite difference. It is (at least for most examples)
less accurate than the fourier method, but it is much simpler to
parallellize (this is at the present time not implemented however).
The idea is to write up the full hamiltionian using the finite
difference scheme for p**2. In 1D this gives us a tridiagonal
matrix. This matrix is in turn splitted into two block diagonal
matrices (2x2 blocks). It is well known that block diagonal
matrices are trivially diagonalized. This is exploited to find
the exponential of each of the splitted matrices which is used
to propagate the wavefunction.
It is implemented as a special kind of potential evaluator (type
PotentialType.FiniteDifference), which evaluates a dynamic
potential as well as the p**2 operator. Please remove
momentum_evaluator, or set it to None in the config file
when a FiniteDifference potential is used. Otherwise the kinetic
energy will be evaluated twice.