simply evaluate function or derivative at point x
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_sBase), | intent(in) | :: | sf |
self |
||
| real(kind=wp), | intent(in) | :: | x |
point positions in [0,1] |
||
| integer, | intent(in) | :: | deriv |
derivative (=0: solution) |
||
| real(kind=wp), | intent(in) | :: | DOFs(:) |
array of all degrees of freedom |
FUNCTION sBase_evalDOF_s(sf,x,deriv,DOFs) RESULT(y) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(t_sbase), INTENT(IN ) :: sf !! self REAL(wp) , INTENT(IN ) :: x !! point positions in [0,1] INTEGER , INTENT(IN ) :: deriv !! derivative (=0: solution) REAL(wp) , INTENT(IN ) :: DOFs(:) !! array of all degrees of freedom !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES REAL(wp) :: y !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES INTEGER :: iElem REAL(wp) :: base_x(0:sf%deg) !=================================================================================================================================== IF(SIZE(DOFs,1).NE.sf%nBase) CALL abort(__STAMP__, & 'nDOF not correct when calling sBase_evalDOF_s') CALL sf%eval(x,deriv,iElem,base_x) y=sf%evalDOF_base(iElem,base_x,DOFs) END FUNCTION sbase_evalDOF_s