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'
[../]
[../]
[]
(../../../SoftwareDownloads/moose/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'
[../]
[../]
[]
(../../../SoftwareDownloads/moose/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'
[../]
[../]
[]
(../../../SoftwareDownloads/moose/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<std::string>
Controllable:No
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<std::string>
Controllable:No
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<std::string>
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
- inv_transform_funcFunctions that specify the inverse transformation
C++ Type:std::vector<std::string>
Controllable:No
Description:Functions that specify the inverse transformation
- primaryBoundary ID associated with the primary boundary.
C++ Type:BoundaryName
Controllable:No
Description:Boundary ID associated with the primary boundary.
- secondaryBoundary ID associated with the secondary boundary.
C++ Type:BoundaryName
Controllable:No
Description:Boundary ID associated with the secondary boundary.
- transform_funcFunctions that specify the transformation
C++ Type:std::vector<std::string>
Controllable:No
Description:Functions that specify the transformation
- translationVector that translates coordinates on the primary boundary to coordinates on the secondary boundary.
C++ Type:libMesh::VectorValue<double>
Controllable:No
Description:Vector that translates coordinates on the primary boundary to coordinates on the secondary boundary.
- variableVariable for the periodic boundary
C++ Type:std::vector<VariableName>
Controllable:No
Description:Variable for the periodic boundary