Build a 1D Vandermonde matrix using the Lagrange basis functions of degree N_In, evaluated at the interpolation points xi_Out
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | N_In |
(IN) input polynomial degree |
||
| integer, | intent(in) | :: | N_Out |
(IN) output polynomial degree |
||
| real(kind=wp), | intent(in) | :: | wBary_In(0:N_In) |
(IN) input interpolation weights |
||
| real(kind=wp), | intent(in) | :: | xi_In(0:N_In) |
(IN) input nodal positions [-1,1] |
||
| real(kind=wp), | intent(in) | :: | xi_Out(0:N_Out) |
(IN) outout nodal positions [-1,1] |
||
| real(kind=wp), | intent(out) | :: | Vdm(0:N_Out,0:N_In) |
(OUT) nodal Vandermonde from N_In to N_out |
SUBROUTINE InitializeVandermonde(N_In,N_Out,wBary_In,xi_In,xi_Out,Vdm) ! MODULES IMPLICIT NONE !---------------------------------------------------------------------------------------------------------------------------------- ! INPUT/OUTPUT VARIABLES INTEGER,INTENT(IN) :: N_In !! (IN) input polynomial degree INTEGER,INTENT(IN) :: N_Out !! (IN) output polynomial degree REAL(wp),INTENT(IN) :: xi_In(0:N_In) !! (IN) input nodal positions [-1,1] REAL(wp),INTENT(IN) :: xi_Out(0:N_Out) !! (IN) outout nodal positions [-1,1] REAL(wp),INTENT(IN) :: wBary_In(0:N_In) !! (IN) input interpolation weights REAL(wp),INTENT(OUT) :: Vdm(0:N_Out,0:N_In) !! (OUT) nodal Vandermonde from N_In to N_out !---------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES INTEGER :: iXi !================================================================================================================================== DO iXi=0,N_Out CALL LagrangeInterpolationPolys(xi_Out(iXi),N_In,xi_In,wBary_In,Vdm(iXi,:)) !l(0:N_In) END DO END SUBROUTINE InitializeVandermonde