- first_boundaryFirst boundary to connect to.
C++ Type:BoundaryName
Controllable:No
Description:First boundary to connect to.
- first_componentFirst component to join
C++ Type:ComponentName
Controllable:No
Description:First component to join
- second_boundarySecond boundary to connect to.
C++ Type:BoundaryName
Controllable:No
Description:Second boundary to connect to.
- second_componentSecond component to join
C++ Type:ComponentName
Controllable:No
Description:Second component to join
ComponentJunction
Component to join two other components.
The ComponentJunction is an ActionComponent which creates a contiguous junction between two components. The following "junction_method" options are currently supported to join these two components at boundaries selected on each component:
stitch_mesheswhen the two components are already in contact, forming a conformal but not yet "stitched" meshextrude_boundaryfor extruding one boundary towards the other and stitching the extruded volume onto both surfaces. See additional information below.
There is currently no support for joining two components when the boundary meshes would not be conformal if they were in contact.
This components inherits from the following interfaces to help facilitate the definition of equations on its geometry:
ComponentPhysicsInterface to define Physics
ComponentMaterialPropertyInterface to define functor-based material properties on that component
ComponentInitialConditionInterface to define initial conditions for the variables defined on that component
ComponentBoundaryConditionInterface to define boundary conditions for the variables defined on that component
Additional details on the extrude_boundary option
To find the name of the boundaries to stitch, we recommend setting the verbose parameter on both the "first_component" and "second_component", and examining their intermediate mesh.
The extrude_boundary option has the following characteristics:
The spline curve guiding the extrusion uses the
directionattribute of the components to set its beginnning and end-direction.Thus, only components that either inherit from the
ComponentMeshTransformHelperclass or that have adirectioninput parameter are supported at this time.These directions should be pointing towards the outside of the component.
The spline curve guiding the extrusion is created by the BSplineCurveGenerator. It connected the centroids of the two component boundaries.
The extrusion of the first component surface follows this spline curve. It is then stitched to the second component surface.
Thus, extruding one surface onto the other can only be done if the meshes of the two surfaces would be conformal if they were translated and rotated (using the rotation from one component direction to the other) to be in contact.
It is the responsibility of the user to check that the extruded mesh does not overlap with other parts of the mesh (from other components for example). A MeshDiagnosticsGenerator can be connected to the final generator of the ComponentJunction by setting its input to <junction_name>_stitcher.
Input Parameters
- blockBlock name for the junction, if a block is created.
C++ Type:SubdomainName
Controllable:No
Description:Block name for the junction, if a block is created.
- enforce_all_nodes_match_on_boundariesTrueOnly stitch if all nodes match on the boundary. Defaults to true because there is a search algorithm that forces nodes to match assuming there are equal number of nodes on each target boundary.
Default:True
C++ Type:bool
Controllable:No
Description:Only stitch if all nodes match on the boundary. Defaults to true because there is a search algorithm that forces nodes to match assuming there are equal number of nodes on each target boundary.
- junction_methodextrude_boundaryHow to join the two components
Default:extrude_boundary
C++ Type:MooseEnum
Controllable:No
Description:How to join the two components
- n_elem_normalNumber of elements in the normal direction of the junction
C++ Type:unsigned int
Controllable:No
Description:Number of elements in the normal direction of the junction
- physicsPhysics object(s) active on the Component
C++ Type:std::vector<PhysicsName>
Controllable:No
Description:Physics object(s) active on the Component
- verboseFalseWhether the component setup should be verbose
Default:False
C++ Type:bool
Controllable:No
Description:Whether the component setup should be verbose
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.
Advanced Parameters
- define_functor_propertiesTrueIf true, define functor properties from the values provided
Default:True
C++ Type:bool
Controllable:No
Description:If true, define functor properties from the values provided
- define_material_propertiesTrueIf true, define material properties from the values provided
Default:True
C++ Type:bool
Controllable:No
Description:If true, define material properties from the values provided
- property_namesList of material properties that should be defined on this ActionComponent
C++ Type:std::vector<std::string>
Controllable:No
Description:List of material properties that should be defined on this ActionComponent
- property_valuesFunctors that provide the values of the material property on this ActionComponent. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:Functors that provide the values of the material property on this ActionComponent. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- use_ad_for_propertiesTrueWhether to use automatic differentiation for the properties defined
Default:True
C++ Type:bool
Controllable:No
Description:Whether to use automatic differentiation for the properties defined
Material And Functor Property Parameters
- edge_element_typeEDGE2Type of the EDGE elements to be generated.
Default:EDGE2
C++ Type:MooseEnum
Controllable:No
Description:Type of the EDGE elements to be generated.
- num_cps6Number of control points used to draw the curve. Miniumum of degree+1 points are required.
Default:6
C++ Type:unsigned int
Controllable:No
Description:Number of control points used to draw the curve. Miniumum of degree+1 points are required.
- sharpnessSharpness of curve bend. See BSplineCurveGenerator for explanation of the meaning given to sharpness
C++ Type:double
Unit:(no unit assumed)
Range:sharpness>0 & sharpness<=1
Controllable:No
Description:Sharpness of curve bend. See BSplineCurveGenerator for explanation of the meaning given to sharpness
1D Mesh Junction Parameters
- end_radial_growth_rate0Ending rate of radial expansion.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Ending rate of radial expansion.
- radial_growth_methodCUBICFunctional form to change radius while extruding along curve.
Default:CUBIC
C++ Type:MooseEnum
Controllable:No
Description:Functional form to change radius while extruding along curve.
- start_radial_growth_rate0Starting rate of radial expansion.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Starting rate of radial expansion.
Radial Expansion In 2D And 3D Junction Parameters
- fixed_value_bc_boundariesBoundaries on which to apply the fixed value boundary condition(s). Outer ordering is variables, inner order is surfaces
C++ Type:std::vector<std::vector<BoundaryName>>
Controllable:No
Description:Boundaries on which to apply the fixed value boundary condition(s). Outer ordering is variables, inner order is surfaces
- fixed_value_bc_valuesFunctors that provide the fixed value boundary condition(s) values. Outer ordering is variables, inner order is surfaces. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<std::vector<MooseFunctorName>>
Unit:(no unit assumed)
Controllable:No
Description:Functors that provide the fixed value boundary condition(s) values. Outer ordering is variables, inner order is surfaces. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- fixed_value_bc_variablesList of variables that have fixed value boundary condition(s) defined on this component
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:List of variables that have fixed value boundary condition(s) defined on this component
- flux_bc_boundariesBoundaries on which to apply the flux boundary condition(s). Outer ordering is variables, inner order is surfaces
C++ Type:std::vector<std::vector<BoundaryName>>
Controllable:No
Description:Boundaries on which to apply the flux boundary condition(s). Outer ordering is variables, inner order is surfaces
- flux_bc_valuesFunctors that provide the flux boundary condition(s) values. Outer ordering is variables, inner order is surfaces. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<std::vector<MooseFunctorName>>
Unit:(no unit assumed)
Controllable:No
Description:Functors that provide the flux boundary condition(s) values. Outer ordering is variables, inner order is surfaces. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- flux_bc_variablesList of variables that have flux boundary condition(s) defined on this component
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:List of variables that have flux boundary condition(s) defined on this component
Variable Boundary Conditions Parameters
- initial_condition_valuesFunctors that provide the initial values of the variables on this ActionComponent. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:Functors that provide the initial values of the variables on this ActionComponent. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- initial_condition_variablesList of variables that should have an initial condition defined on the blocks of this ActionComponent
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:List of variables that should have an initial condition defined on the blocks of this ActionComponent