Works on top of NodalNormalsPreprocessor. More...
#include <CrackFrontDefinition.h>
Public Member Functions | |
CrackFrontDefinition (const InputParameters ¶meters) | |
virtual | ~CrackFrontDefinition () |
virtual void | initialSetup () |
virtual void | initialize () |
virtual void | finalize () |
virtual void | execute () |
const Node * | getCrackFrontNodePtr (const unsigned int node_index) const |
const Point * | getCrackFrontPoint (const unsigned int point_index) const |
const RealVectorValue & | getCrackFrontTangent (const unsigned int point_index) const |
Real | getCrackFrontForwardSegmentLength (const unsigned int point_index) const |
Real | getCrackFrontBackwardSegmentLength (const unsigned int point_index) const |
const RealVectorValue & | getCrackDirection (const unsigned int point_index) const |
Real | getDistanceAlongFront (const unsigned int point_index) const |
bool | hasAngleAlongFront () const |
Real | getAngleAlongFront (const unsigned int point_index) const |
unsigned int | getNumCrackFrontPoints () const |
bool | treatAs2D () const |
RealVectorValue | rotateToCrackFrontCoords (const RealVectorValue vector, const unsigned int point_index) const |
RankTwoTensor | rotateToCrackFrontCoords (const RankTwoTensor tensor, const unsigned int point_index) const |
RealVectorValue | rotateFromCrackFrontCoordsToGlobal (const RealVectorValue vector, const unsigned int point_index) const |
rotate a vector from crack front cartesian coordinate to global cartesian coordinate More... | |
void | calculateRThetaToCrackFront (const Point qp, const unsigned int point_index, Real &r, Real &theta) const |
calculate r and theta in the crack front polar coordinates More... | |
unsigned int | calculateRThetaToCrackFront (const Point qp, Real &r, Real &theta) const |
calculate r and theta in the crack front polar coordinate relatively to the closest crack front point. More... | |
bool | isNodeOnIntersectingBoundary (const Node *const node) const |
bool | isPointWithIndexOnIntersectingBoundary (const unsigned int point_index) const |
Real | getCrackFrontTangentialStrain (const unsigned int node_index) const |
bool | hasCrackFrontNodes () const |
bool | isNodeInRing (const unsigned int ring_index, const dof_id_type connected_node_id, const unsigned int node_index) const |
Real | DomainIntegralQFunction (unsigned int crack_front_point_index, unsigned int ring_index, const Node *const current_node) const |
Real | DomainIntegralTopologicalQFunction (unsigned int crack_front_point_index, unsigned int ring_index, const Node *const current_node) const |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Types | |
enum | DIRECTION_METHOD { CRACK_DIRECTION_VECTOR, CRACK_MOUTH, CURVED_CRACK_FRONT } |
enum | END_DIRECTION_METHOD { NO_SPECIAL_TREATMENT, END_CRACK_DIRECTION_VECTOR } |
enum | CRACK_NODE_TYPE { MIDDLE_NODE, END_1_NODE, END_2_NODE } |
enum | CRACK_GEOM_DEFINITION { CRACK_FRONT_NODES, CRACK_FRONT_POINTS } |
Protected Member Functions | |
void | getCrackFrontNodes (std::set< dof_id_type > &nodes) |
void | orderCrackFrontNodes (std::set< dof_id_type > &nodes) |
void | orderEndNodes (std::vector< dof_id_type > &end_nodes) |
void | pickLoopCrackEndNodes (std::vector< dof_id_type > &end_nodes, std::set< dof_id_type > &nodes, std::map< dof_id_type, std::vector< dof_id_type >> &node_to_line_elem_map, std::vector< std::vector< dof_id_type >> &line_elems) |
unsigned int | maxNodeCoor (std::vector< Node * > &nodes, unsigned int dir0=0) |
void | updateCrackFrontGeometry () |
void | updateDataForCrackDirection () |
RealVectorValue | calculateCrackFrontDirection (const Point &crack_front_point, const RealVectorValue &tangent_direction, const CRACK_NODE_TYPE ntype) const |
void | calculateTangentialStrainAlongFront () |
void | createQFunctionRings () |
void | addNodesToQFunctionRing (std::set< dof_id_type > &nodes_new_ring, const std::set< dof_id_type > &nodes_old_ring, const std::set< dof_id_type > &nodes_all_rings, const std::set< dof_id_type > &nodes_neighbor1, const std::set< dof_id_type > &nodes_neighbor2, std::vector< std::vector< const Elem * >> &nodes_to_elem_map) |
void | projectToFrontAtPoint (Real &dist_to_front, Real &dist_along_tangent, unsigned int crack_front_point_index, const Node *const current_node) const |
Static Protected Attributes | |
static const Real | _tol = 1e-10 |
Works on top of NodalNormalsPreprocessor.
Definition at line 36 of file CrackFrontDefinition.h.
|
protected |
Enumerator | |
---|---|
CRACK_FRONT_NODES | |
CRACK_FRONT_POINTS |
Definition at line 122 of file CrackFrontDefinition.h.
|
protected |
Enumerator | |
---|---|
MIDDLE_NODE | |
END_1_NODE | |
END_2_NODE |
Definition at line 115 of file CrackFrontDefinition.h.
|
protected |
Enumerator | |
---|---|
CRACK_DIRECTION_VECTOR | |
CRACK_MOUTH | |
CURVED_CRACK_FRONT |
Definition at line 102 of file CrackFrontDefinition.h.
|
protected |
Enumerator | |
---|---|
NO_SPECIAL_TREATMENT | |
END_CRACK_DIRECTION_VECTOR |
Definition at line 109 of file CrackFrontDefinition.h.
CrackFrontDefinition::CrackFrontDefinition | ( | const InputParameters & | parameters | ) |
Definition at line 102 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 240 of file CrackFrontDefinition.C.
|
protected |
|
protected |
void CrackFrontDefinition::calculateRThetaToCrackFront | ( | const Point | qp, |
const unsigned int | point_index, | ||
Real & | r, | ||
Real & | theta | ||
) | const |
calculate r and theta in the crack front polar coordinates
qp | the point cooridnate |
point_index | the crack front point index |
Definition at line 1150 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), InteractionIntegralSM::computeQpIntegral(), InteractionIntegral::computeQpIntegral(), InteractionIntegralBenchmarkBC::computeQpValue(), EnrichmentFunctionCalculation::crackTipEnrichementFunctionAtPoint(), EnrichmentFunctionCalculation::crackTipEnrichementFunctionDerivativeAtPoint(), and CrackTipEnrichmentCutOffBC::shouldApply().
unsigned int CrackFrontDefinition::calculateRThetaToCrackFront | ( | const Point | qp, |
Real & | r, | ||
Real & | theta | ||
) | const |
calculate r and theta in the crack front polar coordinate relatively to the closest crack front point.
It does additional loop over all crack front points to find the one closest to the point qp.
Definition at line 1264 of file CrackFrontDefinition.C.
|
protected |
Definition at line 1327 of file CrackFrontDefinition.C.
Referenced by execute().
|
protected |
Real CrackFrontDefinition::DomainIntegralQFunction | ( | unsigned int | crack_front_point_index, |
unsigned int | ring_index, | ||
const Node *const | current_node | ||
) | const |
Definition at line 1675 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeIntegral(), InteractionIntegralSM::computeIntegral(), and InteractionIntegral::computeIntegral().
Real CrackFrontDefinition::DomainIntegralTopologicalQFunction | ( | unsigned int | crack_front_point_index, |
unsigned int | ring_index, | ||
const Node *const | current_node | ||
) | const |
Definition at line 1729 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeIntegral(), InteractionIntegralSM::computeIntegral(), and InteractionIntegral::computeIntegral().
|
virtual |
Definition at line 243 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 303 of file CrackFrontDefinition.C.
Real CrackFrontDefinition::getAngleAlongFront | ( | const unsigned int | point_index | ) | const |
const RealVectorValue & CrackFrontDefinition::getCrackDirection | ( | const unsigned int | point_index | ) | const |
Definition at line 1090 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral().
Real CrackFrontDefinition::getCrackFrontBackwardSegmentLength | ( | const unsigned int | point_index | ) | const |
Definition at line 1084 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral(), InteractionIntegralSM::computeQpIntegral(), InteractionIntegral::computeQpIntegral(), DomainIntegralQFunction::computeValue(), and DomainIntegralQFunction().
Real CrackFrontDefinition::getCrackFrontForwardSegmentLength | ( | const unsigned int | point_index | ) | const |
Definition at line 1078 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral(), InteractionIntegralSM::computeQpIntegral(), InteractionIntegral::computeQpIntegral(), DomainIntegralQFunction::computeValue(), and DomainIntegralQFunction().
const Node * CrackFrontDefinition::getCrackFrontNodePtr | ( | const unsigned int | node_index | ) | const |
Definition at line 1048 of file CrackFrontDefinition.C.
Referenced by calculateTangentialStrainAlongFront(), getCrackFrontPoint(), CrackFrontData::initialize(), and isPointWithIndexOnIntersectingBoundary().
|
protected |
const Point * CrackFrontDefinition::getCrackFrontPoint | ( | const unsigned int | point_index | ) | const |
Definition at line 1057 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), CrackDataSampler::execute(), DomainIntegralQFunction::projectToFrontAtPoint(), projectToFrontAtPoint(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
const RealVectorValue & CrackFrontDefinition::getCrackFrontTangent | ( | const unsigned int | point_index | ) | const |
Definition at line 1071 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::projectToFrontAtPoint(), and projectToFrontAtPoint().
Real CrackFrontDefinition::getCrackFrontTangentialStrain | ( | const unsigned int | node_index | ) | const |
Definition at line 1448 of file CrackFrontDefinition.C.
Referenced by InteractionIntegralSM::getValue(), and InteractionIntegral::getValue().
Real CrackFrontDefinition::getDistanceAlongFront | ( | const unsigned int | point_index | ) | const |
Definition at line 1096 of file CrackFrontDefinition.C.
Referenced by CrackDataSampler::execute().
unsigned int CrackFrontDefinition::getNumCrackFrontPoints | ( | ) | const |
Definition at line 1117 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), CrackDataSampler::initialize(), initialSetup(), isPointWithIndexOnIntersectingBoundary(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
bool CrackFrontDefinition::hasAngleAlongFront | ( | ) | const |
Definition at line 1102 of file CrackFrontDefinition.C.
Referenced by getAngleAlongFront(), CrackDataSampler::initialize(), and updateCrackFrontGeometry().
|
inline |
|
virtual |
Definition at line 298 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 252 of file CrackFrontDefinition.C.
bool CrackFrontDefinition::isNodeInRing | ( | const unsigned int | ring_index, |
const dof_id_type | connected_node_id, | ||
const unsigned int | node_index | ||
) | const |
Definition at line 1651 of file CrackFrontDefinition.C.
Referenced by DomainIntegralTopologicalQFunction::computeValue(), and DomainIntegralTopologicalQFunction().
bool CrackFrontDefinition::isNodeOnIntersectingBoundary | ( | const Node *const | node | ) | const |
Definition at line 1290 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::computeValue(), DomainIntegralQFunction(), and isPointWithIndexOnIntersectingBoundary().
bool CrackFrontDefinition::isPointWithIndexOnIntersectingBoundary | ( | const unsigned int | point_index | ) | const |
Definition at line 1307 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::initialSetup(), and initialSetup().
|
protected |
|
protected |
|
protected |
|
protected |
Definition at line 565 of file CrackFrontDefinition.C.
Referenced by orderCrackFrontNodes().
|
protected |
Definition at line 1742 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction().
RealVectorValue CrackFrontDefinition::rotateFromCrackFrontCoordsToGlobal | ( | const RealVectorValue | vector, |
const unsigned int | point_index | ||
) | const |
rotate a vector from crack front cartesian coordinate to global cartesian coordinate
point_index | the crack front point index |
Definition at line 1133 of file CrackFrontDefinition.C.
Referenced by EnrichmentFunctionCalculation::rotateFromCrackFrontCoordsToGlobal().
RankTwoTensor CrackFrontDefinition::rotateToCrackFrontCoords | ( | const RankTwoTensor | tensor, |
const unsigned int | point_index | ||
) | const |
Definition at line 1141 of file CrackFrontDefinition.C.
RealVectorValue CrackFrontDefinition::rotateToCrackFrontCoords | ( | const RealVectorValue | vector, |
const unsigned int | point_index | ||
) | const |
Definition at line 1126 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), InteractionIntegralSM::computeQpIntegral(), and InteractionIntegral::computeQpIntegral().
|
inline |
Definition at line 59 of file CrackFrontDefinition.h.
Referenced by JIntegral::computeQpIntegral(), InteractionIntegralSM::computeQpIntegral(), InteractionIntegral::computeQpIntegral(), DomainIntegralTopologicalQFunction::initialSetup(), DomainIntegralQFunction::initialSetup(), JIntegral::initialSetup(), InteractionIntegralSM::initialSetup(), and InteractionIntegral::initialSetup().
|
protected |
|
protected |
Definition at line 905 of file CrackFrontDefinition.C.
Referenced by updateCrackFrontGeometry().
|
static |
Definition at line 26 of file CrackFrontDefinition.C.
|
protected |
Definition at line 139 of file CrackFrontDefinition.h.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
protected |
Definition at line 128 of file CrackFrontDefinition.h.
|
protected |
Definition at line 156 of file CrackFrontDefinition.h.
Referenced by getCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Definition at line 155 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), initialSetup(), orderCrackFrontNodes(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 145 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Definition at line 146 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Definition at line 147 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Definition at line 136 of file CrackFrontDefinition.h.
Referenced by getCrackDirection(), and updateCrackFrontGeometry().
|
protected |
Definition at line 167 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), and isNodeInRing().
|
protected |
Definition at line 134 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), getCrackFrontPoint(), getNumCrackFrontPoints(), and initialSetup().
|
protected |
Definition at line 172 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Definition at line 149 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and updateDataForCrackDirection().
|
protected |
Definition at line 148 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), hasAngleAlongFront(), and initialSetup().
|
protected |
Definition at line 152 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 153 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 143 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), CrackFrontDefinition(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 159 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Definition at line 160 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Definition at line 161 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Definition at line 138 of file CrackFrontDefinition.h.
Referenced by getDistanceAlongFront(), and updateCrackFrontGeometry().
|
protected |
Definition at line 144 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), CrackFrontDefinition(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Definition at line 165 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition().
|
protected |
Definition at line 133 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), getCrackFrontPoint(), getNumCrackFrontPoints(), hasCrackFrontNodes(), initialSetup(), isPointWithIndexOnIntersectingBoundary(), and updateCrackFrontGeometry().
|
protected |
Definition at line 157 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateDataForCrackDirection().
|
protected |
Definition at line 151 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and isNodeOnIntersectingBoundary().
|
protected |
Definition at line 150 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), initialSetup(), and orderCrackFrontNodes().
|
protected |
Definition at line 169 of file CrackFrontDefinition.h.
Referenced by DomainIntegralQFunction(), and initialSetup().
|
protected |
Definition at line 170 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Definition at line 171 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Definition at line 164 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and createQFunctionRings().
|
protected |
Definition at line 129 of file CrackFrontDefinition.h.
Referenced by addNodesToQFunctionRing(), createQFunctionRings(), getCrackFrontNodePtr(), getCrackFrontNodes(), initialSetup(), isNodeOnIntersectingBoundary(), orderCrackFrontNodes(), orderEndNodes(), pickLoopCrackEndNodes(), and updateDataForCrackDirection().
|
protected |
Definition at line 173 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Definition at line 132 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), createQFunctionRings(), getCrackFrontNodePtr(), getNumCrackFrontPoints(), initialSetup(), isNodeInRing(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Definition at line 142 of file CrackFrontDefinition.h.
Referenced by updateCrackFrontGeometry().
|
protected |
Definition at line 163 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Definition at line 168 of file CrackFrontDefinition.h.
Referenced by initialSetup().
|
protected |
Definition at line 141 of file CrackFrontDefinition.h.
Referenced by rotateFromCrackFrontCoordsToGlobal(), rotateToCrackFrontCoords(), and updateCrackFrontGeometry().
|
protected |
Definition at line 137 of file CrackFrontDefinition.h.
Referenced by getCrackFrontBackwardSegmentLength(), getCrackFrontForwardSegmentLength(), and updateCrackFrontGeometry().
|
protected |
Definition at line 140 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), finalize(), getCrackFrontTangentialStrain(), and initialSetup().
|
protected |
Definition at line 158 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateDataForCrackDirection().
|
protected |
Definition at line 162 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), execute(), finalize(), getCrackFrontTangentialStrain(), and initialSetup().
|
protected |
Definition at line 135 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), calculateTangentialStrainAlongFront(), getCrackFrontTangent(), and updateCrackFrontGeometry().
|
staticprotected |
Definition at line 130 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), getCrackFrontNodes(), maxNodeCoor(), orderEndNodes(), pickLoopCrackEndNodes(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 154 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), CrackFrontDefinition(), createQFunctionRings(), DomainIntegralQFunction(), execute(), getCrackFrontNodes(), initialSetup(), orderCrackFrontNodes(), treatAs2D(), and updateCrackFrontGeometry().