# DomainIntegralAction

!syntax description /DomainIntegral/DomainIntegralAction

## Description

The DomainIntegral action is used to set up all of the objects used in computing all fracture domain integrals, including the -integral, interaction integral, and T-stress. To use the fracture domain integrals, one must set up a model that incorporates a crack using one of two techniques:

Meshed crack: The crack can be explicity included by creating a mesh with a topology that conforms to the crack. The location of the crack tip is provided to the code by defining a nodeset that includes all nodes in the finite element mesh that are located along the crack front. For 2D analyses, this nodeset would only contain a single node at the crack tip. For 3D analyses, the mesh connectivity is used to construct a set of line segments that connect these nodes, and this is used to order the crack nodes.

XFEM: Rather than defining the topology of the crack through the mesh, XFEM can be used to cut the mesh. In this case, a set of points, which does not need to conform to points in the mesh, must be provided by the user, and is used to define the location of the crack for coumputing the fracture integrals. Fracture integrals are computed at the locations of these points, in the order provided by the user.

## Input Parameters

• crack_direction_methodMethod to determine direction of crack propagation. Choices are: CrackDirectionVector CrackMouth CurvedCrackFront

C++ Type:MooseEnum

Options:CrackDirectionVector CrackMouth CurvedCrackFront

Description:Method to determine direction of crack propagation. Choices are: CrackDirectionVector CrackMouth CurvedCrackFront

• incrementalFalseFlag to indicate whether an incremental or total model is being used.

Default:False

C++ Type:bool

Options:

Description:Flag to indicate whether an incremental or total model is being used.

• integralsDomain integrals to calculate. Choices are: JIntegral InteractionIntegralKI InteractionIntegralKII InteractionIntegralKIII InteractionIntegralT

C++ Type:MultiMooseEnum

Options:JIntegral InteractionIntegralKI InteractionIntegralKII InteractionIntegralKIII InteractionIntegralT

Description:Domain integrals to calculate. Choices are: JIntegral InteractionIntegralKI InteractionIntegralKII InteractionIntegralKIII InteractionIntegralT

### Required Parameters

• crack_direction_vector_end_1Direction of crack propagation for the node at end 1 of the crack

C++ Type:libMesh::VectorValue

Options:

Description:Direction of crack propagation for the node at end 1 of the crack

• crack_direction_vector_end_2Direction of crack propagation for the node at end 2 of the crack

C++ Type:libMesh::VectorValue

Options:

Description:Direction of crack propagation for the node at end 2 of the crack

• familyLAGRANGESpecifies the family of FE shape functions to use for q AuxVariables

Default:LAGRANGE

C++ Type:std::string

Options:

Description:Specifies the family of FE shape functions to use for q AuxVariables

• last_ringThe number of rings of nodes to generate

C++ Type:unsigned int

Options:

Description:The number of rings of nodes to generate

• intersecting_boundaryBoundaries intersected by ends of crack

C++ Type:std::vector

Options:

Description:Boundaries intersected by ends of crack

• orderFIRSTSpecifies the order of the FE shape function to use for q AuxVariables

Default:FIRST

C++ Type:std::string

Options:

Description:Specifies the order of the FE shape function to use for q AuxVariables

• inactiveIf specified blocks matching these identifiers will be skipped.

C++ Type:std::vector

Options:

Description:If specified blocks matching these identifiers will be skipped.

• convert_J_to_KFalseConvert J-integral to stress intensity factor K.

Default:False

C++ Type:bool

Options:

Description:Convert J-integral to stress intensity factor K.

C++ Type:std::vector

Options:

C++ Type:std::vector

Options:

Description:Outer radius for volume integral domain

• crack_front_pointsSet of points to define crack front

C++ Type:std::vector

Options:

Description:Set of points to define crack front

• poissons_ratioPoisson's ratio

C++ Type:double

Options:

Description:Poisson's ratio

• eigenstrain_namesList of eigenstrains applied in the strain calculation

C++ Type:std::vector

Options:

Description:List of eigenstrains applied in the strain calculation

• number_points_from_providerThe number of crack front points, only needed if crack_front_points_provider is used.

C++ Type:unsigned int

Options:

Description:The number of crack front points, only needed if crack_front_points_provider is used.

