ResPart_set_SetFilterSize Subroutine

private impure subroutine ResPart_set_SetFilterSize(this, l_filter)

Filters a quantity to the Eulerian grid

Type Bound

ResPart_set

Arguments

Type IntentOptional Attributes Name
class(ResPart_set), intent(inout) :: this

Set of resolved particles

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

Filter size


Called by

proc~~respart_set_setfiltersize~~CalledByGraph proc~respart_set_setfiltersize ResPart_set%ResPart_set_SetFilterSize proc~respart_set_prepare ResPart_set%ResPart_set_Prepare proc~respart_set_prepare->proc~respart_set_setfiltersize proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->proc~respart_set_prepare interface~cdifs_obj_preparesolver cdifs_obj%cdifs_obj_PrepareSolver interface~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolver

Source Code

    impure subroutine ResPart_set_SetFilterSize(this,l_filter)
      !> Filters a quantity to the Eulerian grid
      implicit none
      class(ResPart_set), intent(inout) :: this                                !! Set of resolved particles
      real(wp),           intent(in)    :: l_filter                            !! Filter size
      ! Work variables
      real(wp) :: min_grid_spacing

      this%l_filter   =l_filter
      this%ib%l_filter=l_filter

      ! Get minimum grid_spacing
      min_grid_spacing=minval(this%block%dx)

      ! Adjust stencil size
      this%stib = 1 + 2*ceiling(l_filter/min_grid_spacing)
      this%ib%stib = this%stib

      ! Check there are enough ghost cells
      if (this%block%ngc.lt.this%stib/2) call this%parallel%Stop('Insufficient number of ghost cells')

      return
    end subroutine ResPart_set_SetFilterSize