Interaction Integral

Computes the interaction integral, which is used to compute various fracture mechanics parameters at a crack tip, including KI, KII, KIII, and the T stress.

Description

This is used for the computation of interaction integrals at the points along a crack front within the tensor_mechanics system. This object is not typically defined by a user, but is set up automatically using the DomainIntegralAction.

Theory

Details on the theory behind the computation of the various fracture integrals, including the interaction integral, are provided here.

Input Parameters

  • K_factorConversion factor between interaction integral and stress intensity factor K

    C++ Type:double

    Controllable:No

    Description:Conversion factor between interaction integral and stress intensity factor K

  • crack_front_definitionThe CrackFrontDefinition user object name

    C++ Type:UserObjectName

    Controllable:No

    Description:The CrackFrontDefinition user object name

  • displacementsThe displacements appropriate for the simulation geometry and coordinate system

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

    Controllable:No

    Description:The displacements appropriate for the simulation geometry and coordinate system

  • poissons_ratioPoisson's ratio for the material.

    C++ Type:double

    Controllable:No

    Description:Poisson's ratio for the material.

  • ring_indexRing ID

    C++ Type:unsigned int

    Controllable:No

    Description:Ring ID

  • sif_modeKIStress intensity factor to calculate. Choices are: KI KII KIII T

    Default:KI

    C++ Type:MooseEnum

    Options:KI, KII, KIII, T

    Controllable:No

    Description:Stress intensity factor to calculate. Choices are: KI KII KIII T

  • youngs_modulusYoung's modulus of the material.

    C++ Type:double

    Controllable:No

    Description:Young's modulus of the material.

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

  • body_forceMaterial defining body force

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Material defining body force

  • contains_complete_historyFalseSet this flag to indicate that the values in all vectors declared by this VPP represent a time history (e.g. with each invocation, new values are added and old values are never removed). This changes the output so that only a single file is output and updated with each invocation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set this flag to indicate that the values in all vectors declared by this VPP represent a time history (e.g. with each invocation, new values are added and old values are never removed). This changes the output so that only a single file is output and updated with each invocation

  • eigenstrain_gradientMaterial defining gradient of eigenstrain tensor

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Material defining gradient of eigenstrain tensor

  • execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, ALWAYS.

    Default:TIMESTEP_END

    C++ Type:ExecFlagEnum

    Options:NONE, INITIAL, LINEAR, NONLINEAR, 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, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, ALWAYS.

  • functionally_graded_youngs_modulusSpatially varying elasticity modulus variable. This input is required when using the functionally graded material capability.

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Spatially varying elasticity modulus variable. This input is required when using the functionally graded material capability.

  • functionally_graded_youngs_modulus_crack_dir_gradientGradient of the spatially varying Young's modulus provided in 'functionally_graded_youngs_modulus' in the direction of crack extension.

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Gradient of the spatially varying Young's modulus provided in 'functionally_graded_youngs_modulus' in the direction of crack extension.

  • parallel_typeREPLICATEDSet how the data is represented within the VectorPostprocessor (VPP); 'distributed' indicates that data within the VPP is distributed and no auto communication is performed, this setting will result in parallel output within the CSV output; 'replicated' indicates that the data within the VPP is correct on processor 0, the data will automatically be broadcast to all processors unless the '_auto_broadcast' param is set to false within the validParams function.

    Default:REPLICATED

    C++ Type:MooseEnum

    Options:DISTRIBUTED, REPLICATED

    Controllable:No

    Description:Set how the data is represented within the VectorPostprocessor (VPP); 'distributed' indicates that data within the VPP is distributed and no auto communication is performed, this setting will result in parallel output within the CSV output; 'replicated' indicates that the data within the VPP is correct on processor 0, the data will automatically be broadcast to all processors unless the '_auto_broadcast' param is set to false within the validParams function.

  • position_typeDistanceThe method used to calculate position along crack front. Options are: Angle Distance

    Default:Distance

    C++ Type:MooseEnum

    Options:Angle, Distance

    Controllable:No

    Description:The method used to calculate position along crack front. Options are: Angle Distance

  • 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

    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.

  • q_function_typeGeometryThe method used to define the integration domain. Options are: Geometry Topology

    Default:Geometry

    C++ Type:MooseEnum

    Options:Geometry, Topology

    Controllable:No

    Description:The method used to define the integration domain. Options are: Geometry Topology

  • symmetry_planeAccount for a symmetry plane passing through the plane of the crack, normal to the specified axis (0=x, 1=y, 2=z)

    C++ Type:unsigned int

    Controllable:No

    Description:Account for a symmetry plane passing through the plane of the crack, normal to the specified axis (0=x, 1=y, 2=z)

  • temperatureThe temperature (optional). Must be provided to correctly compute stress intensity factors in models with thermal strain gradients.

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

    Controllable:No

    Description:The temperature (optional). Must be provided to correctly compute stress intensity factors in models with thermal strain gradients.

Optional Parameters

  • allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

    Default:False

    C++ Type:bool

    Controllable:No

    Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

  • 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.

  • execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

    Default:0

    C++ Type:int

    Controllable:No

    Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

  • force_postauxFalseForces the UserObject to be executed in POSTAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in POSTAUX

  • force_preauxFalseForces the UserObject to be executed in PREAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREAUX

  • force_preicFalseForces the UserObject to be executed in PREIC during initial setup

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREIC during initial setup

  • 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

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

    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

  • 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

  • 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