AddPeriodicBCAction
Periodic boundary conditions enforce value constraints on separate boundaries in the mesh. This capability is useful for modeling quasi-infinite domains and systems with conserved quantities.
MOOSE has full support for Periodic BCs in
1D, 2D, and 3D.
With mesh adaptivity.
Can be restricted to specific variables.
Supports arbitrary translation vectors for defining periodicity.
Automatic Periodic Boundary Detection (recommended)
[BCs]
[./Periodic]
[./all]
variable = u
auto_direction = 'x y'
[../]
[../]
[]
(test/tests/bcs/periodic/auto_periodic_bc_test.i)Translation Periodic Boundaries
[BCs]
[./Periodic]
[./x]
variable = u
primary = 3
secondary = 1
translation = '40 0 0'
[../]
[./y]
variable = u
primary = 0
secondary = 2
translation = '0 40 0'
[../]
[../]
[]
(test/tests/bcs/periodic/periodic_bc_test.i)Function Transform Periodic Boundaries
[Functions]
[./tr_x]
type = ParsedFunction
value = -x*cos(pi/3)
[../]
[./tr_y]
type = ParsedFunction
value = x*sin(pi/3)
[../]
[./itr_x]
type = ParsedFunction
value = -x/cos(pi/3)
[../]
[./itr_y]
type = ParsedFunction
value = 0
[../]
[]
[BCs]
[./Periodic]
[./x]
primary = 1
secondary = 4
transform_func = 'tr_x tr_y'
inv_transform_func = 'itr_x itr_y'
[../]
[../]
[]
(test/tests/bcs/periodic/trapezoid.i)Input Parameters
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector
Description:If specified only the blocks named will be visited and made active
- auto_directionIf using a generated mesh, you can specifiy just the dimension(s) you want to mark as periodic
C++ Type:std::vector
Description:If using a generated mesh, you can specifiy just the dimension(s) you want to mark as periodic
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector
Description:If specified blocks matching these identifiers will be skipped.
- inv_transform_funcFunctions that specify the inverse transformation
C++ Type:std::vector
Description:Functions that specify the inverse transformation
- primaryBoundary ID associated with the primary boundary.
C++ Type:BoundaryName
Description:Boundary ID associated with the primary boundary.
- secondaryBoundary ID associated with the secondary boundary.
C++ Type:BoundaryName
Description:Boundary ID associated with the secondary boundary.
- transform_funcFunctions that specify the transformation
C++ Type:std::vector
Description:Functions that specify the transformation
- translationVector that translates coordinates on the primary boundary to coordinates on the secondary boundary.
C++ Type:libMesh::VectorValue
Description:Vector that translates coordinates on the primary boundary to coordinates on the secondary boundary.
- variableVariable for the periodic boundary
C++ Type:std::vector
Description:Variable for the periodic boundary