# Crack Front Definition

!syntax description /UserObjects/CrackFrontDefinition

## Description

This object is used in the computation of fracture domain integrals. It is used to store information about the location of the crack front, and provides functions used by other objects involved in fracture integral calculation. It is not necessary to define this block in the input file, as it can be set up using the DomainIntegralAction.

## Example Input File Syntax

[./crack_tip]
type = CrackFrontDefinition
crack_direction_method = CrackDirectionVector
crack_front_points = '0.5 1.0 0'
crack_direction_vector = '1 0 0'
2d = true
axis_2d = 2
[../]

(modules/xfem/test/tests/crack_tip_enrichment/edge_crack_2d.i)

## 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

### 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

• 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

C++ Type:std::vector

Options:

• crack_front_pointsSet of points to define crack front

C++ Type:std::vector

Options:

Description:Set of points to define crack front

• 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

• closed_loopFalseSet of points forms forms a closed loop

Default:False

C++ Type:bool

Options:

Description:Set of points forms forms a closed loop

• 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_zVariable containing the z displacement

C++ Type:VariableName

Options:

Description:Variable containing the z displacement

• disp_yVariable containing the y displacement

C++ Type:VariableName

Options:

Description:Variable containing the y displacement

• disp_xVariable containing the x displacement

C++ Type:VariableName

Options:

Description:Variable containing 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

• 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, FINAL, CUSTOM.

Default:TIMESTEP_END

C++ Type:ExecFlagEnum

Options:NONE INITIAL LINEAR NONLINEAR TIMESTEP_END TIMESTEP_BEGIN FINAL CUSTOM

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, FINAL, CUSTOM.

• crack_direction_vectorDirection of crack propagation

C++ Type:libMesh::VectorValue

Options:

Description:Direction of crack propagation

C++ Type:std::vector

Options:

• 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

• 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

### Optional Parameters

• control_tagsAdds user-defined labels for accessing object parameters via control logic.

C++ Type:std::vector

Options:

Description:Adds user-defined labels for accessing object parameters via control logic.

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Options:

Description:Set the enabled status of the MooseObject.

• 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

Options:

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

• force_preauxFalseForces the GeneralUserObject to be executed in PREAUX

Default:False

C++ Type:bool

Options:

Description:Forces the GeneralUserObject to be executed in PREAUX

• 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

Options:

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.