This module provides the functionality to split Legendre polynomials into a left and right subinterval with transformed coordinates.
The original polynomial is defined on the interval [-1,1] and the two new polynomial representations are computed in the intervals [-1,0] and [0,1] but in the changed coordinate system, with the interval [-1,1] for each. Thus, if we refer to the coordinates in the original (coarse) element as x and to the respective coordinates in the two halfed elements as xi_left and xi_right, we compute the modal representation of the original Legendre polynomial series under these transformations:
This is needed when refining elements.
Compute the transformation matrix for a projection to the left and right half-interval of Legendre polynomials for the given maximal number of modes.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nModes | The maximal number of modes to compute the transformation for. The resulting matrix v will be max_modes x max_modes large and can be used for the transformation of all polynomials with up to this many modes. |
Coefficient alpha from the recursive formulation of Legendre polynomials, for the Legendre mode 'mode'.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | mode | The Legendre mode to compute for. |
Coefficient beta from the recursive formulation of Legendre polynomials, for the Legendre mode 'mode'.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | mode | The Legendre mode to compute for. |
Quotient of two alpha values.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | denominator | Legendre mode of the to use in the denominator. |
||
integer, | intent(in) | :: | numerator | Legendre mode of the to use in the numeratorr. |
Prodcut of alpha(numerator) * beta(denominator) / alpha(denominator) as needed by the Clenshaw algorithm in ply_split_legendre_matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | denominator | Legendre mode for the in the denominator and the . |
||
integer, | intent(in) | :: | numerator | Legendre mode for the in the numerator. |
A small testing routine to check the functions of this module.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(out) | :: | success | Indication whether the tests were completed successfully. |