LBMNeumannBC

LBMNeumannBC object

Implements a Neumann boundary condition for Lattice Boltzmann simulations. It enforces a fixed gradient of a microsocpic variable at the boundary.

Overview

This boundary condition enforces a specified gradient at the boundaries. It calculates the required macroscopic value at the boundary to satisfy the gradient condition and then uses the Dirichlet implementation logic to apply it. Note that the gradient specified at the boundary is not the gradient of macroscopic variable. Rather, it is the gradient of distribution fucntions (microscopci variable). This boundary conditions only computes missing directions by applying Non-Equilibrium Boundary Condition (NEBC). This means that the non-equilibirum part of the distribution function is computed from existing values in the current cell and the equilibrium part is computed from the prescribed gradients at the boundary.

It 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 Neumann condition only in those regions.

Example Input File Syntax

[TensorComputes]
  [Boundary]
    [heat_source]
      type = LBMNeumannBC
      buffer = g
      f_old = gpc
      feq=geq
      velocity = velocity
      rho = T
      gradient = 0.001
      region_id = 3
      boundary = regional
    []
  []
[]
!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

  • feqEquilibrium distribution function

    C++ Type:std::string

    Controllable:No

    Description:Equilibrium distribution function

  • rhoFluid density

    C++ Type:std::string

    Controllable:No

    Description:Fluid density

  • velocityFluid velocity

    C++ Type:std::string

    Controllable:No

    Description:Fluid velocity

Required Parameters

  • gradient0.0Gradient at the boundary

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:0.0Gradient at the boundary

  • region_id0Region ID for regional boundary condition

    C++ Type:int

    Controllable:No

    Description:0Region ID for regional boundary condition

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