VectorMagnitudeFunctorMaterial

This class takes up to three scalar-valued functors corresponding to vector components or a single vector functor and computes the Euclidean norm.

Overview

This class either takes 1-3 scalar-valued (e.g. Real, ADReal) functors or a single vector functor and creates a functor that returns the Euclidean norm of the input. For creating a Real-returning functor that takes in Real input, use the VectorMagnitudeFunctorMaterial type in the input file. For a ADReal-returning functor that takes in ADReal input, use ADVectorMagnitudeFunctorMaterial. If using component inputs and the y or z-component functor parameters are not provided, then they are defaulted to 0.

Example Input File Syntax

Scalar-component inputs

In this example, ADVectorMagnitudeFunctorMaterial is used to define the vector magnitude of the vector component inputs u and v which happen to be nonlinear variables in this case. u varies from 0 to 1 from bottom to top and v varies from 0 to 1 from left to right, such that the magnitude field is symmetric about the line y=x with the field value increasing moving to the top-right.

[Materials]
  [functor]
    type = ADVectorMagnitudeFunctorMaterial
    x_functor = u
    y_functor = v
    vector_magnitude_name = mat_mag
  []
[]
(moose/test/tests/materials/functor_properties/vector-magnitude/test.i)

Vector input

In this example, the functor provided by ADVectorMagnitudeFunctorMaterial (which we name mat_mag to avoid collision with the auxiliary variable mag) computes the norm of the vector functor u, which is a nonlinear variable in this simulation.

[Materials]
  [functor]
    type = ADVectorMagnitudeFunctorMaterial
    vector_functor = u
    vector_magnitude_name = mat_mag
  []
[]
(moose/test/tests/materials/functor_properties/vector-magnitude/vector-test.i)

Input Parameters

  • vector_magnitude_nameThe name of the vector magnitude functor that we are creating. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the vector magnitude functor that we are creating. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

Required Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

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

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • declare_suffixAn optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

  • execute_onALWAYSThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

    Default:ALWAYS

    C++ Type:ExecFlagEnum

    Options:NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, ALWAYS

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

  • vector_functorThe name of a vector functor that we will take the magnitude of. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of a vector functor that we will take the magnitude of. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

  • x_functorThe functor corresponding to the x component. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The functor corresponding to the x component. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

  • y_functor0The functor corresponding to the y component. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

    Default:0

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The functor corresponding to the y component. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

  • z_functor0The functor corresponding to the z component. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

    Default:0

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The functor corresponding to the z component. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

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.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

Advanced Parameters

  • output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)

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

    Controllable:No

    Description:List of material properties, from this material, to output (outputs must also be defined to an output type)

  • outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object

    Default:none

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

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Outputs Parameters