This function computes the space time function that gives back an array for a given list of coordinates
Type | Intent | Optional | 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 arrays to return |
||
integer, | intent(in) | :: | ncomp |
Number of entrys in each array |
return value of the function
function tem_spacetime_vector_for_coord( me, coord, time, n, ncomp) & & result(res) ! -------------------------------------------------------------------- ! !> Spacetime function to evaluate type(tem_spacetime_fun_type) :: me !> Number of arrays to return integer, intent(in) :: n !> Number of entrys in each array integer, intent(in) :: ncomp !> 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,ncomp) ! -------------------------------------------------------------------- ! ! counter integer :: i real(kind=rk) :: trans ! -------------------------------------------------------------------- ! select case(trim(adjustl(me%fun_kind))) case('none') res = 0.0_rk case('const') do i = 1, ncomp res(:,i) = me%const(i) end do case('lua_fun') res = tem_spacetime_lua_for( fun_ref = me%lua_fun_ref, & & coord = coord, & & time = time, & & n = n, & & ncomp = ncomp, & & conf = me%conf ) case('combined') trans = tem_temporal_for( temporal = me%temporal, & & time = time ) res = tem_spatial_for( me = me%spatial, & & coord = coord, & & n = n, & & ncomp = ncomp ) res = trans*res case default call tem_abort('ERROR: Unknown spatial function in' & & // ' tem_spacetime_vector_for_coord.' ) end select end function tem_spacetime_vector_for_coord