MaterialRealCMMAux

Populate an auxiliary variable with an entry from a ColumnMajorMatrix material property.

Description

MaterialRealCMMAux can be used to populate an AuxVariable with an element of a material property that is of type, ColumnMajorMatrix (CMM). In MASTODON, a common use case is accessing the deformation or force CMMs from link elements when the LinearSpring material or any of the seismic isolator materials (e.g., ComputeFPIsolatorElasticity) is used. This AuxKernel and the corresponding AuxVariable should be block-restricted to blocks where the material property given by the property input parameter below is defined.

For example, the following input file syntax will create the AuxVariable field called global_force_x with the X direction force in the spring element modeled using the LinearSpring material. Users can look at the LinearSpring.C file in the source code to see that this material has several material properties such as "global_forces", "global_moments", etc. In the case of the linear spring material, the "global_forces" material property is a CMM of size 6x1 and stores the forces in the spring in the global co-ordinate system. The AuxKernel to make this calculation is listed below.

[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
  [global_force_x]
    type = MaterialRealCMMAux<<<{"description": "Populate an auxiliary variable with an entry from a ColumnMajorMatrix material property.", "href": "MaterialRealCMMAux.html"}>>>
    property<<<{"description": "The material property name."}>>> = global_forces
    row<<<{"description": "The row component to consider for this kernel"}>>> = 0
    column<<<{"description": "The column component to consider for this kernel"}>>> = 0
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = global_force_x
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = '0'
  []
[]
(test/tests/auxkernels/materialrealcmm/spring_static.i)

In this input, the AuxKernel takes the element (0, 0) from the CMM material property named, "global_forces" in the linear spring material. (See LinearSpring.C for other material properties.) In this example, the linear spring material is only defined in block '0' and therefore this AuxKernel and AuxVariable are also restricted to this block. The element (0, 0) of the material property "global_forces" corresponds to the axial force in the spring. Currently, in order to know what each of the elements in a material property CMM correspond to, users will either have to go through the source code or reach out to one of the MASTODON developers here.

Input Parameters

  • propertyThe material property name.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:The material property name.

  • variableThe name of the variable that this object applies to

    C++ Type:AuxVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable that this object applies to

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

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

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

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh

  • column0The column component to consider for this kernel

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The column component to consider for this kernel

  • execute_onLINEAR TIMESTEP_ENDThe 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:LINEAR TIMESTEP_END

    C++ Type:ExecFlagEnum

    Options:XFEM_MARK, NONE, INITIAL, LINEAR, LINEAR_CONVERGENCE, NONLINEAR, NONLINEAR_CONVERGENCE, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, MULTIAPP_FIXED_POINT_CONVERGENCE, FINAL, CUSTOM, PRE_DISPLACE

    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.

  • factor1The factor by which to multiply your material property for visualization

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The factor by which to multiply your material property for visualization

  • offset0The offset to add to your material property for visualization

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The offset to add to your material property for visualization

  • row0The row component to consider for this kernel

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The row component to consider for this kernel

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.

  • 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

  • selected_qpEvaluate the material property at a specified quadrature point. This only needs to be used if you are interested in a particular quadrature point in each element. Otherwise do not include this parameter in your input file.

    C++ Type:unsigned int

    Controllable:No

    Description:Evaluate the material property at a specified quadrature point. This only needs to be used if you are interested in a particular quadrature point in each element. Otherwise do not include this parameter in your input file.

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material 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 attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

Input Files