SCZMInterfaceKernelSmallStrain

Shifted CZM Interface kernel to use when using the Small Strain kinematic formulation.

The SCZMInterfaceKernelSmallStrain assembles cohesive traction on a surrogate interface for small-strain problems. It evaluates the displacement jump at the true interface and can include a directional correction based on the bulk stress and constitutive tangent. This object is normally created by the ShiftedCohesiveZone action.

Input Parameters

  • componentThe component of the displacement vector this kernel is working on: component == 0 => X, 1 => Y, 2 => Z

    C++ Type:unsigned int

    Controllable:No

    Description:The component of the displacement vector this kernel is working on: component == 0 => X, 1 => Y, 2 => Z

  • displacementsThe string containing displacement variables

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The string containing displacement variables

  • neighbor_varThe variable on the other side of the interface.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The variable on the other side of the interface.

  • variableThe name of the variable that this residual object operates on

    C++ Type:NonlinearVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable that this residual object operates on

Required Parameters

  • base_nameMaterial property base name

    C++ Type:std::string

    Controllable:No

    Description:Material property base name

  • 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

  • directional_correctionTrueAdd the directional correction terms.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Add the directional correction terms.

  • no_shiftedFalseDisable the shifted integration corrections while retaining the same interface kernel and cohesive-zone model. Shifted integration is enabled by default and is the intended SBM mode; disable it only to isolate the effect of the correction terms for verification and comparison.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Disable the shifted integration corrections while retaining the same interface kernel and cohesive-zone model. Shifted integration is enabled by default and is the intended SBM mode; disable it only to isolate the effect of the correction terms for verification and comparison.

  • sbm_distance_uoUserObject that provides signed distance and normal vector calculations.

    C++ Type:UserObjectName

    Controllable:No

    Description:UserObject that provides signed distance and normal vector calculations.

  • stressstressName of the stress tensor material property.

    Default:stress

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the stress tensor material property.

  • tangentJacobian_multName of the material Jacobian tensor property.

    Default:Jacobian_mult

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the material Jacobian tensor property.

  • tangent_definitionautoMathematical definition of the tangent material property. 'auto' recognizes the standard Jacobian_mult property as d(stress)/d(strain) and pk1_jacobian as d(PK1)/d(F). Select 'stress_wrt_strain' or 'pk1_wrt_deformation_gradient' explicitly for a custom tangent property; use the latter only when the property is known to be d(PK1)/d(F).

    Default:auto

    C++ Type:MooseEnum

    Options:auto, stress_wrt_strain, pk1_wrt_deformation_gradient

    Controllable:No

    Description:Mathematical definition of the tangent material property. 'auto' recognizes the standard Jacobian_mult property as d(stress)/d(strain) and pk1_jacobian as d(PK1)/d(F). Select 'stress_wrt_strain' or 'pk1_wrt_deformation_gradient' explicitly for a custom tangent property; use the latter only when the property is known to be d(PK1)/d(F).

  • traction_global_nametraction_globalName of the traction material property (global frame)

    Default:traction_global

    C++ Type:std::string

    Controllable:No

    Description:Name of the traction material property (global frame)

  • volumetric_locking_correctionFalseWhether to apply volumetric locking correction to the directional correction Jacobian. This setting should be consistent with the volumetric locking correction used in the bulk finite element formulation to ensure the interface Jacobian is consistent with the bulk stress.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to apply volumetric locking correction to the directional correction Jacobian. This setting should be consistent with the volumetric locking correction used in the bulk finite element formulation to ensure the interface Jacobian is consistent with the bulk stress.

Optional Parameters

  • absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution

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

    Controllable:No

    Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

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

    Controllable:No

    Description:The extra tags for the matrices this Kernel should fill

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

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

    Controllable:No

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_onlyFalseWhether this object is only doing assembly to matrices (no vectors)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether this object is only doing assembly to matrices (no vectors)

  • matrix_tagssystemThe tag for the matrices this Kernel should fill

    Default:system

    C++ Type:MultiMooseEnum

    Options:nontime, system

    Controllable:No

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsnontimeThe tag for the vectors this Kernel should fill

    Default:nontime

    C++ Type:MultiMooseEnum

    Options:nontime, time

    Controllable:No

    Description:The tag for the vectors this Kernel should fill

Contribution To Tagged Field Data 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

  • diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • diag_save_in_var_sideThis parameter must exist if diag_save_in variables are specified and must have the same length as diag_save_in. This vector specifies whether the corresponding aux_var should save-in jacobian contributions from the primary ('p') or secondary side ('s').

    C++ Type:MultiMooseEnum

    Options:m, s

    Controllable:No

    Description:This parameter must exist if diag_save_in variables are specified and must have the same length as diag_save_in. This vector specifies whether the corresponding aux_var should save-in jacobian contributions from the primary ('p') or secondary side ('s').

  • save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • save_in_var_sideThis parameter must exist if save_in variables are specified and must have the same length as save_in. This vector specifies whether the corresponding aux_var should save-in residual contributions from the primary ('p') or secondary side ('s').

    C++ Type:MultiMooseEnum

    Options:m, s

    Controllable:No

    Description:This parameter must exist if save_in variables are specified and must have the same length as save_in. This vector specifies whether the corresponding aux_var should save-in residual contributions from the primary ('p') or secondary side ('s').

Residual And Jacobian Debug Output 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