SetUpCaseBCS Subroutine

subroutine SetUpCaseBCS()

Uses

  • proc~~setupcasebcs~5~~UsesGraph proc~setupcasebcs~5 SetUpCaseBCS module~leapbc leapBC proc~setupcasebcs~5->module~leapbc iso_fortran_env iso_fortran_env module~leapbc->iso_fortran_env module~leapblock leapBlock module~leapbc->module~leapblock module~leapeulerian leapEulerian module~leapbc->module~leapeulerian module~leapio leapIO module~leapbc->module~leapio module~leapkinds leapKinds module~leapbc->module~leapkinds module~leapparallel leapParallel module~leapbc->module~leapparallel module~leaputils leapUtils module~leapbc->module~leaputils mpi_f08 mpi_f08 module~leapbc->mpi_f08 module~leapblock->iso_fortran_env module~leapblock->module~leapkinds module~leapblock->module~leapparallel module~leapblock->mpi_f08 module~leapio_hdf5 leapIO_hdf5 module~leapblock->module~leapio_hdf5 module~leapeulerian->iso_fortran_env module~leapeulerian->module~leapblock module~leapeulerian->module~leapio module~leapeulerian->module~leapkinds module~leapeulerian->module~leapparallel module~leapeulerian->module~leaputils module~leapeulerian->mpi_f08 module~leapio_h5hut leapIO_h5hut module~leapio->module~leapio_h5hut module~leapio->module~leapio_hdf5 module~leapio_silo leapIO_silo module~leapio->module~leapio_silo module~leapio_xdmf leapIO_xdmf module~leapio->module~leapio_xdmf module~leapkinds->iso_fortran_env module~leapparallel->iso_fortran_env module~leapparallel->module~leapkinds module~leapparallel->mpi_f08 module~leaputils->module~leapkinds module~leapio_h5hut->module~leapkinds module~leapio_h5hut->module~leapparallel module~leapio_h5hut->module~leapio_hdf5 module~leapio_hdf5->module~leapkinds module~leapio_hdf5->module~leapparallel module~leapio_hdf5->module~leaputils hdf5 hdf5 module~leapio_hdf5->hdf5 module~leapio_silo->module~leapkinds module~leapio_silo->module~leapparallel module~leapio_silo->module~leaputils module~leapio_silo->mpi_f08 module~leapio_xdmf->module~leapkinds module~leapio_xdmf->module~leaputils

Defines boundary conditions.

Arguments

None

Calls

proc~~setupcasebcs~5~~CallsGraph proc~setupcasebcs~5 SetUpCaseBCS proc~bc_set_add bc_set%bc_set_Add proc~setupcasebcs~5->proc~bc_set_add proc~bc_set_final bc_set%bc_set_Final proc~setupcasebcs~5->proc~bc_set_final proc~bc_set_init bc_set%bc_set_Init proc~setupcasebcs~5->proc~bc_set_init proc~bc_set_setbc bc_set%bc_set_SetBC proc~setupcasebcs~5->proc~bc_set_setbc proc~bc_set_checkbounds bc_set%bc_set_CheckBounds proc~bc_set_add->proc~bc_set_checkbounds proc~bc_set_expand bc_set%bc_set_Expand proc~bc_set_add->proc~bc_set_expand proc~bc_set_getsidedirbynormal bc_set%bc_set_GetSideDirByNormal proc~bc_set_add->proc~bc_set_getsidedirbynormal proc~bc_set_updateextents bc_set%bc_set_UpdateExtents proc~bc_set_add->proc~bc_set_updateextents proc~hashtbl_obj_hashstring hashtbl_obj%hashtbl_obj_HashString proc~bc_set_add->proc~hashtbl_obj_hashstring proc~hashtbl_obj_put hashtbl_obj%hashtbl_obj_Put proc~bc_set_add->proc~hashtbl_obj_put proc~region_obj_init region_obj%region_obj_Init proc~bc_set_add->proc~region_obj_init proc~region_obj_final region_obj%region_obj_Final proc~bc_set_final->proc~region_obj_final proc~hashtbl_obj_init hashtbl_obj%hashtbl_obj_Init proc~bc_set_init->proc~hashtbl_obj_init proc~bc_set_getextents bc_set%bc_set_GetExtents proc~bc_set_setbc->proc~bc_set_getextents proc~bc_set_getregionindex bc_set%bc_set_GetRegionIndex proc~bc_set_setbc->proc~bc_set_getregionindex proc~region_obj_add region_obj%region_obj_Add proc~bc_set_setbc->proc~region_obj_add proc~bc_set_getextents->proc~bc_set_getregionindex proc~bc_set_getregionindex->proc~hashtbl_obj_hashstring none~get~4 hashtbl_obj%Get proc~bc_set_getregionindex->none~get~4 proc~bc_set_updateextents->proc~bc_set_getregionindex proc~sllist_obj_put sllist_obj%sllist_obj_Put proc~hashtbl_obj_put->proc~sllist_obj_put proc~region_obj_add->proc~hashtbl_obj_hashstring proc~region_obj_add->proc~hashtbl_obj_put proc~region_obj_expand region_obj%region_obj_Expand proc~region_obj_add->proc~region_obj_expand proc~hashtbl_obj_final hashtbl_obj%hashtbl_obj_Final proc~region_obj_final->proc~hashtbl_obj_final proc~region_obj_init->proc~hashtbl_obj_init proc~hashtbl_obj_get_int4 hashtbl_obj%hashtbl_obj_Get_int4 none~get~4->proc~hashtbl_obj_get_int4 proc~hashtbl_obj_get_int8 hashtbl_obj%hashtbl_obj_Get_int8 none~get~4->proc~hashtbl_obj_get_int8 proc~hashtbl_obj_get_real_dp hashtbl_obj%hashtbl_obj_Get_real_dp none~get~4->proc~hashtbl_obj_get_real_dp proc~hashtbl_obj_get_real_sp hashtbl_obj%hashtbl_obj_Get_real_sp none~get~4->proc~hashtbl_obj_get_real_sp proc~sllist_obj_put->proc~sllist_obj_put none~get~3 sllist_obj%Get proc~hashtbl_obj_get_int4->none~get~3 proc~hashtbl_obj_get_int8->none~get~3 proc~hashtbl_obj_get_real_dp->none~get~3 proc~hashtbl_obj_get_real_sp->none~get~3 proc~sllist_obj_get_int4 sllist_obj%sllist_obj_Get_int4 none~get~3->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8 sllist_obj%sllist_obj_Get_int8 none~get~3->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp sllist_obj%sllist_obj_Get_real_dp none~get~3->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp sllist_obj%sllist_obj_Get_real_sp none~get~3->proc~sllist_obj_get_real_sp proc~sllist_obj_get_int4->proc~sllist_obj_get_int4 proc~sllist_obj_get_int8->proc~sllist_obj_get_int8 proc~sllist_obj_get_real_dp->proc~sllist_obj_get_real_dp proc~sllist_obj_get_real_sp->proc~sllist_obj_get_real_sp