• boundaryThe list of boundary IDs from the mesh where this boundary condition applies

C++ Type:std::vector

Options:

Description:The list of boundary IDs from the mesh where this boundary condition applies

C++ Type:std::vector

Options:

Description:Inner radius for volume integral domain

• ring_lastThe last ring of elements for volume integral domain

C++ Type:unsigned int

Options:

Description:The last ring of elements for volume integral domain

• displacementsThe displacements appropriate for the simulation geometry and coordinate system

C++ Type:std::vector

Options:

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

• solid_mechanicsFalseSet to true if the solid_mechanics system is used.

Default:False

C++ Type:bool

Options:

Description:Set to true if the solid_mechanics system is used.

C++ Type:std::vector

Options:

• ring_firstThe first ring of elements for volume integral domain

C++ Type:unsigned int

Options:

Description:The first ring of elements for volume integral domain

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

Default:Geometry

C++ Type:MooseEnum

Options:Geometry Topology

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

• disp_zThe z displacement

C++ Type:VariableName

Options:

Description:The z displacement

• disp_yThe y displacement

C++ Type:VariableName

Options:

Description:The y displacement

• disp_xThe x displacement

C++ Type:VariableName

Options:

Description:The x displacement

• crack_end_direction_methodNoSpecialTreatmentMethod to determine direction of crack propagation at ends of crack. Choices are: NoSpecialTreatment CrackDirectionVector

Default:NoSpecialTreatment

C++ Type:MooseEnum

Options:NoSpecialTreatment CrackDirectionVector

Description:Method to determine direction of crack propagation at ends of crack. Choices are: NoSpecialTreatment CrackDirectionVector

• 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

Options:

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

• nringsThe number of rings of nodes to generate

C++ Type:unsigned int

Options:

Description:The number of rings of nodes to generate

• active__all__ If specified only the blocks named will be visited and made active

Default:__all__

C++ Type:std::vector

Options:

Description:If specified only the blocks named will be visited and made active

• output_variableVariable values to be reported along the crack front

C++ Type:std::vector

Options:

Description:Variable values to be reported along the crack front

• youngs_modulusYoung's modulus

C++ Type:double

Options:

Description:Young's modulus

• crack_direction_vectorDirection of crack propagation

C++ Type:libMesh::VectorValue

Options:

Description:Direction of crack propagation

• closed_loopFalseSet of points forms forms a closed loop

Default:False

C++ Type:bool

Options:

Description:Set of points forms forms a closed loop

• output_qTrueOutput q

Default:True

C++ Type:bool

Options:

Description:Output q

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

Default:Distance

C++ Type:MooseEnum

Options:Angle Distance

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

• axis_2d2Out of plane axis for models treated as two-dimensional (0=x, 1=y, 2=z)

Default:2

C++ Type:unsigned int

Options:

Description:Out of plane axis for models treated as two-dimensional (0=x, 1=y, 2=z)

• crack_mouth_boundaryBoundaries whose average coordinate defines the crack mouth

C++ Type:std::vector

Options:

Description:Boundaries whose average coordinate defines the crack mouth

• 2dFalseTreat body as two-dimensional

Default:False

C++ Type:bool

Options:

Description:Treat body as two-dimensional

• crack_front_points_providerThe UserObject provides the crack front points from XFEM GeometricCutObject

C++ Type:UserObjectName

Options:

Description:The UserObject provides the crack front points from XFEM GeometricCutObject

• temperatureThe temperature

C++ Type:VariableName

Options:

Description:The temperature

• equivalent_kFalseCalculate an equivalent K from KI, KII and KIII, assuming self-similar crack growth.

Default:False

C++ Type:bool

Options:

Description:Calculate an equivalent K from KI, KII and KIII, assuming self-similar crack growth.

• t_stressFalseCalculate T-stress

Default:False

C++ Type:bool

Options:

Description:Calculate T-stress

• q_function_ringsFalseGenerate rings of nodes for q-function

Default:False

C++ Type:bool

Options:

Description:Generate rings of nodes for q-function

• first_ringThe number of rings of nodes to generate

C++ Type:unsigned int

Options:

Description:The number of rings of nodes to generate

• blockThe block ids where integrals are defined

C++ Type:std::vector

Options:

Description:The block ids where integrals are defined