CylinderComponent

Cylindrical component.

The CylinderComponent is a simple ActionComponent which adds a cylinder to the mesh. The user selects the dimensionality of the cylinder using the "dimension" parameter.

  • 0D is currently unsupported

  • 1D makes the cylinder a simple 1D line, with attributes to keep track of its true radius and volume

  • 2D makes the cylinder a rectangle within a local 2D RZ frame of reference

  • 3D is not implemented, and would create a 3D cylindrical mesh.

Physics can be created on this component using the "physics" parameter. This parameter accepts a vector of names of Physics. The name of the Physics is generally found in the innermost block. For example, in the snippet below, the diffusion Physics is called added_from_component.

[Physics<<<{"href": "../../syntax/Physics/index.html"}>>>]
  [Diffusion<<<{"href": "../../syntax/Physics/Diffusion/index.html"}>>>]
    [FiniteVolume<<<{"href": "../../syntax/Physics/Diffusion/FiniteVolume/index.html"}>>>]
      [block_specified]
        diffusivity_functor<<<{"description": "Functor specifying the diffusivity. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number."}>>> = 1
        block<<<{"description": "Blocks (subdomains) that this Physics is active on."}>>> = '2 cyl1'
        dirichlet_boundaries<<<{"description": "Boundaries on which to apply a fixed value"}>>> = 'left cylinder_1_left'
        boundary_values<<<{"description": "Functors to compute the diffusive flux on each Dirichlet boundary'"}>>> = '1 3'
        source_functor<<<{"description": "Source term in the diffusion problem. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number."}>>> = '1'
        source_coef<<<{"description": "Coefficient multiplying the source"}>>> = '1'
      []
      [added_from_component]
        variable_name<<<{"description": "Variable name for the equation"}>>> = v
        diffusivity_functor<<<{"description": "Functor specifying the diffusivity. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number."}>>> = 2
        source_functor<<<{"description": "Source term in the diffusion problem. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number."}>>> = '2'
        source_coef<<<{"description": "Coefficient multiplying the source"}>>> = '1'
        dirichlet_boundaries<<<{"description": "Boundaries on which to apply a fixed value"}>>> = 'cylinder_2_right'
        boundary_values<<<{"description": "Functors to compute the diffusive flux on each Dirichlet boundary'"}>>> = '2'
      []
    []
  []
[]
(moose/test/tests/actioncomponents/interfaces/component_with_physics.i)

The cylinder component on which the component_with_physics DiffusionCG is active is then created as shown below:

[ActionComponents<<<{"href": "../../syntax/ActionComponents/index.html"}>>>]
  [cylinder_1]
    type = CylinderComponent<<<{"description": "Cylindrical component.", "href": "CylinderComponent.html"}>>>
    dimension<<<{"description": "Dimension of the cylinder. 0 for a point (not implemented), 1 for an (axial) 1D line, 2 for a 2D-RZ cylinder, and 3 for a 3D cylinder (not implemented)"}>>> = 2
    radius<<<{"description": "Radius of the cylinder"}>>> = 2
    length<<<{"description": "Length/Height of the cylinder"}>>> = 10
    n_axial<<<{"description": "Number of axial elements of the cylinder"}>>> = 1
    n_radial<<<{"description": "Number of radial elements of the cylinder"}>>> = 1
    position<<<{"description": "Positional offset of the cylinder"}>>> = '1 0 0'
    direction<<<{"description": "Direction of the cylinder"}>>> = '0 1 0'
    block<<<{"description": "Block name for the cylinder"}>>> = 'cyl1'
  []
  [cylinder_2]
    type = CylinderComponent<<<{"description": "Cylindrical component.", "href": "CylinderComponent.html"}>>>
    dimension<<<{"description": "Dimension of the cylinder. 0 for a point (not implemented), 1 for an (axial) 1D line, 2 for a 2D-RZ cylinder, and 3 for a 3D cylinder (not implemented)"}>>> = 2
    radius<<<{"description": "Radius of the cylinder"}>>> = 4
    length<<<{"description": "Length/Height of the cylinder"}>>> = 1
    n_axial<<<{"description": "Number of axial elements of the cylinder"}>>> = 1
    n_radial<<<{"description": "Number of radial elements of the cylinder"}>>> = 1
    position<<<{"description": "Positional offset of the cylinder"}>>> = '2 0 0'
    direction<<<{"description": "Direction of the cylinder"}>>> = '0 0 1'
    physics<<<{"description": "Physics object(s) active on the Component"}>>> = 'added_from_component'
    block<<<{"description": "Block name for the cylinder"}>>> = 'cyl2'
    verbose<<<{"description": "Whether the component setup should be verbose"}>>> = true
  []
[]
(moose/test/tests/actioncomponents/interfaces/component_with_physics.i)

Input Parameters

  • dimensionDimension of the cylinder. 0 for a point (not implemented), 1 for an (axial) 1D line, 2 for a 2D-RZ cylinder, and 3 for a 3D cylinder (not implemented)

    C++ Type:MooseEnum

    Options:0, 1, 2, 3

    Controllable:No

    Description:Dimension of the cylinder. 0 for a point (not implemented), 1 for an (axial) 1D line, 2 for a 2D-RZ cylinder, and 3 for a 3D cylinder (not implemented)

  • directionDirection of the cylinder

    C++ Type:libMesh::Point

    Controllable:No

    Description:Direction of the cylinder

  • lengthLength/Height of the cylinder

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Length/Height of the cylinder

  • n_axialNumber of axial elements of the cylinder

    C++ Type:unsigned int

    Controllable:No

    Description:Number of axial elements of the cylinder

  • positionPositional offset of the cylinder

    C++ Type:libMesh::Point

    Controllable:No

    Description:Positional offset of the cylinder

  • radiusRadius of the cylinder

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Radius of the cylinder

Required Parameters

  • blockBlock name for the cylinder

    C++ Type:SubdomainName

    Controllable:No

    Description:Block name for the cylinder

  • n_azimuthalNumber of azimuthal elements of the cylinder

    C++ Type:unsigned int

    Controllable:No

    Description:Number of azimuthal elements of the cylinder

  • n_radialNumber of radial elements of the cylinder

    C++ Type:unsigned int

    Controllable:No

    Description:Number of radial elements of the cylinder

  • 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

    C++ Type:std::vector<MooseFunctorName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Functors that provide the values of the material property on this ActionComponent

  • 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

  • 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

    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

  • 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

    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

  • 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

    C++ Type:std::vector<MooseFunctorName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Functors that provide the initial values of the variables on this ActionComponent

  • 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

Variable Initialization Parameters