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 cooridnate More... | |
unsigned int | calculateRThetaToCrackFront (const Point qp, Real &r, Real &theta) const |
calculate r and theta in the crack front polar cooridnate 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 |
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 37 of file CrackFrontDefinition.h.
|
protected |
Enumerator | |
---|---|
CRACK_FRONT_NODES | |
CRACK_FRONT_POINTS |
Definition at line 121 of file CrackFrontDefinition.h.
|
protected |
|
protected |
Enumerator | |
---|---|
CRACK_DIRECTION_VECTOR | |
CRACK_MOUTH | |
CURVED_CRACK_FRONT |
Definition at line 101 of file CrackFrontDefinition.h.
|
protected |
Enumerator | |
---|---|
NO_SPECIAL_TREATMENT | |
END_CRACK_DIRECTION_VECTOR |
Definition at line 108 of file CrackFrontDefinition.h.
CrackFrontDefinition::CrackFrontDefinition | ( | const InputParameters & | parameters | ) |
Definition at line 99 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 237 of file CrackFrontDefinition.C.
|
protected |
|
protected |
Definition at line 984 of file CrackFrontDefinition.C.
Referenced by updateCrackFrontGeometry().
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 cooridnate
qp | the point cooridnate |
point_index | the crack front point index |
Definition at line 1147 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), InteractionIntegral::computeQpIntegral(), InteractionIntegralSM::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 cooridnate 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 1261 of file CrackFrontDefinition.C.
|
protected |
Definition at line 1324 of file CrackFrontDefinition.C.
Referenced by execute().
|
protected |
Definition at line 1470 of file CrackFrontDefinition.C.
Referenced by initialSetup().
Real CrackFrontDefinition::DomainIntegralQFunction | ( | unsigned int | crack_front_point_index, |
unsigned int | ring_index, | ||
const Node *const | current_node | ||
) | const |
Definition at line 1685 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeIntegral(), InteractionIntegral::computeIntegral(), and InteractionIntegralSM::computeIntegral().
Real CrackFrontDefinition::DomainIntegralTopologicalQFunction | ( | unsigned int | crack_front_point_index, |
unsigned int | ring_index, | ||
const Node *const | current_node | ||
) | const |
Definition at line 1739 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeIntegral(), InteractionIntegral::computeIntegral(), and InteractionIntegralSM::computeIntegral().
|
virtual |
Definition at line 240 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 300 of file CrackFrontDefinition.C.
Real CrackFrontDefinition::getAngleAlongFront | ( | const unsigned int | point_index | ) | const |
Definition at line 1105 of file CrackFrontDefinition.C.
Referenced by CrackDataSampler::execute().
const RealVectorValue & CrackFrontDefinition::getCrackDirection | ( | const unsigned int | point_index | ) | const |
Definition at line 1087 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral().
Real CrackFrontDefinition::getCrackFrontBackwardSegmentLength | ( | const unsigned int | point_index | ) | const |
Definition at line 1081 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral(), InteractionIntegral::computeQpIntegral(), InteractionIntegralSM::computeQpIntegral(), DomainIntegralQFunction::computeValue(), and DomainIntegralQFunction().
Real CrackFrontDefinition::getCrackFrontForwardSegmentLength | ( | const unsigned int | point_index | ) | const |
Definition at line 1075 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral(), InteractionIntegral::computeQpIntegral(), InteractionIntegralSM::computeQpIntegral(), DomainIntegralQFunction::computeValue(), and DomainIntegralQFunction().
const Node * CrackFrontDefinition::getCrackFrontNodePtr | ( | const unsigned int | node_index | ) | const |
Definition at line 1045 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 1054 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 1068 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::projectToFrontAtPoint(), and projectToFrontAtPoint().
Real CrackFrontDefinition::getCrackFrontTangentialStrain | ( | const unsigned int | node_index | ) | const |
Definition at line 1458 of file CrackFrontDefinition.C.
Referenced by InteractionIntegral::getValue(), and InteractionIntegralSM::getValue().
Real CrackFrontDefinition::getDistanceAlongFront | ( | const unsigned int | point_index | ) | const |
Definition at line 1093 of file CrackFrontDefinition.C.
Referenced by CrackDataSampler::execute().
unsigned int CrackFrontDefinition::getNumCrackFrontPoints | ( | ) | const |
Definition at line 1114 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), CrackDataSampler::initialize(), initialSetup(), isPointWithIndexOnIntersectingBoundary(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
bool CrackFrontDefinition::hasAngleAlongFront | ( | ) | const |
Definition at line 1099 of file CrackFrontDefinition.C.
Referenced by getAngleAlongFront(), CrackDataSampler::initialize(), and updateCrackFrontGeometry().
|
inline |
Definition at line 88 of file CrackFrontDefinition.h.
Referenced by CrackFrontData::initialize().
|
virtual |
Definition at line 295 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 249 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 1661 of file CrackFrontDefinition.C.
Referenced by DomainIntegralTopologicalQFunction::computeValue(), and DomainIntegralTopologicalQFunction().
bool CrackFrontDefinition::isNodeOnIntersectingBoundary | ( | const Node *const | node | ) | const |
Definition at line 1287 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::computeValue(), DomainIntegralQFunction(), and isPointWithIndexOnIntersectingBoundary().
bool CrackFrontDefinition::isPointWithIndexOnIntersectingBoundary | ( | const unsigned int | point_index | ) | const |
Definition at line 1304 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::initialSetup(), and initialSetup().
|
protected |
|
protected |
Definition at line 372 of file CrackFrontDefinition.C.
Referenced by initialSetup().
|
protected |
|
protected |
Definition at line 562 of file CrackFrontDefinition.C.
Referenced by orderCrackFrontNodes().
|
protected |
Definition at line 1752 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 1130 of file CrackFrontDefinition.C.
Referenced by EnrichmentFunctionCalculation::rotateFromCrackFrontCoordsToGlobal().
RealVectorValue CrackFrontDefinition::rotateToCrackFrontCoords | ( | const RealVectorValue | vector, |
const unsigned int | point_index | ||
) | const |
Definition at line 1123 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), InteractionIntegral::computeQpIntegral(), and InteractionIntegralSM::computeQpIntegral().
RankTwoTensor CrackFrontDefinition::rotateToCrackFrontCoords | ( | const RankTwoTensor | tensor, |
const unsigned int | point_index | ||
) | const |
Definition at line 1138 of file CrackFrontDefinition.C.
|
inline |
Definition at line 58 of file CrackFrontDefinition.h.
Referenced by JIntegral::computeQpIntegral(), InteractionIntegral::computeQpIntegral(), InteractionIntegralSM::computeQpIntegral(), DomainIntegralTopologicalQFunction::initialSetup(), DomainIntegralQFunction::initialSetup(), JIntegral::initialSetup(), InteractionIntegral::initialSetup(), and InteractionIntegralSM::initialSetup().
|
protected |
Definition at line 707 of file CrackFrontDefinition.C.
Referenced by initialSetup().
|
protected |
Definition at line 902 of file CrackFrontDefinition.C.
Referenced by updateCrackFrontGeometry().
|
protected |
Definition at line 138 of file CrackFrontDefinition.h.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
protected |
Definition at line 127 of file CrackFrontDefinition.h.
|
protected |
Definition at line 155 of file CrackFrontDefinition.h.
Referenced by getCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Definition at line 154 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), initialSetup(), orderCrackFrontNodes(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 144 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
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 135 of file CrackFrontDefinition.h.
Referenced by getCrackDirection(), and updateCrackFrontGeometry().
|
protected |
Definition at line 166 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), and isNodeInRing().
|
protected |
Definition at line 133 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), getCrackFrontPoint(), getNumCrackFrontPoints(), and initialSetup().
|
protected |
Definition at line 171 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Definition at line 148 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and updateDataForCrackDirection().
|
protected |
Definition at line 147 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), hasAngleAlongFront(), and initialSetup().
|
protected |
Definition at line 151 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 152 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 142 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), CrackFrontDefinition(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 158 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
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 137 of file CrackFrontDefinition.h.
Referenced by getDistanceAlongFront(), and updateCrackFrontGeometry().
|
protected |
Definition at line 143 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), CrackFrontDefinition(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Definition at line 164 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition().
|
protected |
Definition at line 132 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), getCrackFrontPoint(), getNumCrackFrontPoints(), hasCrackFrontNodes(), initialSetup(), isPointWithIndexOnIntersectingBoundary(), and updateCrackFrontGeometry().
|
protected |
Definition at line 156 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateDataForCrackDirection().
|
protected |
Definition at line 150 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and isNodeOnIntersectingBoundary().
|
protected |
Definition at line 149 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), initialSetup(), and orderCrackFrontNodes().
|
protected |
Definition at line 168 of file CrackFrontDefinition.h.
Referenced by DomainIntegralQFunction(), and initialSetup().
|
protected |
Definition at line 169 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Definition at line 170 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Definition at line 163 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and createQFunctionRings().
|
protected |
Definition at line 128 of file CrackFrontDefinition.h.
Referenced by addNodesToQFunctionRing(), createQFunctionRings(), getCrackFrontNodePtr(), getCrackFrontNodes(), initialSetup(), isNodeOnIntersectingBoundary(), orderCrackFrontNodes(), orderEndNodes(), pickLoopCrackEndNodes(), and updateDataForCrackDirection().
|
protected |
Definition at line 172 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Definition at line 131 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), createQFunctionRings(), getCrackFrontNodePtr(), getNumCrackFrontPoints(), initialSetup(), isNodeInRing(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Definition at line 141 of file CrackFrontDefinition.h.
Referenced by updateCrackFrontGeometry().
|
protected |
Definition at line 162 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Definition at line 167 of file CrackFrontDefinition.h.
Referenced by initialSetup().
|
protected |
Definition at line 140 of file CrackFrontDefinition.h.
Referenced by rotateFromCrackFrontCoordsToGlobal(), rotateToCrackFrontCoords(), and updateCrackFrontGeometry().
|
protected |
Definition at line 136 of file CrackFrontDefinition.h.
Referenced by getCrackFrontBackwardSegmentLength(), getCrackFrontForwardSegmentLength(), and updateCrackFrontGeometry().
|
protected |
Definition at line 139 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), finalize(), getCrackFrontTangentialStrain(), and initialSetup().
|
protected |
Definition at line 157 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateDataForCrackDirection().
|
protected |
Definition at line 161 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), execute(), finalize(), getCrackFrontTangentialStrain(), and initialSetup().
|
protected |
Definition at line 134 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), calculateTangentialStrainAlongFront(), getCrackFrontTangent(), and updateCrackFrontGeometry().
|
staticprotected |
Definition at line 129 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), getCrackFrontNodes(), maxNodeCoor(), orderEndNodes(), pickLoopCrackEndNodes(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Definition at line 153 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), CrackFrontDefinition(), createQFunctionRings(), DomainIntegralQFunction(), execute(), getCrackFrontNodes(), initialSetup(), orderCrackFrontNodes(), treatAs2D(), and updateCrackFrontGeometry().