sBase_evalDOF2D_s Function

private function sBase_evalDOF2D_s(sf, x, nd, deriv, DOFs) result(y)

simply evaluate function or derivative at point x, for multiple DOF vectors

Type Bound

t_sBase

Arguments

Type IntentOptional Attributes Name
class(t_sBase), intent(in) :: sf

self

real(kind=wp), intent(in) :: x

point positions in [0,1]

integer, intent(in) :: nd

number of DOF vectors

integer, intent(in) :: deriv

derivative (=0: solution)

real(kind=wp), intent(in) :: DOFs(1:sf%nBase,1:nd)

Return Value real(kind=wp), (1:nd)


Calls

proc~~sbase_evaldof2d_s~~CallsGraph proc~sbase_evaldof2d_s t_sBase%sBase_evalDOF2D_s __matvec_t __matvec_t proc~sbase_evaldof2d_s->__matvec_t __perfoff __perfoff proc~sbase_evaldof2d_s->__perfoff __perfon __perfon proc~sbase_evaldof2d_s->__perfon proc~sbase_eval t_sBase%sBase_eval proc~sbase_evaldof2d_s->proc~sbase_eval eval_basis eval_basis proc~sbase_eval->eval_basis eval_basis_and_n_derivs eval_basis_and_n_derivs proc~sbase_eval->eval_basis_and_n_derivs lagrangeinterpolationpolys lagrangeinterpolationpolys proc~sbase_eval->lagrangeinterpolationpolys proc~sgrid_find_elem t_sGrid%sGrid_find_elem proc~sbase_eval->proc~sgrid_find_elem

Called by

proc~~sbase_evaldof2d_s~~CalledByGraph proc~sbase_evaldof2d_s t_sBase%sBase_evalDOF2D_s proc~buildtransform_sfl t_transform_sfl%BuildTransform_SFL proc~buildtransform_sfl->proc~sbase_evaldof2d_s proc~get_boozer_sinterp t_sfl_boozer%Get_Boozer_sinterp proc~buildtransform_sfl->proc~get_boozer_sinterp proc~transform_angles_3d Transform_Angles_3d proc~buildtransform_sfl->proc~transform_angles_3d proc~transform_angles_sinterp Transform_Angles_sinterp proc~buildtransform_sfl->proc~transform_angles_sinterp proc~evaluate_base_list_stz_all evaluate_base_list_stz_all proc~evaluate_base_list_stz_all->proc~sbase_evaldof2d_s proc~evaluate_base_list_tz evaluate_base_list_tz proc~evaluate_base_list_tz->proc~sbase_evaldof2d_s proc~evaluate_base_list_tz_all evaluate_base_list_tz_all proc~evaluate_base_list_tz_all->proc~sbase_evaldof2d_s proc~evaluate_base_tens evaluate_base_tens proc~evaluate_base_tens->proc~sbase_evaldof2d_s proc~evaluate_base_tens_all evaluate_base_tens_all proc~evaluate_base_tens_all->proc~sbase_evaldof2d_s proc~get_boozer_sinterp->proc~sbase_evaldof2d_s proc~get_field Get_Field proc~get_field->proc~sbase_evaldof2d_s proc~gvec_to_jorek_prepare gvec_to_jorek_prepare proc~gvec_to_jorek_prepare->proc~sbase_evaldof2d_s proc~gvec_to_jorek_prepare->proc~get_field proc~transform_angles_3d->proc~sbase_evaldof2d_s proc~transform_angles_sinterp->proc~sbase_evaldof2d_s proc~get_boozer get_boozer proc~get_boozer->proc~get_boozer_sinterp

Source Code

FUNCTION sBase_evalDOF2D_s(sf,x,nd,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   ) :: nd     !! number of DOF vectors
  INTEGER       , INTENT(IN   ) :: deriv  !! derivative (=0: solution)
  REAL(wp)      , INTENT(IN   ) :: DOFs(1:sf%nBase,1:nd)
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  REAL(wp)                      :: y(1:nd)
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  INTEGER                       :: iElem,j
  REAL(wp)                      :: base_x(0:sf%deg)
!===================================================================================================================================
  __PERFON('eval_dof2d_s')
  CALL sf%eval(x,deriv,iElem,base_x)
  j=sf%base_offset(iElem)
  !y(1:nd) =MATMUL(base_x(0:sf%deg),DOFs(j:j+sf%deg,1:nd))
  __MATVEC_T(y,DOFs(j:j+sf%deg,:),base_x(0:sf%deg))

  __PERFOFF('eval_dof2d_s')
END FUNCTION sbase_evalDOF2D_s