You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+23-1Lines changed: 23 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,36 @@
1
1
# Changelog
2
2
3
+
## [0.5.0]
4
+
5
+
### Added
6
+
7
+
- A NFT routine fnft_manakovv for the Manakov equation with vanishing boundaries was added (continuous spectrum only).
8
+
- The periodic NFT routine fnft_nsep now also supports pure Newton refinement.
9
+
- The routine fnft_kdvv now can now also compute the discrete spectrum. To locate the bound states, either Newton's method or a grid search with additional Newton refinements are available.
10
+
- The slow scattering methods for AKNS-type systems now include a normalization procedure to deal with numerical overflow (enabled by default).
11
+
- The routine fnft__kdv_finvscatter has been added. The plan is to later use it for a fast inverse KdV NFT.
12
+
13
+
### Changed
14
+
15
+
- New criteria for stopping Newton iteration in fnft_nsep.
16
+
- Simplified some tests to reduce run times.
17
+
- The code for AKNS scattering has been overhauled.
18
+
19
+
### Fixed
20
+
21
+
- Several memory leaks have been fixed.
22
+
3
23
## [0.4.1] -- 2020-07-13
4
24
5
25
### Changed
6
26
7
27
- Number of samples for fnft_nsep again has to be a power of two.
28
+
- misc_resample no longer issues a warning when the signal appears to be undersampled. This gave the wrong impression that CFx_y discrizations suffer more in such scenarios than the other ones, which do not use this routine.
8
29
9
30
### Fixed
10
31
11
-
- misc_downsample could return incorrect values for first_last_index[1]
32
+
- misc_downsample could return incorrect values for first_last_index[1].
33
+
- Some errors in fnft_nsev become meaningless when bound_states==NULL and should not be risen in that case.
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -118,3 +118,4 @@ The algorithms in FNFT utilize ideas from the following references. More informa
118
118
- P. J. Prins and S. Wahls, ["Soliton Phase Shift Calculation for the Korteweg–De Vries Equation"](https://doi.org/10.1109/ACCESS.2019.2932256), IEEE Access, vol. 7, pp. 122914--122930, July 2019.
119
119
- S. Medvedev, I. Vaseva, I. Chekhovskoy and M. Fedoruk, ["Exponential fourth order schemes for direct Zakharov-Shabat problem"](https://doi.org/10.1364/OE.377140), Optics Express, vol. 28, pp. 20--39, 2020.
120
120
- J. Mertsching, ["Quasiperiodie Solutions of the Nonlinear Schroedinger Equation"](https://doi.org/10.1002/prop.2190350704), Fortschritte der Physik, vol. 35, pp. 519--536, 1987.
121
+
- L. de Vries, ["Fast Numerical Nonlinear Fourier Transform Algorithms for the Manakov Equation"](http://resolver.tudelft.nl/uuid:0276e693-3408-4472-9749-b754c2114183"), Master thesis, TU Delft, 2021.
* where \f$ h:= \sqrt{c \max_t q(t)} / (M-1)\f$, where \f$ M=1000\f$ and
58
-
* \f$ c=1\f$ for all second order discretizations, `fnft_kdv_discretization_4SPLIT4A'/'B'('_VANILLA'), and `fnft_kdv_discretization_CF4_2`(`_VANILLA`); \f$ c \f$ is approximately 2 for
59
-
* other discretizations. The sign changes of \f$ a(\xi) \f$ on this grid are used as initial
57
+
* where \f$ h:= \sqrt{c \max_t q(t)} / (M-1)\f$, where \f$ c=1\f$ for all second order discretizations,
58
+
* `fnft_kdv_discretization_4SPLIT4A'/'B'('_VANILLA'), and `fnft_kdv_discretization_CF4_2`(`_VANILLA`);
59
+
* \f$ c \f$ is approximately 2 for other discretizations. The constant \f$ M \f$ is chosen
60
+
* such that the distance between the neighboring grid points is not larger than the
61
+
* parameter \link fnft_kdvv_opts_t::grid_spacing \endlink. This parameter therefore must
62
+
* be set if this algorithm is used.
63
+
* The sign changes of \f$ a(\xi) \f$ on this grid are used as initial
60
64
* guesses for the bound states, which are then refined as in `fnft_kdvv_bsloc_NEWTON`.
61
65
*/
62
66
typedefenum {
@@ -119,7 +123,7 @@ typedef enum {
119
123
* @var fnft_kdvv_opts_t::niter
120
124
* Number of Newton iterations to be carried out when either the
121
125
* fnft_kdvv_bsloc_NEWTON, or the fnft_kdvv_bsloc_GRIDSEARCH_AND_REFINE method
122
-
* is used.
126
+
* is used. Can be zero or positive.
123
127
*
124
128
* @var fnft_kdvv_opts_t::discspec_type
125
129
* Controls how \link fnft_kdvv \endlink fills the array
@@ -141,7 +145,7 @@ typedef enum {
141
145
* Controls which discretization is applied to the continuous-time Zakharov-
142
146
* Shabat scattering problem. See \link fnft_kdv_discretization_t \endlink.\n\n
* The \f$b(\lambda)\f$ are calculated using the criterion from
116
122
* Prins and Wahls, <a href="https://doi.org/10.1109/ACCESS.2019.2932256">"
117
123
* Soliton Phase Shift Calculation for the Korteweg–De Vries Equation,"</a>.
124
+
* @param[in,out] Ws Pass an array of size K. Upon exit, it contains scaling factors that
125
+
* arise due to an internal normalization of the scattering process (to deal with potential
126
+
* overflow issues). The returned values for a and a_prime still have to be multiplied with
127
+
* corresponding power of two (i.e. POW(2, Ws[i])) to obtain the final values. Note
128
+
* that this is not required for the values of b. No normalization is carried out if NULL
129
+
* is passed.
118
130
* @param[in] discretization The type of discretization to be used. Should be of type
119
131
* \link fnft__akns_discretization_t \endlink. Not all akns_discretization_t discretizations are supported.
120
132
* Check \link fnft_nse_discretization_t \endlink for list of supported types.
121
133
* @param[in] PDE The partial differential equation for which the calculation
122
134
* has to be done. Should be of type \link fnft__akns_pde_t \endlink.
123
-
* @param[in] vanilla_flag For calculations for the KdV equation, pass 1 for the original mapping to the AKNS framework with r=-1. Pass 0 for the alternative mapping with q=-1. Unused for NSE.
135
+
* @param[in] vanilla_flag For calculations for the KdV equation, pass 1 for the
136
+
* original mapping to the AKNS framework with r=-1. Pass 0 for the alternative
137
+
* mapping with q=-1. Unused for NSE.
124
138
* @param[in] skip_b_flag If set to 1 the routine will not compute \f$b(\lambda)\f$.
125
139
* @return \link FNFT_SUCCESS \endlink or one of the FNFT_EC_... error codes
0 commit comments