marker_set_Prepare Subroutine

private impure subroutine marker_set_Prepare(this, timer, parser, operators, bcs, monitors, update_time)

Prepares marker_set for use with solvers.

Type Bound

marker_set

Arguments

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

A collection of tessellation elements

type(timer_obj), intent(in), target :: timer

Timer utility

type(parser_obj), intent(in), target :: parser

Parser for input file

type(op_obj), intent(in), target :: operators

Operators object

type(bc_set), intent(in), target :: bcs

Boundary conditions object

type(monitor_set), intent(in), target :: monitors

Monitors to print to stdout and files

logical, intent(in), optional :: update_time

Update time and iteration based on read file


Calls

proc~~marker_set_prepare~~CallsGraph proc~marker_set_prepare marker_set%marker_set_Prepare none~get~4 parser_obj%Get proc~marker_set_prepare->none~get~4 proc~lagrangian_set_setfilterkernel lagrangian_set%lagrangian_set_SetFilterKernel proc~marker_set_prepare->proc~lagrangian_set_setfilterkernel proc~lagrangian_set_setfiltersize lagrangian_set%lagrangian_set_SetFilterSize proc~marker_set_prepare->proc~lagrangian_set_setfiltersize proc~lagrangian_set_setreadfilename lagrangian_set%lagrangian_set_SetReadFileName proc~marker_set_prepare->proc~lagrangian_set_setreadfilename proc~lagrangian_set_setwritefilename lagrangian_set%lagrangian_set_SetWriteFileName proc~marker_set_prepare->proc~lagrangian_set_setwritefilename proc~marker_set_setreadchunksize marker_set%marker_set_SetReadChunkSize proc~marker_set_prepare->proc~marker_set_setreadchunksize proc~parser_obj_isdefined parser_obj%parser_obj_IsDefined proc~marker_set_prepare->proc~parser_obj_isdefined proc~parser_obj_read0d parser_obj%parser_obj_read0D none~get~4->proc~parser_obj_read0d proc~parser_obj_read1d parser_obj%parser_obj_read1D none~get~4->proc~parser_obj_read1d proc~parser_obj_fetchlabelid parser_obj%parser_obj_FetchLabelID proc~parser_obj_isdefined->proc~parser_obj_fetchlabelid proc~parser_obj_read0d->proc~parser_obj_fetchlabelid none~assigndefault parser_obj%AssignDefault proc~parser_obj_read0d->none~assigndefault proc~parser_obj_read1d->proc~parser_obj_fetchlabelid proc~parser_obj_read1d->none~assigndefault proc~parser_obj_assigndefault0d parser_obj%parser_obj_AssignDefault0D none~assigndefault->proc~parser_obj_assigndefault0d proc~parser_obj_assigndefault1d parser_obj%parser_obj_AssignDefault1D none~assigndefault->proc~parser_obj_assigndefault1d

Called by

proc~~marker_set_prepare~~CalledByGraph proc~marker_set_prepare marker_set%marker_set_Prepare proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->proc~marker_set_prepare interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver

Source Code

    impure subroutine marker_set_Prepare(this,timer,parser,operators,bcs,monitors,update_time)
      !> Prepares marker_set for use with solvers.
      implicit none
      class(marker_set), intent(inout) :: this                                 !! A collection of tessellation elements
      type(timer_obj),   intent(in),    &
                                target :: timer                                !! Timer utility
      type(parser_obj),  intent(in),    &
                                target :: parser                               !! Parser for input file
      type(op_obj),      intent(in),    &
                                target :: operators                            !! Operators object
      type(bc_set),      intent(in),    &
                                target :: bcs                                  !! Boundary conditions object
      type(monitor_set), intent(in),    &
                                target :: monitors                             !! Monitors to print to stdout and files
      logical,           intent(in),    &
                              optional :: update_time                          !! Update time and iteration based on read file
      ! Work variables
      integer             :: chunk_size                                        !! Custom read chunk size
      real(wp)            :: dl                                                !! Half filter width
      integer             :: kernel_interp                                     !! Interpolation kernel
      integer             :: kernel_extrap                                     !! Extrapolation kernel
      character(len=str64):: filename                                          !! String to store filenames
      real(wp)            :: time
      integer             :: iter

      ! Associate pointers
      this%timer    => timer
      this%parser   => parser
      this%op       => operators
      this%bcs      => bcs
      this%monitors => monitors

      call this%parser%Get('IB read file',  filename )
      call this%SetReadFileName(filename)

      call this%parser%Get('IB write file', filename )
      call this%SetWriteFileName(filename)

      call this%parser%Get('IB overwrite', this%overwrite, default = .true. )

      ! Adjust IB read chunk sizes if provided by user
      if (this%parser%IsDefined('IB read chunk size')) then
        call this%parser%Get('IB read chunk size', chunk_size)
        call this%SetReadChunkSize(chunk_size)
      end if

      ! Filtering parameters
      dl = (2.0_wp - 1.0e3_wp*epsilon(1.0_wp))*minval(this%block%dx)
      call this%parser%Get('IB filter half width',  this%l_filter, default = dl     )
      call this%parser%Get('IB interp kernel',      kernel_interp, default = 1      )
      call this%parser%Get('IB extrap kernel',      kernel_extrap, default = 1      )
      call this%SetFilterKernel(kernel_interp,kernel_extrap)
      call this%SetFilterSize(this%l_filter)

      ! Read IB data
      call this%Read(iter,time)

      if (present(update_time)) then
        if (update_time) then
          this%timer%iter = iter
          this%timer%time = time
        end if
      end if

      return
    end subroutine marker_set_Prepare