evaluate all modes at a list of interpolation points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_fBase), | intent(in) | :: | sf |
self |
||
| integer, | intent(in) | :: | np |
number of points to be evaluated |
||
| real(kind=wp), | intent(in) | :: | xn(2,1:np) |
input coordinate theta,zeta in [0,2pi]^2 |
||
| integer, | intent(in) | :: | deriv |
=0: base, =2: dthet , =3: dzeta |
||
| real(kind=wp), | intent(in) | :: | DOFs(:) |
array of all modes |
FUNCTION fBase_evalDOF_xn(sf,np,xn,deriv,DOFs) RESULT(y) ! MODULES IMPLICIT NONE ! INPUT VARIABLES -------------------------! CLASS(t_fBase), INTENT(IN ) :: sf !! self INTEGER , INTENT(IN ) :: np !! number of points to be evaluated REAL(wp) , INTENT(IN ) :: xn(2,1:np) !! input coordinate theta,zeta in [0,2pi]^2 INTEGER , INTENT(IN ) :: deriv !! =0: base, =2: dthet , =3: dzeta REAL(wp) , INTENT(IN ) :: DOFs(:) !! array of all modes ! OUTPUT VARIABLES -------------------------! REAL(wp) :: y(1:np) ! LOCAL VARIABLES -------------------------! REAL(wp) :: base_xn(1:np,1:sf%modes) ! CODE --------------------------------------------------------------------------------------------------------------------------! IF(SIZE(DOFs,1).NE.sf%modes) CALL abort(__STAMP__, & 'nDOF not correct when calling fBase_evalDOF_x' ) base_xn=sf%eval_xn(deriv,np,xn) __MATVEC_N(y,base_xn,DOFs) END FUNCTION fBase_evalDOF_xn