sBase_evalDOF_base Function

private function sBase_evalDOF_base(sf, iElem, base_x, DOFs) result(y)

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 Bound

t_sBase

Arguments

Type IntentOptional 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

Return Value real(kind=wp)


Called by

proc~~sbase_evaldof_base~~CalledByGraph proc~sbase_evaldof_base t_sBase%sBase_evalDOF_base proc~sbase_evaldof_s t_sBase%sBase_evalDOF_s proc~sbase_evaldof_s->proc~sbase_evaldof_base proc~sbase_test sBase_test proc~sbase_test->proc~sbase_evaldof_base proc~sbase_test->proc~sbase_evaldof_s proc~sbase_new sBase_new proc~sbase_test->proc~sbase_new proc~base_evaldof_x t_base%base_evalDOF_x proc~base_evaldof_x->proc~sbase_evaldof_s proc~eval_prof_r eval_prof_r proc~eval_prof_r->proc~sbase_evaldof_s proc~get_field Get_Field proc~get_field->proc~sbase_evaldof_s proc~gvec_to_jorek_prepare gvec_to_jorek_prepare proc~gvec_to_jorek_prepare->proc~sbase_evaldof_s proc~gvec_to_jorek_prepare->proc~get_field proc~lambda_solve Lambda_solve proc~lambda_solve->proc~sbase_evaldof_s proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->proc~sbase_evaldof_s proc~readstatefilefromascii->proc~sbase_new proc~base_new Base_new proc~readstatefilefromascii->proc~base_new proc~sbase_init t_sBase%sBase_init proc~sbase_init->proc~sbase_test interface~readstate ReadState interface~readstate->proc~readstatefilefromascii proc~eval_iota_r eval_iota_r proc~eval_iota_r->proc~eval_prof_r proc~eval_phi_r eval_phi_r proc~eval_phi_r->proc~eval_prof_r proc~eval_phiprime_r eval_phiPrime_r proc~eval_phiprime_r->proc~eval_prof_r proc~eval_pres_r eval_pres_r proc~eval_pres_r->proc~eval_prof_r proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->proc~lambda_solve proc~sbase_copy t_sBase%sBase_copy proc~sbase_copy->proc~sbase_init proc~sbase_new->proc~sbase_init proc~base_copy t_base%base_copy proc~base_copy->proc~sbase_copy proc~base_new->proc~sbase_new proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->interface~readstate proc~init_base Init_Base proc~init_gvec_to_jorek->proc~init_base proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~init_la_from_solution proc~restartfromstate RestartFromState proc~restartfromstate->interface~readstate proc~init_base->proc~base_new proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~base_new proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->proc~base_new proc~transform_sfl_new transform_sfl_new proc~transform_sfl_new->proc~transform_sfl_init

Source Code

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