evaluate all modes at all interpolation points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_fBase), | intent(in) | :: | sf |
self |
||
| integer, | intent(in) | :: | deriv |
=0: base, =2: dthet , =3: dzeta |
||
| real(kind=wp), | intent(in) | :: | DOFs(:) |
array of all modes |
FUNCTION fBase_evalDOF_IP(sf,deriv,DOFs) RESULT(y_IP) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(t_fBase), INTENT(IN ) :: sf !! self INTEGER , INTENT(IN ) :: deriv !! =0: base, =2: dthet , =3: dzeta REAL(wp) , INTENT(IN ) :: DOFs(:) !! array of all modes !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES REAL(wp) :: y_IP(sf%mn_IP) !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES !=================================================================================================================================== IF(SIZE(DOFs,1).NE.sf%modes) CALL abort(__STAMP__, & 'nDOF not correct when calling fBase_evalDOF_IP' ) SELECT CASE(deriv) CASE(0) !y_IP=MATMUL(sf%base_IP(:,:),DOFs(:)) __MATVEC_N(y_IP,sf%base_IP,DOFs) CASE(DERIV_THET) !y_IP=MATMUL(sf%base_dthet_IP(:,:),DOFs(:)) __MATVEC_N(y_IP,sf%base_dthet_IP,DOFs) CASE(DERIV_ZETA) !y_IP=MATMUL(sf%base_dzeta_IP(:,:),DOFs(:)) __MATVEC_N(y_IP,sf%base_dzeta_IP,DOFs) CASE DEFAULT !for other derivatives, resort to not precomputed/ explicit computation: y_IP = sf%evalDOF_xn(sf%mn_IP,sf%x_IP,deriv,DOFs) END SELECT END FUNCTION fBase_evalDOF_IP