ReportUnmappedBoundaries_DGModel1D_t Subroutine

public subroutine ReportUnmappedBoundaries_DGModel1D_t(this)

Warn, once, about domain endpoints whose bcid has no registered boundary condition. MapBoundaryConditions establishes the count; ForwardStep calls this.

This is deliberately a warning and not an error: the endpoint still receives the periodic default, which may well be what the user wanted.

Arguments

TypeIntentOptionalAttributesName
class(DGModel1D_t), intent(inout) :: this

Contents


Source Code

  subroutine ReportUnmappedBoundaries_DGModel1D_t(this)
    !! Warn, once, about domain endpoints whose bcid has no registered boundary condition.
    !! MapBoundaryConditions establishes the count; ForwardStep calls this.
    !!
    !! This is deliberately a warning and not an error: the endpoint still receives the
    !! periodic default, which may well be what the user wanted.
    implicit none
    class(DGModel1D_t),intent(inout) :: this

    if(this%nUnmappedBoundaries <= 0) return
    if(this%unmappedBoundariesReported) return
    this%unmappedBoundariesReported = .true.
    if(this%mesh%decomp%rankId /= 0) return

    print*,__FILE__,' : Warning : ',this%nUnmappedBoundaries, &
      ' domain endpoints carry a bcid with no boundary condition registered on'// &
      ' hyperbolicBCs.'
    print*,__FILE__,' : Warning : One such bcid is ',this%unmappedBoundaryID
    print*,__FILE__,' : Warning : A registration on parabolicBCs alone does not count:'// &
      ' that list is dispatched by SetGradientBoundaryCondition and writes'// &
      ' solutionGradient%extBoundary, not the solution trace the Riemann solver reads.'
    print*,__FILE__,' : Warning : SetBoundaryCondition leaves those endpoints at the periodic'// &
      ' default, so the endpoint is wrapped onto the opposite end of the domain rather than'// &
      ' given the condition the bcid was meant to select.'
    print*,__FILE__,' : Warning : Register a boundary condition for that bcid on'// &
      ' hyperbolicBCs in'// &
      ' AdditionalInit, or re-tag the endpoints (see mesh%ResetBoundaryConditionType).'

  endsubroutine ReportUnmappedBoundaries_DGModel1D_t