FNFT
|
Properties of the discretizations for the Korteweg-de Vries equation. More...
Go to the source code of this file.
Functions | |
FNFT_UINT | fnft__akns_discretization_degree (fnft__akns_discretization_t discretization) |
This routine returns the max degree d of the polynomials in a single scattering matrix or zero if the discretization is unknown. More... | |
FNFT_REAL | fnft__akns_discretization_boundary_coeff (fnft__akns_discretization_t discretization) |
This routine returns the boundary coefficient based on the discretization. More... | |
FNFT_UINT | fnft__akns_discretization_upsampling_factor (fnft__akns_discretization_t discretization) |
This routine returns the scaling for effective number of samples based on the discretization. More... | |
FNFT_UINT | fnft__akns_discretization_method_order (fnft__akns_discretization_t discretization) |
This routine returns the order of the method based on the discretization. More... | |
FNFT_INT | fnft__akns_discretization_lambda_to_z (const FNFT_UINT n, const FNFT_REAL eps_t, FNFT_COMPLEX *const vals, fnft__akns_discretization_t discretization) |
This routine maps \(\lambda\) from continuous-time domain to \(z\) in the discrete-time domain based on the discretization. More... | |
FNFT_INT | fnft__akns_discretization_z_to_lambda (const FNFT_UINT n, const FNFT_REAL eps_t, FNFT_COMPLEX *const vals, fnft__akns_discretization_t discretization) |
This routine maps \(z\) from the discrete-time domain to \(\lambda\) in the continuous-time domain based on the discretization. More... | |
FNFT_INT | fnft__akns_discretization_method_weights (FNFT_COMPLEX **weights_ptr, fnft__akns_discretization_t akns_discretization) |
This routine computes various weights required by some methods based on the discretization. More... | |
Properties of the discretizations for the Korteweg-de Vries equation.
FNFT_REAL fnft__akns_discretization_boundary_coeff | ( | fnft__akns_discretization_t | discretization | ) |
This routine returns the boundary coefficient based on the discretization.
The boundary coefficient is the fraction of the step size that a discretized potential extends beyond the last sample. This routine returns this value based on the discretization of type fnft__akns_discretization_t.
[in] | discretization | The type of discretization to be used. Should be of type fnft__akns_discretization_t. |
FNFT_UINT fnft__akns_discretization_degree | ( | fnft__akns_discretization_t | discretization | ) |
This routine returns the max degree d of the polynomials in a single scattering matrix or zero if the discretization is unknown.
It defines the step size of the frequency grid \(z = \text{e}^{2j\xi\epsilon_t d}\) based on the discretization type.
[in] | discretization | The type of discretization to be used. Should be of type fnft_kdv_discretization_t. |
FNFT_INT fnft__akns_discretization_lambda_to_z | ( | const FNFT_UINT | n, |
const FNFT_REAL | eps_t, | ||
FNFT_COMPLEX *const | vals, | ||
fnft__akns_discretization_t | discretization | ||
) |
This routine maps \(\lambda\) from continuous-time domain to \(z\) in the discrete-time domain based on the discretization.
This routine maps continuous-time domain value \(\lambda\) to discrete-time domain value \(z = e^{2j \lambda \epsilon_t degree1step}\), where degree1step is based on the discretization of type fnft__akns_discretization_t.
[in] | n | Number of values to be mapped. |
[in] | eps_t | Real-valued discretization step-size. |
[in,out] | vals | Pointer to location of first element of array containing complex-valued continuous-time domain spectral parameter \(\lambda\). The values are replaced with discrete-time domain values \(z\). |
[in] | discretization | Discretization of type fnft__akns_discretization_t. |
FNFT_UINT fnft__akns_discretization_method_order | ( | fnft__akns_discretization_t | discretization | ) |
This routine returns the order of the method based on the discretization.
Different numerical methods have different orders of accuray. This routine returns the order of the order based on the discretization of type fnft__akns_discretization_t. When the step-size of the signal samples is reduced by a factor \(s\), the error in the computed values is expected to decrease by a factor \(s^{order}\).
[in] | discretization | The type of discretization to be used. Should be of type fnft__akns_discretization_t. |
FNFT_INT fnft__akns_discretization_method_weights | ( | FNFT_COMPLEX ** | weights_ptr, |
fnft__akns_discretization_t | akns_discretization | ||
) |
This routine computes various weights required by some methods based on the discretization.
This routing computes the special weights required for the higher-order methods CF \(^{[4]}_2\), CF \(^{[4]}_3\), CF \(^{[5]}_3\) and CF \(^{[6]}_4\). The weights are used in fnft__nse_discretization_preprocess_signal, fnft__akns_scatter_matrix and . The weights for CF \(^{[4]}_3\) are taken from Alvermann and Fehske (Journal of Computational Phys. 230, 2011) and the weights for the others are from Blanes, Casas and Thalhammer(Computer Phys. Comm. 220, 2017). The weights are mentioned as matrices in the references. This routine returns them in row-major order.
[in,out] | weights_ptr | Pointer to the starting location of weights. |
[in] | akns_discretization | Discretization of type fnft__akns_discretization_t. |
FNFT_UINT fnft__akns_discretization_upsampling_factor | ( | fnft__akns_discretization_t | discretization | ) |
This routine returns the scaling for effective number of samples based on the discretization.
Higher order methods use more than one sample per integration step. This routine returns the value upsampling_factor based on the discretization of type fnft__akns_discretization_t. D_effective = upsampling_factor * D.
[in] | discretization | The type of discretization to be used. Should be of type fnft__akns_discretization_t. |
FNFT_INT fnft__akns_discretization_z_to_lambda | ( | const FNFT_UINT | n, |
const FNFT_REAL | eps_t, | ||
FNFT_COMPLEX *const | vals, | ||
fnft__akns_discretization_t | discretization | ||
) |
This routine maps \(z\) from the discrete-time domain to \(\lambda\) in the continuous-time domain based on the discretization.
This routine maps discrete-time domain value \(z\) to continuous-time domain value \(\lambda = degree1step\log(z)/(2j\epsilon_t)\), where degree1step is based on the discretization of type fnft__akns_discretization_t.
[in] | n | Number of values to be mapped. |
[in] | eps_t | Real-valued discretization step-size. |
[in,out] | vals | Pointer to location of first element of array containing complex-valued discrete-time domain spectral parameter \(z\). The values are replaced with continuous-time domain values \(\lambda\). |
[in] | discretization | Discretization of type fnft__akns_discretization_t. |