AdditionalInit_advection_diffusion_3d_t Subroutine

public subroutine AdditionalInit_advection_diffusion_3d_t(this)

Register boundary conditions for the advection-diffusion model. Hyperbolic: mirror (no-normal-flow) wall condition on the solution. Parabolic: no-stress condition that zeros the normal gradient at the boundary, giving zero diffusive flux through walls. This is stable with the Bassi-Rebay (BR1) method.

Arguments

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

Contents


Source Code

  subroutine AdditionalInit_advection_diffusion_3d_t(this)
    !! Register boundary conditions for the advection-diffusion model.
    !! Hyperbolic: mirror (no-normal-flow) wall condition on the solution.
    !! Parabolic: no-stress condition that zeros the normal gradient at
    !! the boundary, giving zero diffusive flux through walls.  This is
    !! stable with the Bassi-Rebay (BR1) method.
    implicit none
    class(advection_diffusion_3d_t),intent(inout) :: this
    ! Local
    procedure(SELF_bcMethod),pointer :: bcfunc

    bcfunc => hbc3d_NoNormalFlow_advection_diffusion_3d_t
    call this%hyperbolicBCs%RegisterBoundaryCondition( &
      SELF_BC_NONORMALFLOW,"no_normal_flow",bcfunc)

    bcfunc => pbc3d_NoStress_advection_diffusion_3d_t
    call this%parabolicBCs%RegisterBoundaryCondition( &
      SELF_BC_NONORMALFLOW,"no_normal_flow",bcfunc)

  endsubroutine AdditionalInit_advection_diffusion_3d_t