Called by

proc~~setupcasebcs~5~~CalledByGraph proc~setupcasebcs~5 SetUpCaseBCS program~main~5 main program~main~5->proc~setupcasebcs~5

Source Code

    subroutine SetUpCaseBCS()
      !> Defines boundary conditions.
      use leapBC
      implicit none
      ! Work variables
      type(bc_set) :: bcs
      real(wp)     :: xhi(3)
      real(wp)     :: xlo(3)

      ! Initialize utility that handles boundary conditions
      call bcs%Initialize(block,parallel)

      associate (pmin => block%pmin, pmax => block%pmax)
        ! - Left boundary
        xlo = [pmin(1),pmin(2),pmin(3)]
        xhi = [pmin(1),pmax(2),pmax(3)]
        call bcs%Add('xL',  xlo, xhi, normal = '+x1')

        ! - xR boundary
        xlo = [pmax(1),pmin(2),pmin(3)]
        xhi = [pmax(1),pmax(2),pmax(3)]
        call bcs%Add('xR',  xlo, xhi, normal = '-x1')

        ! - yL boundary
        xlo = [pmin(1),pmin(2),pmin(3)]
        xhi = [pmax(1),pmin(2),pmax(3)]
        call bcs%Add('yL', xlo, xhi, normal = '+x2')

        ! - yR boundary
        xlo = [pmin(1),pmax(2),pmin(3)]
        xhi = [pmax(1),pmax(2),pmax(3)]
        call bcs%Add('yR',    xlo, xhi, normal = '-x2')
      end associate

      call bcs%SetBC('yR', BC_SYMMETRY, 'V1' )
      call bcs%SetBC('yR', BC_SYMMETRY, 'V2' )
      call bcs%SetBC('yR', BC_SYMMETRY, 'V3' )
      call bcs%SetBC('yR', BC_SYMMETRY, 'P'  )
      call bcs%SetBC('yR', BC_SYMMETRY, 'dP' )

      call bcs%SetBC('yL', BC_SYMMETRY, 'V1' )
      call bcs%SetBC('yL', BC_SYMMETRY, 'V2' )
      call bcs%SetBC('yL', BC_SYMMETRY, 'V3' )
      call bcs%SetBC('yL', BC_SYMMETRY, 'P'  )
      call bcs%SetBC('yL', BC_SYMMETRY, 'dP' )

      call bcs%SetBC('xL', BC_SYMMETRY, 'V1' )
      call bcs%SetBC('xL', BC_SYMMETRY, 'V2' )
      call bcs%SetBC('xL', BC_SYMMETRY, 'V3' )
      call bcs%SetBC('xL', BC_SYMMETRY, 'P'  )
      call bcs%SetBC('xL', BC_SYMMETRY, 'dP' )

      call bcs%SetBC('xR', BC_SYMMETRY, 'V1' )
      call bcs%SetBC('xR', BC_SYMMETRY, 'V2' )
      call bcs%SetBC('xR', BC_SYMMETRY, 'V3' )
      call bcs%SetBC('xR', BC_SYMMETRY, 'P'  )
      call bcs%SetBC('xR', BC_SYMMETRY, 'dP' )

      ! Write boundary conditions
      call bcs%Write(0,0.0_wp)

      ! Clear data
      call bcs%Finalize()

      return
    end subroutine SetUpCaseBCS