FNFT
fnft__nse_scatter.h
Go to the documentation of this file.
1 /*
2 * This file is part of FNFT.
3 *
4 * FNFT is free software; you can redistribute it and/or
5 * modify it under the terms of the version 2 of the GNU General
6 * Public License as published by the Free Software Foundation.
7 *
8 * FNFT is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Contributors:
17 * Sander Wahls (TU Delft) 2017-2018.
18 * Shrinivas Chimmalgi (TU Delft) 2017.
19 */
20 
27 #ifndef FNFT__NSE_SCATTER_H
28 #define FNFT__NSE_SCATTER_H
29 
31 #include "fnft__akns_scatter.h"
32 #include <stdio.h>
33 #include "fnft__misc.h"
34 #include <string.h> // for memcpy
35 #include "fnft__errwarn.h"
36 
77  FNFT_COMPLEX * r, FNFT_REAL const *const T, FNFT_UINT K,
78  FNFT_COMPLEX *bound_states, FNFT_COMPLEX *a_vals,
79  FNFT_COMPLEX *aprime_vals, FNFT_COMPLEX *b,
80  fnft_nse_discretization_t discretization, FNFT_UINT skip_b_flag);
81 
120  const FNFT_REAL eps_t, const FNFT_INT kappa, const FNFT_UINT K,
121  FNFT_COMPLEX const * const lambda,
122  FNFT_COMPLEX * const result, fnft_nse_discretization_t discretization,
123  const FNFT_UINT derivative_flag);
124 
125 #ifdef FNFT_ENABLE_SHORT_NAMES
126 #define nse_scatter_bound_states(...) fnft__nse_scatter_bound_states(__VA_ARGS__)
127 #define nse_scatter_matrix(...) fnft__nse_scatter_matrix(__VA_ARGS__)
128 #endif
129 
130 #endif
fnft__nse_scatter_bound_states
FNFT_INT fnft__nse_scatter_bound_states(const FNFT_UINT D, FNFT_COMPLEX const *const q, FNFT_COMPLEX *r, FNFT_REAL const *const T, FNFT_UINT K, FNFT_COMPLEX *bound_states, FNFT_COMPLEX *a_vals, FNFT_COMPLEX *aprime_vals, FNFT_COMPLEX *b, fnft_nse_discretization_t discretization, FNFT_UINT skip_b_flag)
Computes , and for complex values assuming that they are very close to the true bound-states.
FNFT_INT
int32_t FNFT_INT
Definition: fnft_numtypes.h:56
FNFT_UINT
size_t FNFT_UINT
Definition: fnft_numtypes.h:62
fnft_nse_discretization_t
fnft_nse_discretization_t
Enum that specifies discretizations and methods used to compute nonlinear Fourier transforms for the ...
Definition: fnft_nse_discretization_t.h:104
fnft__errwarn.h
fnft__akns_scatter.h
Slow forward scattering.
fnft__misc.h
Miscellaneous functions used in the FNFT library.
FNFT_COMPLEX
double complex FNFT_COMPLEX
Definition: fnft_numtypes.h:47
fnft__nse_scatter_matrix
FNFT_INT fnft__nse_scatter_matrix(const FNFT_UINT D, FNFT_COMPLEX const *const q, FNFT_COMPLEX *r, const FNFT_REAL eps_t, const FNFT_INT kappa, const FNFT_UINT K, FNFT_COMPLEX const *const lambda, FNFT_COMPLEX *const result, fnft_nse_discretization_t discretization, const FNFT_UINT derivative_flag)
Computes the scattering matrix and its derivative.
FNFT_REAL
double FNFT_REAL
Definition: fnft_numtypes.h:40
fnft__nse_discretization.h
Properties of the discretizations for the nonlinear Schroedinger equation.