LBMD3Q19
LBMD3Q19 Stencil object.
LBMD3Q19 objects creatres D3Q19 stencil. This object holds tensors for directions and weights of streaming, momentum and inverse transformation matrices, diagonal relaxation matrix, and the indices of boundaries required for boundary conditions.
Overview
Constructs a 3-D, 19-velocity LBM stencil (D3Q19) and exposes its discrete velocities, weights, and indexing used by streaming and boundary conditions.
Example Input File Syntax
[Stencil<<<{"href": "../../syntax/Stencil/index.html"}>>>]
[d3q19]
type = LBMD3Q19<<<{"description": "LBMD3Q19 Stencil object.", "href": "LBMD3Q19.html"}>>>
[]
[](test/tests/lbm/neumann_box.i)Input 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.
Input Files
- (test/tests/lbm/neumann_box.i)
- (test/tests/lbm/convective_outflow_3d_top.i)
- (test/tests/lbm/mixed_bcs_d3q19.i)
- (test/tests/lbm/convective_outflow_3d_right.i)
- (examples/lbm/Pebbles/pebbles.i)
- (examples/lbm/natural_convection_3D/convection.i)
- (test/tests/lbm/nee_3d_box_first.i)
- (test/tests/lbm/channel3D.i)
- (test/tests/lbm/mixed_bcs_d3q19_reverse.i)
- (test/tests/lbm/convective_outflow_3d_left.i)
- (test/tests/lbm/convective_outflow_3d_front.i)
- (test/tests/lbm/convective_outflow_3d_back.i)
- (test/tests/lbm/dirichlet_box.i)
- (test/tests/lbm/convective_outflow_3d_bottom.i)
- (test/tests/lbm/nee_3d_box_second.i)
(test/tests/lbm/neumann_box.i)
[Domain]
dim = 3
nx = 5
ny = 5
nz = 5
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[density]
type=LBMTensorBuffer
buffer_type = ms
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[]
[TensorComputes]
[Initialize]
[init_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[non_equilibrium]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[post_collision_equilibrium]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[]
[Boundary]
[left]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.001
boundary = left
[]
[right]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = right
[]
[top]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = top
[]
[bottom]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = bottom
[]
[front]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = front
[]
[back]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = back
[]
[]
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[densty_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = neumann_box
csv = true
[]
(test/tests/lbm/neumann_box.i)
[Domain]
dim = 3
nx = 5
ny = 5
nz = 5
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[density]
type=LBMTensorBuffer
buffer_type = ms
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[]
[TensorComputes]
[Initialize]
[init_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[non_equilibrium]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[post_collision_equilibrium]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[]
[Boundary]
[left]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.001
boundary = left
[]
[right]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = right
[]
[top]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = top
[]
[bottom]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = bottom
[]
[front]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = front
[]
[back]
type = LBMNeumannBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
gradient = 0.1
boundary = back
[]
[]
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[densty_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = neumann_box
csv = true
[]
(test/tests/lbm/convective_outflow_3d_top.i)
[Domain]
dim = 3
nx = 8
ny = 8
nz = 8
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
[]
[]
[Boundary]
[bottom]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.005
uz = 0.0
order = first
boundary = bottom
[]
[top]
type = LBMConvectiveOutflow
buffer = f
f_old = f
convection_velocity = Uc
boundary = top
[]
[left]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = left
[]
[right]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = right
[]
[front]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = front
[]
[back]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = back
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
scalar_constant_names = 'Uc'
scalar_constant_values = '0.005'
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = convective_outflow_3d_top
csv = true
[]
(test/tests/lbm/mixed_bcs_d3q19.i)
[Domain]
dim = 3
nx = 10
ny = 10
nz = 10
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[f_bounce_back]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type=LBMTensorBuffer
buffer_type = mv
[]
[density]
type=LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0001 0.0005 0.0'
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_f_bb]
type = LBMEquilibrium
buffer = f_bounce_back
bulk = density
velocity = velocity
[]
[]
[Solve]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
add_body_force = true
body_force_x = 0.0001
[]
[]
[Boundary]
[left]
type = LBMFixedZerothOrderBC
buffer = f
f = f
value = 1.11
boundary = left
[]
[right]
type = LBMFixedFirstOrderBC
buffer = f
f = f
value = 0.0001
boundary = right
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = f_bounce_back
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[densty_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 1
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = mixed_bcs_d3q19
csv = true
[]
(test/tests/lbm/convective_outflow_3d_right.i)
[Domain]
dim = 3
nx = 8
ny = 8
nz = 8
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
[]
[]
[Boundary]
[left]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.005
uy = 0.0
uz = 0.0
order = first
boundary = left
[]
[right]
type = LBMConvectiveOutflow
buffer = f
f_old = f
convection_velocity = Uc
boundary = right
[]
[top]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = top
[]
[bottom]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = bottom
[]
[front]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = front
[]
[back]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = back
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
scalar_constant_names = 'Uc'
scalar_constant_values = '0.005'
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = convective_outflow_3d_right
csv = true
[]
(examples/lbm/Pebbles/pebbles.i)
[Domain]
dim = 3
nx = 240
ny = 50
nz = 50
xmax = 240
ymax = 50
zmax = 50
device_names='cpu'
# floating_precision = 'single'
parallel_mode = REAL_SPACE
periodic_directions = 'X Y'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
# Density distribution functions
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
# Temperature distribution functions
[g]
type = LBMTensorBuffer
buffer_type = df
[]
[geq]
type = LBMTensorBuffer
buffer_type = df
[]
[gpc]
type = LBMTensorBuffer
buffer_type = df
[]
# Fluid macroscopic variables: density and velocity
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[speed]
type=LBMTensorBuffer
buffer_type = ms
[]
# Temperature macroscpic variables: temperature and 'velocity'
[T]
type = LBMTensorBuffer
buffer_type = ms
[]
# Forces
[F]
type = LBMTensorBuffer
buffer_type = mv
[]
# Simulation domain
[binary_media]
type = LBMTensorBuffer
buffer_type = ms
file = 'binary_media.h5'
is_integer = true
[]
[]
[TensorComputes]
#### Initialzie ####
[Initialize]
[density]
type = LBMConstantTensor
buffer = density
constants = 'rho0'
[]
[velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0'
[]
[temperature]
type = LBMConstantTensor
buffer = T
constants = T_C
[]
[equilibrium_fluid]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[equilibrium_fluid_total]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[equilibrium_fluid_pc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[equilibrium_temperature]
type = LBMEquilibrium
buffer = geq
bulk = T
velocity = velocity
[]
[equilibrium_temperature_total]
type = LBMEquilibrium
buffer = g
bulk = T
velocity = velocity
[]
[equilibrium_temperature_pc]
type = LBMEquilibrium
buffer = gpc
bulk = T
velocity = velocity
[]
# [t_wall_hot_init]
# type = LBMDirichletWallBC
# buffer = g
# f_old = gpc
# value = T_H
# velocity = velocity
# boundary = wall
# []
[]
#### Compute ####
[Solve]
# For temperature
[Temperature]
type = LBMComputeDensity
buffer = T
f = g
[]
# For fluid
[Fluid_density]
type = LBMComputeDensity
buffer = density
f = f
[]
[Fluid_velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
forces = F
enable_forces = true
[]
# For temperature
[Equilibrium_temperature]
type = LBMEquilibrium
buffer = geq
bulk = T
velocity = velocity
[]
[Collision_temperature]
type = LBMMRTCollision
buffer = gpc
f = g
feq = geq
tau0 = tau_T
[]
# For fluid
[Compute_forces]
type = LBMComputeForces
buffer = F
rho0 = 'rho0'
temperature = T
T0 = T_H
enable_buoyancy = true
gravity = g
gravity_direction=0
[]
[Equilibrium_fluid]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[Collision_fluid]
type = LBMMRTCollision
buffer = fpc
f = f
feq = feq
tau0 = tau_f
[]
[Apply_forces]
type = LBMApplyForces
buffer = fpc
velocity = velocity
rho = density
forces = F
tau0 = tau_f
[]
[speed]
type=LBMComputeVelocityMagnitude
buffer=speed
velocity=velocity
[]
[residual]
type = LBMComputeResidual
buffer = speed
speed = speed
[]
[]
#### Boundary ####
[Boundary]
##### for fluid
[inlet]
type = LBMFixedFirstOrderBC
buffer = f
f = f
value = u0
boundary = left
[]
[outlet]
type = LBMMicroscopicZeroGradientBC
buffer = f
boundary = right
[]
[top]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = top
# exclude_corners_x = true
[]
[bottom]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = bottom
# exclude_corners_x = true
[]
[front]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = front
# exclude_corners_x = true
[]
[back]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = back
# exclude_corners_x = true
[]
[wall]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = wall
[]
##### for temperature
[t_inlet]
type = LBMFixedZerothOrderBC
buffer = g
f = g
value = T_C
boundary = left
[]
[t_outlet]
type = LBMMicroscopicZeroGradientBC
buffer = g
boundary = right
[]
[t_top]
type = LBMBounceBack
buffer = g
f_old = gpc
boundary = top
[]
[t_bottom]
type = LBMBounceBack
buffer = g
f_old = gpc
boundary = bottom
[]
[t_front]
type = LBMBounceBack
buffer = g
f_old = gpc
boundary = front
[]
[t_back]
type = LBMBounceBack
buffer = g
f_old = gpc
boundary = back
[]
[t_wall_hot]
type = LBMDirichletBC
buffer = g
f_old = gpc
feq = geq
velocity = velocity
rho = T
value = 1.2
boundary = wall
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = 'f g'
f_old = 'fpc gpc'
root_compute = residual
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 20
scalar_constant_names = 'rho0 T_C T_H tau_f tau_T g u0'
scalar_constant_values = '1.0 1.0 1.2 0.9 0.9 0.001 0.001'
is_binary_media = true
binary_media = binary_media
[]
[Postprocessors]
[reynolds]
type = ComputeReynoldsNumber
buffer = speed
tau = tau_f
diameter = 15
[]
[]
[Executioner]
type = Transient
num_steps = 2000
[]
# [TensorOutputs]
# [xdmf2]
# type = XDMFTensorOutput
# buffer = 'binary_media'
# output_mode = 'Cell'
# enable_hdf5 = true
# []
# []
[TensorOutputs]
[xdmf2]
type = XDMFTensorOutput
buffer = 'T velocity density binary_media'
output_mode = 'Cell Cell Cell Cell'
enable_hdf5 = true
[]
[]
(examples/lbm/natural_convection_3D/convection.i)
[Domain]
dim = 3
nx = 270
ny = 270
nz = 405
xmax = 270
ymax = 270
zmax = 405
device_names='cpu'
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
floating_precision=SINGLE
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
# Simulation binary media
[binary_media]
type = LBMTensorBuffer
file = binary_media.h5
buffer_type = ms
is_integer = true
[]
# Density distribution functions
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
# Temperature distribution functions
[g]
type = LBMTensorBuffer
buffer_type = df
[]
[geq]
type = LBMTensorBuffer
buffer_type = df
[]
[gpc]
type = LBMTensorBuffer
buffer_type = df
[]
# Fluid macroscopic variables: density and velocity
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[speed]
type=LBMTensorBuffer
buffer_type = ms
[]
# Temperature macroscpic variables: temperature and 'velocity'
[T]
type = LBMTensorBuffer
buffer_type = ms
[]
# Forces
[F]
type = LBMTensorBuffer
buffer_type = mv
[]
[]
[TensorComputes]
[Initialize]
[density]
type = LBMConstantTensor
buffer = density
constants = 'rho0'
[]
[velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[temperature]
type = LBMConstantTensor
buffer = T
constants = T_C
[]
[equilibrium_fluid]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[equilibrium_fluid_total]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[equilibrium_fluid_pc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[equilibrium_temperature]
type = LBMEquilibrium
buffer = geq
bulk = T
velocity = velocity
[]
[equilibrium_temperature_total]
type = LBMEquilibrium
buffer = g
bulk = T
velocity = velocity
[]
[equilibrium_temperature_pc]
type = LBMEquilibrium
buffer = gpc
bulk = T
velocity = velocity
[]
[]
#### Compute ####
[Solve]
# For temperature
[Temperature]
type = LBMComputeDensity
buffer = T
f = g
[]
# For fluid
[Fluid_density]
type = LBMComputeDensity
buffer = density
f = f
[]
[Fluid_velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
forces = F
enable_forces = true
[]
# For temperature
[Equilibrium_temperature]
type = LBMEquilibrium
buffer = geq
bulk = T
velocity = velocity
[]
[Collision_temperature]
type = LBMBGKCollision
buffer = gpc
f = g
feq = geq
tau0 = tau_T
[]
# For fluid
[Compute_forces]
type = LBMComputeForces
buffer = F
rho0 = 'rho0'
temperature = T
T0 = 1.00
enable_buoyancy = true
gravity = g
gravity_direction = 2
[]
[Equilibrium_fluid]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[Collision_fluid]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = tau_f
[]
[Apply_forces]
type = LBMApplyForces
buffer = fpc
velocity = velocity
rho = density
forces = F
tau0 = tau_f
[]
[Residual]
type = LBMComputeResidual
speed = T
# TODO this buffer is redundant, but avoids 'missing parameter' error
buffer = T
[]
[]
#### Boundary ####
[Boundary]
##### for fluid
[wall]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = wall
[]
##### for temperature
[heat_source]
type = LBMNeumannBC
buffer = g
f_old = gpc
feq=geq
velocity = velocity
rho = T
gradient = 0.001
region_id = 3
boundary = regional
[]
[walls]
type = LBMDirichletBC
buffer = g
f_old = gpc
feq=geq
velocity = velocity
rho = T
value = 1.0
region_id = 2
boundary = regional
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = 'f g'
f_old = 'fpc gpc'
root_compute = Residual
[]
[Problem]
type = LatticeBoltzmannProblem
binary_media = binary_media
scalar_constant_names = 'rho0 T_C T_H tau_f tau_T g'
scalar_constant_values = '1.0 1.0 1.05 0.55 0.55 0.01'
substeps = 100
print_debug_output = true
[]
[Executioner]
type = Transient
num_steps = 1000
[]
[TensorOutputs]
[xdmf2]
type = XDMFTensorOutput
buffer = 'T density velocity'
output_mode = 'Cell Cell Cell'
enable_hdf5 = true
[]
[]
(test/tests/lbm/nee_3d_box_first.i)
[Domain]
dim = 3
nx = 8
ny = 8
nz = 8
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
add_body_force = true
body_force_x = 0.0001
[]
[]
[Boundary]
[left]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = first
boundary = left
[]
[right]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = first
boundary = right
[]
[top]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = first
boundary = top
[]
[bottom]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = first
boundary = bottom
[]
[front]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = first
boundary = front
[]
[back]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = first
boundary = back
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = nee_3d_box_first
csv = true
[]
(test/tests/lbm/channel3D.i)
[Domain]
dim = 3
nx = 10
ny = 10
nz = 10
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type=LBMTensorBuffer
buffer_type = mv
[]
[density]
type=LBMTensorBuffer
buffer_type = ms
[]
[speed]
type=LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_distribution]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_distribution_pc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type=LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type=LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
add_body_force = true
body_force_x = 0.0001
[]
[speed]
type = LBMComputeVelocityMagnitude
buffer = speed
velocity = velocity
[]
[residual]
type = LBMComputeResidual
buffer = speed
speed = speed
[]
[]
[Boundary]
[top]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = top
[]
[bottom]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = bottom
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 10
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[speed_min]
type = TensorExtremeValuePostprocessor
buffer = speed
value_type = MIN
[]
[speed_max]
type = TensorExtremeValuePostprocessor
buffer = speed
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[densty_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 11
[]
[Outputs]
file_base = channel3D
csv = true
[]
(test/tests/lbm/mixed_bcs_d3q19_reverse.i)
[Domain]
dim = 3
nx = 10
ny = 10
nz = 10
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[f_bounce_back]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type=LBMTensorBuffer
buffer_type = mv
[]
[density]
type=LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0001 0.0005 0.0'
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_f_bb]
type = LBMEquilibrium
buffer = f_bounce_back
bulk = density
velocity = velocity
[]
[]
[Solve]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
add_body_force = true
body_force_x = 0.0001
[]
[]
[Boundary]
[right]
type = LBMFixedZerothOrderBC
buffer = f
f = f
value = 1.11
boundary = right
[]
[left]
type = LBMFixedFirstOrderBC
buffer = f
f = f
value = 0.0001
boundary = left
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = f_bounce_back
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[densty_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = mixed_bcs_d3q19_reverse
csv = true
[]
(test/tests/lbm/convective_outflow_3d_left.i)
[Domain]
dim = 3
nx = 8
ny = 8
nz = 8
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
[]
[]
[Boundary]
[right]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = -0.005
uy = 0.0
uz = 0.0
order = first
boundary = right
[]
[left]
type = LBMConvectiveOutflow
buffer = f
f_old = f
convection_velocity = Uc
boundary = left
[]
[top]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = top
[]
[bottom]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = bottom
[]
[front]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = front
[]
[back]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = back
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
scalar_constant_names = 'Uc'
scalar_constant_values = '0.005'
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = convective_outflow_3d_left
csv = true
[]
(test/tests/lbm/convective_outflow_3d_front.i)
[Domain]
dim = 3
nx = 8
ny = 8
nz = 8
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
[]
[]
[Boundary]
[back]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = -0.005
order = first
boundary = back
[]
[front]
type = LBMConvectiveOutflow
buffer = f
f_old = f
convection_velocity = Uc
boundary = front
[]
[left]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = left
[]
[right]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = right
[]
[top]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = top
[]
[bottom]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = bottom
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
scalar_constant_names = 'Uc'
scalar_constant_values = '0.005'
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = convective_outflow_3d_front
csv = true
[]
(test/tests/lbm/convective_outflow_3d_back.i)
[Domain]
dim = 3
nx = 8
ny = 8
nz = 8
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
[]
[]
[Boundary]
[front]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.005
order = first
boundary = front
[]
[back]
type = LBMConvectiveOutflow
buffer = f
f_old = f
convection_velocity = Uc
boundary = back
[]
[left]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = left
[]
[right]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = right
[]
[top]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = top
[]
[bottom]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = bottom
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
scalar_constant_names = 'Uc'
scalar_constant_values = '0.005'
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = convective_outflow_3d_back
csv = true
[]
(test/tests/lbm/dirichlet_box.i)
[Domain]
dim = 3
nx = 5
ny = 5
nz = 5
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[density]
type=LBMTensorBuffer
buffer_type = ms
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[]
[TensorComputes]
[Initialize]
[init_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[non_equilibrium]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[post_collision_equilibrium]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[]
[Boundary]
[left]
type = LBMDirichletBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
value = 1.1
boundary = left
[]
[right]
type = LBMDirichletBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
value = 1.1
boundary = right
[]
[top]
type = LBMDirichletBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
value = 1.1
boundary = top
[]
[bottom]
type = LBMDirichletBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
value = 1.1
boundary = bottom
[]
[front]
type = LBMDirichletBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
value = 1.1
boundary = front
[]
[back]
type = LBMDirichletBC
buffer = f
f_old = fpc
feq = feq
velocity = velocity
rho = density
value = 1.1
boundary = back
[]
[]
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[densty_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = dirichlet_box
csv = true
[]
(test/tests/lbm/convective_outflow_3d_bottom.i)
[Domain]
dim = 3
nx = 8
ny = 8
nz = 8
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
[]
[]
[Boundary]
[top]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = -0.005
uz = 0.0
order = first
boundary = top
[]
[bottom]
type = LBMConvectiveOutflow
buffer = f
f_old = f
convection_velocity = Uc
boundary = bottom
[]
[left]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = left
[]
[right]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = right
[]
[front]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = front
[]
[back]
type = LBMBounceBack
buffer = f
f_old = fpc
boundary = back
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
scalar_constant_names = 'Uc'
scalar_constant_values = '0.005'
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = convective_outflow_3d_bottom
csv = true
[]
(test/tests/lbm/nee_3d_box_second.i)
[Domain]
dim = 3
nx = 10
ny = 10
nz = 10
mesh_mode = DUMMY
parallel_mode = REAL_SPACE
periodic_directions = 'X Y Z'
[]
[Stencil]
[d3q19]
type = LBMD3Q19
[]
[]
[TensorBuffers]
[f]
type = LBMTensorBuffer
buffer_type = df
[]
[feq]
type = LBMTensorBuffer
buffer_type = df
[]
[fpc]
type = LBMTensorBuffer
buffer_type = df
[]
[velocity]
type = LBMTensorBuffer
buffer_type = mv
[]
[density]
type = LBMTensorBuffer
buffer_type = ms
[]
[]
[TensorComputes]
[Initialize]
[initial_density]
type = LBMConstantTensor
buffer = density
constants = 1.0
[]
[initial_velocity]
type = LBMConstantTensor
buffer = velocity
constants = '0.0 0.0 0.0'
[]
[initial_feq]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[initial_f]
type = LBMEquilibrium
buffer = f
bulk = density
velocity = velocity
[]
[initial_fpc]
type = LBMEquilibrium
buffer = fpc
bulk = density
velocity = velocity
[]
[]
[Solve]
[equilibrium]
type = LBMEquilibrium
buffer = feq
bulk = density
velocity = velocity
[]
[collision]
type = LBMBGKCollision
buffer = fpc
f = f
feq = feq
tau0 = 1.0
[]
[density]
type = LBMComputeDensity
buffer = density
f = f
[]
[velocity]
type = LBMComputeVelocity
buffer = velocity
f = f
rho = density
[]
[]
[Boundary]
[left]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.005
uy = 0.0
uz = 0.0
order = second
boundary = left
[]
[right]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = density
prescribed_rho = 1.0
order = second
boundary = right
[]
[top]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = second
boundary = top
[]
[bottom]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = velocity
ux = 0.0
uy = 0.0
uz = 0.0
order = second
boundary = bottom
[]
[front]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = density
prescribed_rho = 1.0
order = second
boundary = front
[]
[back]
type = LBMNonEquilibriumExtrapolation
buffer = f
prescribe_type = density
prescribed_rho = 1.0
order = second
boundary = back
[]
[]
[]
[TensorSolver]
type = LBMStream
buffer = f
f_old = fpc
[]
[Problem]
type = LatticeBoltzmannProblem
substeps = 1
[]
[Postprocessors]
[velocity_min]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MIN
[]
[velocity_max]
type = TensorExtremeValuePostprocessor
buffer = velocity
value_type = MAX
[]
[density_min]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MIN
[]
[density_max]
type = TensorExtremeValuePostprocessor
buffer = density
value_type = MAX
[]
[]
[Executioner]
type = Transient
num_steps = 5
[]
[Outputs]
file_base = nee_3d_box_second
csv = true
[]