LBMBounceBack

LBMBounceBack object

This compute object implements simple bounce-back rule on boundaries for Lattice Boltzmann simulations. Boundary can be on the left, right, top, bottom, front and back as well as wall and regional. Wall boundary refers to any solid object the fluid cannot penetrate.

Overview

Imposes no-penetration by reflecting incoming distributions into their opposite directions at the selected boundary. Supports domain faces (left, right, top, bottom, front, back) and wall and regional for solid-embedded geometries. For 3D binary media masks, adjacent-to-solid cells are handled by a specialized path. The regional boundary enables users to mark different walls of the domain with different values and apply bounce-back only in those regions. Corner exclusion on each axis can be enabled to avoid double-applying rules.

Usage with Binary Media

When using binary_media in LatticeBoltzmannProblem, boundary conditions must be specified for both:

  1. Domain edges**: Use boundary = left/right/top/bottom/front/back for computational domain boundaries

  2. Internal solid obstacles**: Use boundary = wall for solids defined by binary_media (where binary_media = 0)

The wall boundary type automatically detects fluid cells adjacent to solid regions in the binary media and applies bounce-back at the fluid-solid interface. This allows simulation of complex internal geometries without explicitly specifying boundary locations.

Example Input File Syntax

[TensorComputes]
  [Boundary]
    [bb]
      type = LBMBounceBack
      buffer = f
      f_old = f_post_collision
      boundary = 'left right top bottom'
      exclude_corners_x = true
    []
  []
[]
!listing-end

Input Parameters

  • boundaryEdges/Faces where boundary condition is applied.

    C++ Type:MooseEnum

    Options:top, bottom, left, right, front, back, wall, regional

    Controllable:No

    Description:Edges/Faces where boundary condition is applied.

  • bufferThe buffer this compute is writing to

    C++ Type:std::string

    Controllable:No

    Description:The buffer this compute is writing to

  • f_oldOld state distribution function

    C++ Type:std::string

    Controllable:No

    Description:Old state distribution function

Required Parameters

  • exclude_corners_xFalseWhether or not apply bounceback in the corners of the domain along x axis

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not apply bounceback in the corners of the domain along x axis

  • exclude_corners_yFalseWhether or not apply bounceback in the corners of the domain along y axis

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not apply bounceback in the corners of the domain along y axis

  • exclude_corners_zFalseWhether or not apply bounceback in the corners of the domain along z axis

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not apply bounceback in the corners of the domain along z axis

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

Input Files