InitializeVandermonde Subroutine

public subroutine InitializeVandermonde(N_In, N_Out, wBary_In, xi_In, xi_Out, Vdm)

Build a 1D Vandermonde matrix using the Lagrange basis functions of degree N_In, evaluated at the interpolation points xi_Out

Arguments

Type IntentOptional 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


Calls

proc~~initializevandermonde~~CallsGraph proc~initializevandermonde InitializeVandermonde interface~lagrangeinterpolationpolys LagrangeInterpolationPolys proc~initializevandermonde->interface~lagrangeinterpolationpolys interface~lagrangeinterpolationpolys->interface~lagrangeinterpolationpolys

Source Code

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