simply evaluate function with a base or base derivative evaluated at a point and its corresponding iElem use together with sBase_eval(x) => iElem,base
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_sBase), | intent(in) | :: | sf |
self |
||
| integer, | intent(in) | :: | iElem |
element where evaluation point |
||
| real(kind=wp), | intent(in) | :: | base_x(0:sf%deg) |
evaluation of base or its derivative in element iElem at a point position |
||
| real(kind=wp), | intent(in) | :: | DOFs(:) |
degrees of freedom |
FUNCTION sBase_evalDOF_base(sf ,iElem,base_x,DOFs) RESULT(y) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(t_sbase), INTENT(IN ) :: sf !! self INTEGER , INTENT(IN ) :: iElem !! element where evaluation point REAL(wp) , INTENT(IN ) :: base_x(0:sf%deg) !! evaluation of base or its derivative in element iElem at a point position REAL(wp) , INTENT(IN ) :: DOFs(:) !! degrees of freedom !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES REAL(wp) :: y !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES !=================================================================================================================================== IF(SIZE(DOFs,1).NE.sf%nBase) CALL abort(__STAMP__, & 'nDOF not correct when calling sBase_evalDOF_base') ASSOCIATE(j=>sf%base_offset(iElem)) y = SUM(DOFs(j:j+sf%deg)*base_x) END ASSOCIATE END FUNCTION sbase_evalDOF_base