- auto_directionIf using a generated mesh, the dimension(s) you want to mark as periodic.
C++ Type:MultiMooseEnum
Controllable:No
Description:If using a generated mesh, the dimension(s) you want to mark as periodic.
- depends_onOther RayBCs that this RayBC depends on
C++ Type:std::vector<std::string>
Controllable:No
Description:Other RayBCs that this RayBC depends on
- inv_transform_funcFunctions that specify the inverse transformation
C++ Type:std::vector<std::string>
Controllable:No
Description:Functions that specify the inverse transformation
- primaryBoundary associated with the primary boundary.
C++ Type:BoundaryName
Controllable:No
Description:Boundary associated with the primary boundary.
- raysThe name of the Rays associated with this object; only used if Ray registration is enabled within the study. If no Rays are supplied, this object will be applied to all Rays.
C++ Type:std::vector<std::string>
Controllable:No
Description:The name of the Rays associated with this object; only used if Ray registration is enabled within the study. If no Rays are supplied, this object will be applied to all Rays.
- secondaryBoundary associated with the secondary boundary.
C++ Type:BoundaryName
Controllable:No
Description:Boundary associated with the secondary boundary.
- studyThe RayTracingStudy associated with this object. If none provided, this will default to the one study that exists.
C++ Type:UserObjectName
Controllable:No
Description:The RayTracingStudy associated with this object. If none provided, this will default to the one study that exists.
- 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>
Unit:(no unit assumed)
Controllable:No
Description:Vector that translates coordinates on the primary boundary to coordinates on the secondary boundary.
PeriodicRayBC
A RayBC that enforces periodic boundaries.
The definition of the periodic boundaries is handled the same as in the standard MOOSE periodic boundary condition system. This includes defining periodic boundaries:
Automatically based on the mesh shape
With a user-defined translation
With a function transformation for each spatial dimension
See the periodic boundary condition syntax documentation for more information.
Rays can be propagated across multiple periodic boundaries at the same time when BCs are applied at points (sides in 2D and corners in 3D) where one periodic boundary neighbors another (or multiple). However, this capability is not fully supported with distributed meshes due to insufficient element ghosting. A warning will be emitted if neighboring periodic boundaries are found when using a distributed mesh.
Example syntax
In this example, a 2D generated mesh is used and periodic ray boundaries are added automatically in the x and y directions:
[RayBCs<<<{"href": "../../syntax/RayBCs/index.html"}>>>]
[periodic]
type = PeriodicRayBC<<<{"description": "A RayBC that enforces periodic boundaries.", "href": "PeriodicRayBC.html"}>>>
auto_direction<<<{"description": "If using a generated mesh, the dimension(s) you want to mark as periodic."}>>> = 'x y'
[]
[](modules/ray_tracing/test/tests/raybcs/periodic_ray_bc/periodic_ray_bc_2d.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.