tem_spacetime_for_coord Function

private function tem_spacetime_for_coord(me, coord, time, n) result(res)

This function computes the space time function for a given list of coordinates

Arguments

Type IntentOptional Attributes Name
type(tem_spacetime_fun_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

type(tem_time_type), intent(in) :: time

timer object incl. the current time information

integer, intent(in) :: n

Number of values to return

Return Value real(kind=rk), (n)

return value of the function


Calls

proc~~tem_spacetime_for_coord~~CallsGraph proc~tem_spacetime_for_coord tem_spacetime_for_coord interface~tem_spacetime_lua_for tem_spacetime_lua_for proc~tem_spacetime_for_coord->interface~tem_spacetime_lua_for interface~tem_spatial_for tem_spatial_for proc~tem_spacetime_for_coord->interface~tem_spatial_for proc~tem_abort tem_abort proc~tem_spacetime_for_coord->proc~tem_abort proc~tem_eval_acoustic_pulse tem_eval_acoustic_pulse proc~tem_spacetime_for_coord->proc~tem_eval_acoustic_pulse proc~tem_eval_cylindricalwave tem_eval_cylindricalWave proc~tem_spacetime_for_coord->proc~tem_eval_cylindricalwave proc~tem_eval_miescatter_displz tem_eval_miescatter_displz proc~tem_spacetime_for_coord->proc~tem_eval_miescatter_displz proc~tem_eval_miescatter_magnx tem_eval_miescatter_magnx proc~tem_spacetime_for_coord->proc~tem_eval_miescatter_magnx proc~tem_eval_miescatter_magny tem_eval_miescatter_magny proc~tem_spacetime_for_coord->proc~tem_eval_miescatter_magny proc~tem_polygon_material_movement_multi tem_polygon_material_movement_multi proc~tem_spacetime_for_coord->proc~tem_polygon_material_movement_multi proc~tem_polygon_material_movement_single tem_polygon_material_movement_single proc~tem_spacetime_for_coord->proc~tem_polygon_material_movement_single proc~tem_temporal_for tem_temporal_for proc~tem_spacetime_for_coord->proc~tem_temporal_for proc~tem_spacetime_lua_for_coord tem_spacetime_lua_for_coord interface~tem_spacetime_lua_for->proc~tem_spacetime_lua_for_coord proc~tem_spacetime_lua_for_treeids tem_spacetime_lua_for_treeIds interface~tem_spacetime_lua_for->proc~tem_spacetime_lua_for_treeids proc~tem_spacetime_lua_vector_for_coord tem_spacetime_lua_vector_for_coord interface~tem_spacetime_lua_for->proc~tem_spacetime_lua_vector_for_coord proc~tem_spacetime_lua_vector_for_treeids tem_spacetime_lua_vector_for_treeIds interface~tem_spacetime_lua_for->proc~tem_spacetime_lua_vector_for_treeids proc~tem_spatial_for_coord tem_spatial_for_coord interface~tem_spatial_for->proc~tem_spatial_for_coord proc~tem_spatial_for_treeids tem_spatial_for_treeIDs interface~tem_spatial_for->proc~tem_spatial_for_treeids proc~tem_spatial_scalar_for_index tem_spatial_scalar_for_index interface~tem_spatial_for->proc~tem_spatial_scalar_for_index proc~tem_spatial_vector_for_coord tem_spatial_vector_for_coord interface~tem_spatial_for->proc~tem_spatial_vector_for_coord proc~tem_spatial_vector_for_index tem_spatial_vector_for_index interface~tem_spatial_for->proc~tem_spatial_vector_for_index proc~tem_spatial_vector_for_treeids tem_spatial_vector_for_treeIDs interface~tem_spatial_for->proc~tem_spatial_vector_for_treeids mpi_abort mpi_abort proc~tem_abort->mpi_abort proc~cart2polar cart2polar proc~tem_eval_miescatter_displz->proc~cart2polar proc~hankel2_n hankel2_n proc~tem_eval_miescatter_displz->proc~hankel2_n proc~tem_eval_miescatter_magnx->proc~cart2polar proc~tem_eval_miescatter_magnangular tem_eval_miescatter_magnangular proc~tem_eval_miescatter_magnx->proc~tem_eval_miescatter_magnangular proc~tem_eval_miescatter_magnradial tem_eval_miescatter_magnradial proc~tem_eval_miescatter_magnx->proc~tem_eval_miescatter_magnradial proc~tem_eval_miescatter_magny->proc~cart2polar proc~tem_eval_miescatter_magny->proc~tem_eval_miescatter_magnangular proc~tem_eval_miescatter_magny->proc~tem_eval_miescatter_magnradial proc~tem_polygon_material_movement_multi->proc~tem_abort proc~tem_polygon_material_value tem_polygon_material_value proc~tem_polygon_material_movement_multi->proc~tem_polygon_material_value proc~tem_polygon_material_movement_single->proc~tem_abort proc~tem_polygon_material_movement_single->proc~tem_polygon_material_value proc~tem_temporal_for->proc~tem_abort proc~temporal_from_file_periodic_for temporal_from_file_periodic_for proc~tem_temporal_for->proc~temporal_from_file_periodic_for proc~temporal_linear_for temporal_linear_for proc~tem_temporal_for->proc~temporal_linear_for proc~temporal_lua_for temporal_lua_for proc~tem_temporal_for->proc~temporal_lua_for proc~temporal_smooth_for temporal_smooth_for proc~tem_temporal_for->proc~temporal_smooth_for

Called by

proc~~tem_spacetime_for_coord~~CalledByGraph proc~tem_spacetime_for_coord tem_spacetime_for_coord interface~tem_spacetime_for tem_spacetime_for interface~tem_spacetime_for->proc~tem_spacetime_for_coord proc~tem_spacetime_for_stcoord tem_spacetime_for_stcoord interface~tem_spacetime_for->proc~tem_spacetime_for_stcoord proc~tem_spacetime_scalar_for_index tem_spacetime_scalar_for_index interface~tem_spacetime_for->proc~tem_spacetime_scalar_for_index proc~tem_spacetime_for_stcoord->proc~tem_spacetime_for_coord proc~tem_spacetime_scalar_for_index->proc~tem_spacetime_for_coord proc~evaluate_add_spacetime_scalarbycoordinate evaluate_add_spacetime_scalarByCoordinate proc~evaluate_add_spacetime_scalarbycoordinate->interface~tem_spacetime_for proc~evaluate_add_spacetime_scalarbytreeid evaluate_add_spacetime_scalarByTreeID proc~evaluate_add_spacetime_scalarbytreeid->interface~tem_spacetime_for proc~evaluate_add_spacetime_vectorbycoordinate evaluate_add_spacetime_vectorByCoordinate proc~evaluate_add_spacetime_vectorbycoordinate->interface~tem_spacetime_for proc~evaluate_add_spacetime_vectorbytreeid evaluate_add_spacetime_vectorByTreeID proc~evaluate_add_spacetime_vectorbytreeid->interface~tem_spacetime_for proc~evaluate_first_spacetime_scalarbycoordinate evaluate_first_spacetime_scalarByCoordinate proc~evaluate_first_spacetime_scalarbycoordinate->interface~tem_spacetime_for proc~evaluate_first_spacetime_scalarbytreeid evaluate_first_spacetime_scalarByTreeID proc~evaluate_first_spacetime_scalarbytreeid->interface~tem_spacetime_for proc~evaluate_first_spacetime_vectorbycoordinate evaluate_first_spacetime_vectorByCoordinate proc~evaluate_first_spacetime_vectorbycoordinate->interface~tem_spacetime_for proc~evaluate_first_spacetime_vectorbytreeid evaluate_first_spacetime_vectorByTreeID proc~evaluate_first_spacetime_vectorbytreeid->interface~tem_spacetime_for proc~evaluate_foag_spacetime_scalarbycoordinate evaluate_FOAG_spacetime_scalarByCoordinate proc~evaluate_foag_spacetime_scalarbycoordinate->interface~tem_spacetime_for proc~evaluate_foag_spacetime_scalarbytreeid evaluate_FOAG_spacetime_scalarByTreeID proc~evaluate_foag_spacetime_scalarbytreeid->interface~tem_spacetime_for proc~evaluate_foag_spacetime_vectorbycoordinate evaluate_FOAG_spacetime_vectorByCoordinate proc~evaluate_foag_spacetime_vectorbycoordinate->interface~tem_spacetime_for proc~evaluate_foag_spacetime_vectorbytreeid evaluate_FOAG_spacetime_vectorByTreeID proc~evaluate_foag_spacetime_vectorbytreeid->interface~tem_spacetime_for proc~get_valofindex_add_scalar_spacetime get_valOfIndex_add_scalar_spacetime proc~get_valofindex_add_scalar_spacetime->interface~tem_spacetime_for proc~get_valofindex_add_vector_spacetime get_valOfIndex_add_vector_spacetime proc~get_valofindex_add_vector_spacetime->interface~tem_spacetime_for proc~get_valofindex_first_scalar_spacetime get_valOfIndex_first_scalar_spacetime proc~get_valofindex_first_scalar_spacetime->interface~tem_spacetime_for proc~get_valofindex_first_vector_spacetime get_valOfIndex_first_vector_spacetime proc~get_valofindex_first_vector_spacetime->interface~tem_spacetime_for proc~get_valofindex_foag_scalar_spacetime get_valOfIndex_FOAG_scalar_spacetime proc~get_valofindex_foag_scalar_spacetime->interface~tem_spacetime_for proc~get_valofindex_foag_vector_spacetime get_valOfIndex_FOAG_vector_spacetime proc~get_valofindex_foag_vector_spacetime->interface~tem_spacetime_for proc~tem_update_surfpos tem_update_surfPos proc~tem_update_surfpos->interface~tem_spacetime_for

Source Code

  function tem_spacetime_for_coord(me, coord, time, n) result(res)
    ! -------------------------------------------------------------------- !
    !> Spacetime function to evaluate
    type(tem_spacetime_fun_type) :: me
    !> Number of values to return
    integer, intent(in) :: n
    !> barycentric Ids of an elements.
    !! 1st index goes over number of elements and
    !! 2nd index goes over x,y,z coordinates
    real(kind=rk), intent(in) :: coord(n,3)
    !> timer object incl. the current time information
    type(tem_time_type), intent(in)  :: time
    !> return value of the function
    real(kind=rk) :: res(n)
    ! -------------------------------------------------------------------- !

    select case(trim(adjustl(me%fun_kind)))
    case('none')
      res = 0.0_rk
    case('const')
      res = me%const(1)
    case('lua_fun')
      res = tem_spacetime_lua_for( fun_ref = me%lua_fun_ref, &
        &                          coord   = coord,          &
        &                          time    = time,           &
        &                          n       = n,              &
        &                          conf    = me%conf         )
    case('combined')
      res = tem_spatial_for( me    = me%spatial,  &
        &                    coord = coord,       &
        &                    n     = n          ) &
        & * tem_temporal_for( temporal   = me%temporal, &
        &                     time       = time         )
    case('miescatter_displacementfieldz')
      res = tem_eval_miescatter_displz( me    = me%mie_fun, &
        &                               coord = coord,      &
        &                               time  = time%sim,   &
        &                               n     = n           )
    case('miescatter_magneticfieldx')
      res = tem_eval_miescatter_magnx( me    = me%mie_fun, &
        &                              coord = coord,      &
        &                              time  = time%sim,   &
        &                              n     = n           )
    case('miescatter_magneticfieldy')
      res = tem_eval_miescatter_magny( me    = me%mie_fun, &
        &                              coord = coord,      &
        &                              time  = time%sim,   &
        &                              n     = n           )
    case('cylindricalwave')
      res = tem_eval_cylindricalWave( me    = me%cylindricalWave, &
        &                             coord = coord,              &
        &                             time  = time%sim,           &
        &                             n     = n                   )
    case('acoustic_pulse')
      res = tem_eval_acoustic_pulse( me    = me%acoustic_pulse, &
        &                            coord = coord,             &
        &                            time  = time%sim,          &
        &                            n     = n                  )
    case('polygon_body_2d', 'polygon_body_3d')
      res = tem_polygon_material_movement_single( &
        & me     = me%polygon_material,           &
        & coord  = coord,                         &
        & time   = time%sim,                      &
        & nPoint = n                              )
    case('polygon_multi_body_2d', 'polygon_multi_body_3d')
      res = tem_polygon_material_movement_multi( &
        & me     = me%polygon_material,           &
        & coord  = coord,                         &
        & time   = time%sim,                      &
        & nPoint = n                              )
    case default
      call tem_abort('ERROR: Unknown spatial function in' &
        & // ' tem_spacetime_for_coord.'                  )
    end select

  end function tem_spacetime_for_coord