Class used in fracture integrals to define geometric characteristics of the crack front. More...
#include <CrackFrontDefinition.h>
Public Types | |
typedef DataFileName | DataFileParameterType |
enum | TEST_TYPE |
Public Member Functions | |
CrackFrontDefinition (const InputParameters ¶meters) | |
virtual | ~CrackFrontDefinition () |
virtual void | initialSetup () override |
virtual void | initialize () override |
virtual void | finalize () override |
virtual void | execute () override |
void | updateNumberOfCrackFrontPoints (const std::size_t num_points) |
Change the number of crack front nodes. More... | |
const Node * | getCrackFrontNodePtr (const std::size_t node_index) const |
Get the node pointer for a specified node on the crack front. More... | |
const Point * | getCrackFrontPoint (const std::size_t point_index) const |
Get a Point object for a specified point on the crack front. More... | |
const RealVectorValue & | getCrackFrontTangent (const std::size_t point_index) const |
Get the vector tangent to the crack front at a specified position. More... | |
const RealVectorValue & | getCrackFrontNormal (const std::size_t point_index) const |
Get the vector normal to the crack front at a specified position. More... | |
Real | getCrackFrontForwardSegmentLength (const std::size_t point_index) const |
Get the length of the line segment on the crack front ahead of the specified position. More... | |
Real | getCrackFrontBackwardSegmentLength (const std::size_t point_index) const |
Get the length of the line segment on the crack front behind the specified position. More... | |
const RealVectorValue & | getCrackDirection (const std::size_t point_index) const |
Get the unit vector of the crack extension direction at the specified position. More... | |
Real | getDistanceAlongFront (const std::size_t point_index) const |
Get the distance along the crack front from the beginning of the crack to the specified position. More... | |
bool | hasAngleAlongFront () const |
Whether the distance along the crack front is available as an angle. More... | |
Real | getAngleAlongFront (const std::size_t point_index) const |
Get the angle along the crack front from the beginning of the crack to the specified position. More... | |
std::size_t | getNumCrackFrontPoints () const |
Get the number of points defining the crack front as a set of line segments. More... | |
bool | treatAs2D () const |
Whether the fracture computations are treated as 2D for the model. More... | |
bool | usingMeshCutter () const |
Is the crack defined by a mesh cutter object. More... | |
RealVectorValue | rotateToCrackFrontCoords (const RealVectorValue vector, const std::size_t point_index) const |
Rotate a vector in the global coordinate coordinate system to the crack front local coordinate system at a specified point on the crack. More... | |
RankTwoTensor | rotateToCrackFrontCoords (const RankTwoTensor tensor, const std::size_t point_index) const |
Rotate a RankTwoTensor in the global coordinate coordinate system to the crack front local coordinate system at a specified point on the crack. More... | |
RealVectorValue | rotateFromCrackFrontCoordsToGlobal (const RealVectorValue vector, const std::size_t point_index) const |
Rotate a vector from crack front cartesian coordinate to global cartesian coordinate. More... | |
void | calculateRThetaToCrackFront (const Point qp, const std::size_t point_index, Real &r, Real &theta) const |
Calculate r and theta of a point in the crack front polar coordinates for a given crack point index. More... | |
std::size_t | calculateRThetaToCrackFront (const Point qp, Real &r, Real &theta) const |
Calculate r and theta of a point in the crack front polar coordinate relative to the closest crack front point. More... | |
bool | isNodeOnIntersectingBoundary (const Node *const node) const |
Determine whether a given node is on one of the boundaries that intersects an end of the crack front. More... | |
bool | isPointWithIndexOnIntersectingBoundary (const std::size_t point_index) const |
Determine whether a given crack front point is on one of the boundaries that intersects an end of the crack front. More... | |
Real | getCrackFrontTangentialStrain (const std::size_t node_index) const |
Get the strain in the direction tangent to the crack front at a given point. More... | |
bool | hasCrackFrontNodes () const |
Determine whether the crack front was defined using nodes. More... | |
bool | isNodeInRing (const std::size_t ring_index, const dof_id_type connected_node_id, const std::size_t node_index) const |
Determine whether a node is contained within a specified volume integral element ring for a given node on the crack front. More... | |
Real | DomainIntegralQFunction (std::size_t crack_front_point_index, std::size_t ring_index, const Node *const current_node) const |
Compute the q function for the case where it is defined geometrically. More... | |
Real | DomainIntegralTopologicalQFunction (std::size_t crack_front_point_index, std::size_t ring_index, const Node *const current_node) const |
Compute the q function for the case where it is defined through element connectivity. More... | |
void | isCutterModified (const bool is_cutter_modified) |
Set the value of _is_cutter_modified. More... | |
SubProblem & | getSubProblem () const |
bool | shouldDuplicateInitialExecution () const |
virtual Real | spatialValue (const Point &) const |
virtual const std::vector< Point > | spatialPoints () const |
void | gatherSum (T &value) |
void | gatherMax (T &value) |
void | gatherMin (T &value) |
void | gatherProxyValueMax (T1 &proxy, T2 &value) |
void | gatherProxyValueMin (T1 &proxy, T2 &value) |
void | setPrimaryThreadCopy (UserObject *primary) |
UserObject * | primaryThreadCopy () |
std::set< UserObjectName > | getDependObjects () const |
virtual bool | needThreadedCopy () const |
const std::set< std::string > & | getRequestedItems () override |
const std::set< std::string > & | getSuppliedItems () override |
unsigned int | systemNumber () const |
virtual bool | enabled () const |
std::shared_ptr< MooseObject > | getSharedPtr () |
std::shared_ptr< const MooseObject > | getSharedPtr () const |
MooseApp & | getMooseApp () const |
const std::string & | type () const |
virtual const std::string & | name () const |
std::string | typeAndName () const |
std::string | errorPrefix (const std::string &error_type) const |
void | callMooseError (std::string msg, const bool with_prefix) const |
MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
const InputParameters & | parameters () const |
MooseObjectName | uniqueName () const |
const T & | getParam (const std::string &name) const |
std::vector< std::pair< T1, T2 > > | getParam (const std::string ¶m1, const std::string ¶m2) const |
const T * | queryParam (const std::string &name) const |
const T & | getRenamedParam (const std::string &old_name, const std::string &new_name) const |
T | getCheckedPointerParam (const std::string &name, const std::string &error_string="") const |
bool | isParamValid (const std::string &name) const |
bool | isParamSetByUser (const std::string &nm) const |
void | paramError (const std::string ¶m, Args... args) const |
void | paramWarning (const std::string ¶m, Args... args) const |
void | paramInfo (const std::string ¶m, Args... args) const |
void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const |
void | mooseError (Args &&... args) const |
void | mooseErrorNonPrefixed (Args &&... args) const |
void | mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const |
void | mooseWarning (Args &&... args) const |
void | mooseWarningNonPrefixed (Args &&... args) const |
void | mooseDeprecated (Args &&... args) const |
void | mooseInfo (Args &&... args) const |
std::string | getDataFileName (const std::string ¶m) const |
std::string | getDataFileNameByName (const std::string &relative_path) const |
std::string | getDataFilePath (const std::string &relative_path) const |
virtual void | timestepSetup () |
virtual void | jacobianSetup () |
virtual void | residualSetup () |
virtual void | customSetup (const ExecFlagType &) |
const ExecFlagEnum & | getExecuteOnEnum () const |
UserObjectName | getUserObjectName (const std::string ¶m_name) const |
const T & | getUserObject (const std::string ¶m_name, bool is_dependency=true) const |
const T & | getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBase (const std::string ¶m_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const |
const std::vector< MooseVariableScalar *> & | getCoupledMooseScalarVars () |
const std::set< TagID > & | getScalarVariableCoupleableVectorTags () const |
const std::set< TagID > & | getScalarVariableCoupleableMatrixTags () const |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialProperty (const std::string &name, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialProperty (const std::string &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialProperty (const std::string &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialProperty (const std::string &name, const unsigned int state=0) |
const ADMaterialProperty< T > & | getADMaterialProperty (const std::string &name, MaterialData &material_data) |
const ADMaterialProperty< T > & | getADMaterialProperty (const std::string &name) |
const ADMaterialProperty< T > & | getADMaterialProperty (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOld (const std::string &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOld (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOld (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOlder (const std::string &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOlder (const std::string &name) |
const MaterialProperty< T > & | getMaterialPropertyOlder (const std::string &name) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const GenericMaterialProperty< T, is_ad > & | getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const MaterialProperty< T > & | getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const MaterialPropertyName &name) |
const ADMaterialProperty< T > & | getADMaterialPropertyByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOldByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const MaterialPropertyName &name) |
const MaterialProperty< T > & | getMaterialPropertyOlderByName (const MaterialPropertyName &name) |
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > | getBlockMaterialProperty (const MaterialPropertyName &name) |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty (const std::string &name) |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialProperty () |
const GenericMaterialProperty< T, is_ad > & | getGenericZeroMaterialPropertyByName (const std::string &prop_name) |
const MaterialProperty< T > & | getZeroMaterialProperty (Ts... args) |
std::set< SubdomainID > | getMaterialPropertyBlocks (const std::string &name) |
std::vector< SubdomainName > | getMaterialPropertyBlockNames (const std::string &name) |
std::set< BoundaryID > | getMaterialPropertyBoundaryIDs (const std::string &name) |
std::vector< BoundaryName > | getMaterialPropertyBoundaryNames (const std::string &name) |
void | checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete) |
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > | buildRequiredMaterials (bool allow_stateful=true) |
void | statefulPropertiesAllowed (bool) |
bool | getMaterialPropertyCalled () const |
virtual const std::unordered_set< unsigned int > & | getMatPropDependencies () const |
virtual void | resolveOptionalProperties () |
const GenericMaterialProperty< T, is_ad > & | getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state) |
bool | isImplicit () |
Moose::StateArg | determineState () const |
virtual void | threadJoin (const UserObject &) override |
virtual void | threadJoin (const UserObject &) override |
virtual void | subdomainSetup () override |
virtual void | subdomainSetup () override |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
const GenericOptionalMaterialProperty< T, is_ad > & | getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const GenericOptionalMaterialProperty< T, is_ad > & | getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const OptionalMaterialProperty< T > & | getOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const OptionalMaterialProperty< T > & | getOptionalMaterialProperty (const std::string &name, const unsigned int state=0) |
const OptionalADMaterialProperty< T > & | getOptionalADMaterialProperty (const std::string &name) |
const OptionalADMaterialProperty< T > & | getOptionalADMaterialProperty (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOld (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOld (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOlder (const std::string &name) |
const OptionalMaterialProperty< T > & | getOptionalMaterialPropertyOlder (const std::string &name) |
MaterialBase & | getMaterial (const std::string &name) |
MaterialBase & | getMaterial (const std::string &name) |
MaterialBase & | getMaterialByName (const std::string &name, bool no_warn=false) |
MaterialBase & | getMaterialByName (const std::string &name, bool no_warn=false) |
bool | hasMaterialProperty (const std::string &name) |
bool | hasMaterialProperty (const std::string &name) |
bool | hasMaterialPropertyByName (const std::string &name) |
bool | hasMaterialPropertyByName (const std::string &name) |
bool | hasADMaterialProperty (const std::string &name) |
bool | hasADMaterialProperty (const std::string &name) |
bool | hasADMaterialPropertyByName (const std::string &name) |
bool | hasADMaterialPropertyByName (const std::string &name) |
bool | hasGenericMaterialProperty (const std::string &name) |
bool | hasGenericMaterialProperty (const std::string &name) |
bool | hasGenericMaterialPropertyByName (const std::string &name) |
bool | hasGenericMaterialPropertyByName (const std::string &name) |
const Function & | getFunction (const std::string &name) const |
const Function & | getFunctionByName (const FunctionName &name) const |
bool | hasFunction (const std::string ¶m_name) const |
bool | hasFunctionByName (const FunctionName &name) const |
bool | isDefaultPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessor (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessorByName (const PostprocessorName &name) const |
std::size_t | coupledPostprocessors (const std::string ¶m_name) const |
const PostprocessorName & | getPostprocessorName (const std::string ¶m_name, const unsigned int index=0) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_name) const |
bool | hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
bool | hasVectorPostprocessorByName (const VectorPostprocessorName &name) const |
const VectorPostprocessorName & | getVectorPostprocessorName (const std::string ¶m_name) const |
T & | getSampler (const std::string &name) |
Sampler & | getSampler (const std::string &name) |
T & | getSamplerByName (const SamplerName &name) |
Sampler & | getSamplerByName (const SamplerName &name) |
virtual void | meshChanged () |
virtual void | meshDisplaced () |
PerfGraph & | perfGraph () |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
const Distribution & | getDistribution (const std::string &name) const |
const T & | getDistribution (const std::string &name) const |
const Distribution & | getDistribution (const std::string &name) const |
const T & | getDistribution (const std::string &name) const |
const Distribution & | getDistributionByName (const DistributionName &name) const |
const T & | getDistributionByName (const std::string &name) const |
const Distribution & | getDistributionByName (const DistributionName &name) const |
const T & | getDistributionByName (const std::string &name) const |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
virtual const std::set< BoundaryID > & | boundaryIDs () const |
const std::vector< BoundaryName > & | boundaryNames () const |
unsigned int | numBoundaryIDs () const |
bool | hasBoundary (const BoundaryName &name) const |
bool | hasBoundary (const std::vector< BoundaryName > &names) const |
bool | hasBoundary (const BoundaryID &id) const |
bool | hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const |
bool | hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const |
bool | isBoundarySubset (const std::set< BoundaryID > &ids) const |
bool | isBoundarySubset (const std::vector< BoundaryID > &ids) const |
bool | hasBoundaryMaterialProperty (const std::string &prop_name) const |
virtual bool | boundaryRestricted () const |
const std::set< BoundaryID > & | meshBoundaryIDs () const |
virtual bool | checkVariableBoundaryIntegrity () const |
Static Public Member Functions | |
static InputParameters | validParams () |
static void | sort (typename std::vector< T > &vector) |
static void | sortDFS (typename std::vector< T > &vector) |
static void | cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header) |
static bool | restricted (const std::set< BoundaryID > &ids) |
Public Attributes | |
const ConsoleStream | _console |
ALL | |
ANY | |
Static Public Attributes | |
static constexpr PropertyValue::id_type | default_property_id |
static constexpr PropertyValue::id_type | zero_property_id |
static constexpr auto | SYSTEM |
static constexpr auto | NAME |
Protected Types | |
enum | DIRECTION_METHOD { DIRECTION_METHOD::CRACK_DIRECTION_VECTOR, DIRECTION_METHOD::CRACK_MOUTH, DIRECTION_METHOD::CURVED_CRACK_FRONT } |
Enum used to define the method for computing the crack extension direction. More... | |
enum | END_DIRECTION_METHOD { END_DIRECTION_METHOD::NO_SPECIAL_TREATMENT, END_DIRECTION_METHOD::END_CRACK_DIRECTION_VECTOR, END_DIRECTION_METHOD::END_CRACK_TANGENT_VECTOR } |
Enum used to define the method for computing the crack extension direction at the ends of the crack. More... | |
enum | CRACK_NODE_TYPE { MIDDLE_NODE, END_1_NODE, END_2_NODE } |
Enum used to define the type of the nodes on the crack front (end or middle) More... | |
enum | CRACK_GEOM_DEFINITION { CRACK_GEOM_DEFINITION::CRACK_FRONT_NODES, CRACK_GEOM_DEFINITION::CRACK_FRONT_POINTS } |
Enum used to define whether the crack front is defined using nodes or points. More... | |
Protected Member Functions | |
void | getCrackFrontNodes (std::set< dof_id_type > &nodes) |
Get the set of all crack front nodes. More... | |
void | orderCrackFrontNodes (std::set< dof_id_type > &nodes) |
Arrange the crack front nodes by their position along the crack front, and put them in the _ordered_crack_front_nodes member variable. More... | |
void | orderEndNodes (std::vector< dof_id_type > &end_nodes) |
Determine which of the end nodes should be the starting point of the crack front. More... | |
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) |
For the case of a crack that is a complete loop, determine which of the nodes should be the start and end nodes in a repeatable way. More... | |
dof_id_type | maxNodeCoor (std::vector< Node *> &nodes, unsigned int dir0=0) |
Find the node with the maximum value of its coordinate. More... | |
void | updateCrackFrontGeometry () |
Update the data structures defining the crack front geometry such as the ordered crack front nodes/points and other auxiliary data. More... | |
void | computeCrackMouthNodes () |
compute node and coordinate data for crack fronts defined by crack_mouth_boundary_ids sidesets More... | |
void | computeCurvedCrackFrontCrackPlaneNormals () |
Compute crack plane face normals for cracks that have a curved crack front but do not use a mesh cutter. More... | |
RealVectorValue | calculateCrackFrontDirection (const Point &crack_front_point, const RealVectorValue &tangent_direction, const CRACK_NODE_TYPE ntype, const std::size_t crack_front_point_index=0) const |
Compute the direction of crack extension for a given point on the crack front. More... | |
void | calculateTangentialStrainAlongFront () |
Compute the strain in the direction tangent to the crack at all points on the crack front. More... | |
void | createQFunctionRings () |
Create the data defining the rings used to define the q function when the topological option is used to define the q function. More... | |
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) |
Find nodes that are connected through elements to the nodes in the previous node ring. More... | |
void | projectToFrontAtPoint (Real &dist_to_front, Real &dist_along_tangent, std::size_t crack_front_point_index, const Node *const current_node) const |
Project a point to a specified point along the crack front and compute the projected normal and tangential distance to the front. More... | |
virtual void | addPostprocessorDependencyHelper (const PostprocessorName &name) const override |
virtual void | addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override |
virtual void | addUserObjectDependencyHelper (const UserObject &uo) const override |
void | addReporterDependencyHelper (const ReporterName &reporter_name) override |
const ReporterName & | getReporterName (const std::string ¶m_name) const |
T & | declareRestartableData (const std::string &data_name, Args &&... args) |
ManagedValue< T > | declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
const T & | getRestartableData (const std::string &data_name) const |
T & | declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
T & | declareRecoverableData (const std::string &data_name, Args &&... args) |
T & | declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args) |
T & | declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args) |
std::string | restartableName (const std::string &data_name) const |
const T & | getMeshProperty (const std::string &data_name, const std::string &prefix) |
const T & | getMeshProperty (const std::string &data_name) |
bool | hasMeshProperty (const std::string &data_name, const std::string &prefix) const |
bool | hasMeshProperty (const std::string &data_name, const std::string &prefix) const |
bool | hasMeshProperty (const std::string &data_name) const |
bool | hasMeshProperty (const std::string &data_name) const |
std::string | meshPropertyName (const std::string &data_name) const |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level) const |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const |
std::string | timedSectionName (const std::string §ion_name) const |
bool | isCoupledScalar (const std::string &var_name, unsigned int i=0) const |
unsigned int | coupledScalarComponents (const std::string &var_name) const |
unsigned int | coupledScalar (const std::string &var_name, unsigned int comp=0) const |
libMesh::Order | coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarValue (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< is_ad > & | coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< false > & | coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const |
const GenericVariableValue< true > & | coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const |
const VariableValue & | coupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const |
const VariableValue & | coupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const |
const VariableValue & | coupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDot (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const |
const MooseVariableScalar * | getScalarVar (const std::string &var_name, unsigned int comp) const |
virtual void | checkMaterialProperty (const std::string &name, const unsigned int state) |
void | markMatPropRequested (const std::string &) |
MaterialPropertyName | getMaterialPropertyName (const std::string &name) const |
void | checkExecutionStage () |
const T & | getReporterValue (const std::string ¶m_name, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0) |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
const GenericMaterialProperty< T, is_ad > * | defaultGenericMaterialProperty (const std::string &name) |
const GenericMaterialProperty< T, is_ad > * | defaultGenericMaterialProperty (const std::string &name) |
const MaterialProperty< T > * | defaultMaterialProperty (const std::string &name) |
const MaterialProperty< T > * | defaultMaterialProperty (const std::string &name) |
const ADMaterialProperty< T > * | defaultADMaterialProperty (const std::string &name) |
const ADMaterialProperty< T > * | defaultADMaterialProperty (const std::string &name) |
bool | hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const |
Static Protected Member Functions | |
static std::string | meshPropertyName (const std::string &data_name, const std::string &prefix) |
Protected Attributes | |
enum CrackFrontDefinition::DIRECTION_METHOD | _direction_method |
enum CrackFrontDefinition::END_DIRECTION_METHOD | _end_direction_method |
enum CrackFrontDefinition::CRACK_GEOM_DEFINITION | _geom_definition_method |
AuxiliarySystem & | _aux |
Reference to the auxiliary system. More... | |
MooseMesh & | _mesh |
Reference to the mesh. More... | |
std::vector< dof_id_type > | _ordered_crack_front_nodes |
Crack front nodes ordered from the start to end of the crack front. More... | |
std::vector< Point > | _crack_front_points |
Vector of points along the crack front. More... | |
std::vector< RealVectorValue > | _tangent_directions |
Vector of tangent directions along the crack front. More... | |
std::vector< RealVectorValue > | _crack_directions |
Vector of crack extension directions along the crack front. More... | |
std::vector< std::pair< Real, Real > > | _segment_lengths |
Vector of segment lengths along the crack front. More... | |
std::vector< Real > | _distances_along_front |
Vector of distances along the crack front. More... | |
std::vector< Real > | _angles_along_front |
Vector of angles along the crack front. More... | |
std::vector< Real > | _strain_along_front |
Vector of tangential strain along the crack front. More... | |
std::vector< RankTwoTensor > | _rot_matrix |
Vector of rotation matrices along the crack front. More... | |
Real | _overall_length |
Overall length of the crack. More... | |
RealVectorValue | _crack_direction_vector |
Fixed vector optionally used to define crack extension direction. More... | |
RealVectorValue | _crack_direction_vector_end_1 |
Fixed vector optionally used to define crack extension direction at end 1 of crack front. More... | |
RealVectorValue | _crack_direction_vector_end_2 |
Fixed vector optionally used to define crack extension direction at end 2 of crack front. More... | |
RealVectorValue | _crack_tangent_vector_end_1 |
Fixed vector optionally used to define crack tangent direction at end 1 of crack front. More... | |
RealVectorValue | _crack_tangent_vector_end_2 |
Fixed vector optionally used to define crack tangent direction at end 2 of crack front. More... | |
std::vector< BoundaryName > | _crack_mouth_boundary_names |
Names of boundaries used to define location of crack mouth. More... | |
std::vector< BoundaryID > | _crack_mouth_boundary_ids |
IDs of boundaries used to define location of crack mouth. More... | |
std::vector< BoundaryName > | _intersecting_boundary_names |
Names of boundaries that intersect crack at its ends. More... | |
std::vector< BoundaryID > | _intersecting_boundary_ids |
IDs of boundaries that intersect crack at its ends. More... | |
RealVectorValue | _crack_mouth_coordinates |
Coordinates of crack mouth. More... | |
std::vector< RealVectorValue > | _crack_plane_normals |
Vector normals to a nonplanar crack. More... | |
bool | _treat_as_2d |
Whether to treat the model as 2D for computation of fracture integrals. More... | |
bool | _use_mesh_cutter |
Whether to describe the crack as a mesh cutter. More... | |
bool | _is_cutter_modified |
Indicator that shows if the cutter mesh is modified or not in the calculation step. More... | |
bool | _closed_loop |
Whether the crack forms a closed loop. More... | |
unsigned int | _axis_2d |
Out of plane axis when crack is treated as 2D. More... | |
bool | _has_symmetry_plane |
Whether the crack plane is also a symmetry plane in the model. More... | |
unsigned int | _symmetry_plane |
Which plane is the symmetry plane. More... | |
bool | _t_stress |
Whether the T-stress is being computed. More... | |
bool | _q_function_rings |
Whether topological rings are used to define the q functions. More... | |
std::size_t | _last_ring |
Numer of elements from crack tip to last topological ring. More... | |
std::size_t | _first_ring |
Numer of elements from crack tip to first topological ring. More... | |
std::map< std::pair< dof_id_type, std::size_t >, std::set< dof_id_type > > | _crack_front_node_to_node_map |
Data structure used to store information about topological rings Key is a pair of the crack front node index and ring id Data is a set of the IDs of the nodes in the ring for that crack front node. More... | |
MooseEnum | _q_function_type |
Method used to define the q function. More... | |
std::vector< bool > | _is_point_on_intersecting_boundary |
Vector of bools indicating whether individual crack front points are on an intersecting boundary. More... | |
std::vector< Real > | _j_integral_radius_inner |
Vector of inner radii of the rings used for geometric q functions. More... | |
std::vector< Real > | _j_integral_radius_outer |
Vector of outer radii of the rings used for geometric q functions. More... | |
const CrackFrontPointsProvider * | _crack_front_points_provider |
Pointer to a CrackFrontPointsProvider object optionally used to define the crack front points. More... | |
std::size_t | _num_points_from_provider |
Number of points coming from the CrackFrontPointsProvider. More... | |
SubProblem & | _subproblem |
FEProblemBase & | _fe_problem |
SystemBase & | _sys |
const THREAD_ID | _tid |
Assembly & | _assembly |
const Moose::CoordinateSystemType & | _coord_sys |
const bool | _duplicate_initial_execution |
std::set< std::string > | _depend_uo |
const bool & | _enabled |
MooseApp & | _app |
const std::string | _type |
const std::string | _name |
const InputParameters & | _pars |
Factory & | _factory |
ActionFactory & | _action_factory |
const ExecFlagEnum & | _execute_enum |
const ExecFlagType & | _current_execute_flag |
MooseApp & | _restartable_app |
const std::string | _restartable_system_name |
const THREAD_ID | _restartable_tid |
const bool | _restartable_read_only |
FEProblemBase & | _mci_feproblem |
FEProblemBase & | _mdi_feproblem |
MooseApp & | _pg_moose_app |
const std::string | _prefix |
FEProblemBase & | _sc_fe_problem |
const THREAD_ID | _sc_tid |
const Real & | _real_zero |
const VariableValue & | _scalar_zero |
const Point & | _point_zero |
const InputParameters & | _mi_params |
const std::string | _mi_name |
const MooseObjectName | _mi_moose_object_name |
FEProblemBase & | _mi_feproblem |
SubProblem & | _mi_subproblem |
const THREAD_ID | _mi_tid |
const Moose::MaterialDataType | _material_data_type |
MaterialData & | _material_data |
bool | _stateful_allowed |
bool | _get_material_property_called |
std::vector< std::unique_ptr< PropertyValue > > | _default_properties |
std::unordered_set< unsigned int > | _material_property_dependencies |
const MaterialPropertyName | _get_suffix |
const bool | _use_interpolated_state |
const InputParameters & | _ti_params |
FEProblemBase & | _ti_feproblem |
bool | _is_implicit |
Real & | _t |
const Real & | _t_old |
int & | _t_step |
Real & | _dt |
Real & | _dt_old |
bool | _is_transient |
const Parallel::Communicator & | _communicator |
std::string | _disp_x_var_name |
Names of the x, y, and z displacement variables. More... | |
std::string | _disp_y_var_name |
std::string | _disp_z_var_name |
Static Protected Attributes | |
static const Real | _tol = 1e-10 |
Tolerance used in geometric calculations. More... | |
static const std::string | _interpolated_old |
static const std::string | _interpolated_older |
Class used in fracture integrals to define geometric characteristics of the crack front.
Definition at line 31 of file CrackFrontDefinition.h.
|
strongprotected |
Enum used to define whether the crack front is defined using nodes or points.
Enumerator | |
---|---|
CRACK_FRONT_NODES | |
CRACK_FRONT_POINTS |
Definition at line 287 of file CrackFrontDefinition.h.
|
protected |
Enum used to define the type of the nodes on the crack front (end or middle)
Enumerator | |
---|---|
MIDDLE_NODE | |
END_1_NODE | |
END_2_NODE |
Definition at line 279 of file CrackFrontDefinition.h.
|
strongprotected |
Enum used to define the method for computing the crack extension direction.
Enumerator | |
---|---|
CRACK_DIRECTION_VECTOR | |
CRACK_MOUTH | |
CURVED_CRACK_FRONT |
Definition at line 264 of file CrackFrontDefinition.h.
|
strongprotected |
Enum used to define the method for computing the crack extension direction at the ends of the crack.
Enumerator | |
---|---|
NO_SPECIAL_TREATMENT | |
END_CRACK_DIRECTION_VECTOR | |
END_CRACK_TANGENT_VECTOR |
Definition at line 272 of file CrackFrontDefinition.h.
CrackFrontDefinition::CrackFrontDefinition | ( | const InputParameters & | parameters | ) |
Definition at line 112 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 277 of file CrackFrontDefinition.C.
|
protected |
Find nodes that are connected through elements to the nodes in the previous node ring.
nodes_new_ring | Nodes in the new ring – populated by this method |
nodes_old_ring | Nodes in the previous ring |
nodes_all_rings | Nodes in all other rings to be excluded from the new ring |
nodes_neighbor1 | Nodes in the neighboring ring to one side to be excluded from the new ring |
nodes_neighbor2 | Nodes in the neighboring ring to the other side to be excluded from the new ring |
nodes_to_elem_map | Map of nodes to connected elements |
Definition at line 1767 of file CrackFrontDefinition.C.
Referenced by createQFunctionRings().
|
protected |
Compute the direction of crack extension for a given point on the crack front.
crack_front_point | Point on the crack front |
tangent_direction | Tangent direction vector for the crack front point |
ntype | Node type such as MIDDLE_NODE, END_1_NODE, END_2_NODE |
crack_front_point_index | Index of the point on the crack front |
Definition at line 1114 of file CrackFrontDefinition.C.
Referenced by updateCrackFrontGeometry().
void CrackFrontDefinition::calculateRThetaToCrackFront | ( | const Point | qp, |
const std::size_t | point_index, | ||
Real & | r, | ||
Real & | theta | ||
) | const |
Calculate r and theta of a point in the crack front polar coordinates for a given crack point index.
qp | The Point for which coordinates are evaluated |
point_index | the crack front point index |
r | Value of the radial coordinate computed in this function |
theta | Value of the theta coordinate computed in this function |
Definition at line 1293 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), InteractionIntegralBenchmarkBC::computeQpValue(), EnrichmentFunctionCalculation::crackTipEnrichementFunctionAtPoint(), EnrichmentFunctionCalculation::crackTipEnrichementFunctionDerivativeAtPoint(), and CrackTipEnrichmentCutOffBC::shouldApply().
std::size_t CrackFrontDefinition::calculateRThetaToCrackFront | ( | const Point | qp, |
Real & | r, | ||
Real & | theta | ||
) | const |
Calculate r and theta of a point in the crack front polar coordinate relative to the closest crack front point.
This function loops over all crack front points to find the one closest to the specified point
qp | The Point for which coordinates are evaluated |
r | Value of the radial coordinate computed in this function |
theta | Value of the theta coordinate computed in this function |
Definition at line 1408 of file CrackFrontDefinition.C.
|
protected |
Compute the strain in the direction tangent to the crack at all points on the crack front.
Definition at line 1471 of file CrackFrontDefinition.C.
Referenced by execute().
|
protected |
compute node and coordinate data for crack fronts defined by crack_mouth_boundary_ids sidesets
Definition at line 1028 of file CrackFrontDefinition.C.
Referenced by updateCrackFrontGeometry().
|
protected |
Compute crack plane face normals for cracks that have a curved crack front but do not use a mesh cutter.
Definition at line 1063 of file CrackFrontDefinition.C.
Referenced by updateCrackFrontGeometry().
|
protected |
Create the data defining the rings used to define the q function when the topological option is used to define the q function.
Definition at line 1610 of file CrackFrontDefinition.C.
Referenced by initialSetup().
Real CrackFrontDefinition::DomainIntegralQFunction | ( | std::size_t | crack_front_point_index, |
std::size_t | ring_index, | ||
const Node *const | current_node | ||
) | const |
Compute the q function for the case where it is defined geometrically.
crack_front_point_index | Index of the point on the crack front |
ring_index | Index of the volume integral ring |
current_node | Node at which q is evaluated |
Definition at line 1818 of file CrackFrontDefinition.C.
Referenced by JIntegral::execute().
Real CrackFrontDefinition::DomainIntegralTopologicalQFunction | ( | std::size_t | crack_front_point_index, |
std::size_t | ring_index, | ||
const Node *const | current_node | ||
) | const |
Compute the q function for the case where it is defined through element connectivity.
crack_front_point_index | Index of the point on the crack front |
ring_index | Index of the volume integral ring |
current_node | Node at which q is evaluated |
Definition at line 1872 of file CrackFrontDefinition.C.
Referenced by JIntegral::execute().
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 280 of file CrackFrontDefinition.C.
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 375 of file CrackFrontDefinition.C.
Real CrackFrontDefinition::getAngleAlongFront | ( | const std::size_t | point_index | ) | const |
Get the angle along the crack front from the beginning of the crack to the specified position.
point_index | Index of the point |
Definition at line 1249 of file CrackFrontDefinition.C.
Referenced by JIntegral::finalize().
const RealVectorValue & CrackFrontDefinition::getCrackDirection | ( | const std::size_t | point_index | ) | const |
Get the unit vector of the crack extension direction at the specified position.
point_index | Index of the point |
Definition at line 1231 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral().
Real CrackFrontDefinition::getCrackFrontBackwardSegmentLength | ( | const std::size_t | point_index | ) | const |
Get the length of the line segment on the crack front behind the specified position.
point_index | Index of the point |
Definition at line 1225 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral(), DomainIntegralQFunction::computeValue(), and DomainIntegralQFunction().
Real CrackFrontDefinition::getCrackFrontForwardSegmentLength | ( | const std::size_t | point_index | ) | const |
Get the length of the line segment on the crack front ahead of the specified position.
point_index | Index of the point |
Definition at line 1219 of file CrackFrontDefinition.C.
Referenced by JIntegral::computeQpIntegral(), DomainIntegralQFunction::computeValue(), and DomainIntegralQFunction().
const Node * CrackFrontDefinition::getCrackFrontNodePtr | ( | const std::size_t | node_index | ) | const |
Get the node pointer for a specified node on the crack front.
node_index | Index of the node |
Definition at line 1182 of file CrackFrontDefinition.C.
Referenced by calculateTangentialStrainAlongFront(), getCrackFrontPoint(), CrackFrontData::initialize(), and isPointWithIndexOnIntersectingBoundary().
|
protected |
Get the set of all crack front nodes.
nodes | Set of nodes – populated by this method |
Definition at line 382 of file CrackFrontDefinition.C.
Referenced by initialSetup().
const RealVectorValue & CrackFrontDefinition::getCrackFrontNormal | ( | const std::size_t | point_index | ) | const |
Get the vector normal to the crack front at a specified position.
point_index | Index of the point |
Definition at line 1212 of file CrackFrontDefinition.C.
Referenced by CrackFrontNonlocalMaterialBase::execute().
const Point * CrackFrontDefinition::getCrackFrontPoint | ( | const std::size_t | point_index | ) | const |
Get a Point object for a specified point on the crack front.
point_index | Index of the point |
Definition at line 1191 of file CrackFrontDefinition.C.
Referenced by CrackFrontNonlocalMaterialBase::BoxWeightingFunction(), calculateRThetaToCrackFront(), computeCurvedCrackFrontCrackPlaneNormals(), JIntegral::finalize(), CrackFrontNonlocalMaterialBase::finalize(), DomainIntegralQFunction::projectToFrontAtPoint(), projectToFrontAtPoint(), and updateCrackFrontGeometry().
const RealVectorValue & CrackFrontDefinition::getCrackFrontTangent | ( | const std::size_t | point_index | ) | const |
Get the vector tangent to the crack front at a specified position.
point_index | Index of the point |
Definition at line 1205 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::projectToFrontAtPoint(), and projectToFrontAtPoint().
Real CrackFrontDefinition::getCrackFrontTangentialStrain | ( | const std::size_t | node_index | ) | const |
Get the strain in the direction tangent to the crack front at a given point.
node_index | the crack front node index |
Definition at line 1594 of file CrackFrontDefinition.C.
Real CrackFrontDefinition::getDistanceAlongFront | ( | const std::size_t | point_index | ) | const |
Get the distance along the crack front from the beginning of the crack to the specified position.
point_index | Index of the point |
Definition at line 1237 of file CrackFrontDefinition.C.
Referenced by JIntegral::finalize(), and CrackFrontNonlocalMaterialBase::finalize().
std::size_t CrackFrontDefinition::getNumCrackFrontPoints | ( | ) | const |
Get the number of points defining the crack front as a set of line segments.
Definition at line 1260 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), computeCurvedCrackFrontCrackPlaneNormals(), JIntegral::initialize(), CrackFrontNonlocalMaterialBase::initialize(), initialize(), initialSetup(), isPointWithIndexOnIntersectingBoundary(), and updateCrackFrontGeometry().
bool CrackFrontDefinition::hasAngleAlongFront | ( | ) | const |
Whether the distance along the crack front is available as an angle.
Definition at line 1243 of file CrackFrontDefinition.C.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
inline |
Determine whether the crack front was defined using nodes.
Definition at line 218 of file CrackFrontDefinition.h.
Referenced by CrackFrontData::initialize().
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 354 of file CrackFrontDefinition.C.
|
overridevirtual |
Reimplemented from GeneralUserObject.
Definition at line 289 of file CrackFrontDefinition.C.
void CrackFrontDefinition::isCutterModified | ( | const bool | is_cutter_modified | ) |
Set the value of _is_cutter_modified.
Definition at line 1903 of file CrackFrontDefinition.C.
Referenced by MeshCut2DFractureUserObject::initialize(), MeshCut2DFunctionUserObject::initialize(), and CrackMeshCut3DUserObject::initialize().
bool CrackFrontDefinition::isNodeInRing | ( | const std::size_t | ring_index, |
const dof_id_type | connected_node_id, | ||
const std::size_t | node_index | ||
) | const |
Determine whether a node is contained within a specified volume integral element ring for a given node on the crack front.
ring_index | Index of the ring |
connected_node_id | ID of the node |
node_index | Index of the crack front node |
Definition at line 1795 of file CrackFrontDefinition.C.
Referenced by DomainIntegralTopologicalQFunction::computeValue(), and DomainIntegralTopologicalQFunction().
bool CrackFrontDefinition::isNodeOnIntersectingBoundary | ( | const Node *const | node | ) | const |
Determine whether a given node is on one of the boundaries that intersects an end of the crack front.
node | Pointer to node |
Definition at line 1434 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction::computeValue(), DomainIntegralQFunction(), and isPointWithIndexOnIntersectingBoundary().
bool CrackFrontDefinition::isPointWithIndexOnIntersectingBoundary | ( | const std::size_t | point_index | ) | const |
Determine whether a given crack front point is on one of the boundaries that intersects an end of the crack front.
point_index | the crack front point index |
Definition at line 1451 of file CrackFrontDefinition.C.
Referenced by initialize(), DomainIntegralQFunction::initialSetup(), and initialSetup().
|
protected |
Find the node with the maximum value of its coordinate.
This is used to deterministically find the first node on the crack front. First, the nodes with the maximum coordinate in one direction are found, and then if there are duplicates with that same coordinate, search through the other two coordinates to find the node with the maximum coordinate in all 3 directions.
nodes | Set of all nodes on the crack front |
dir0 | First coordinate direction in which to order the coordinates |
Definition at line 706 of file CrackFrontDefinition.C.
Referenced by pickLoopCrackEndNodes().
|
protected |
Arrange the crack front nodes by their position along the crack front, and put them in the _ordered_crack_front_nodes member variable.
nodes | Set of nodes to be ordered |
Definition at line 447 of file CrackFrontDefinition.C.
Referenced by initialSetup().
|
protected |
Determine which of the end nodes should be the starting point of the crack front.
end_nodes | Vector containing two end nodes. The order of this is rearranged so that the first end node is the start of the crack front, and the second is at the end. |
Definition at line 594 of file CrackFrontDefinition.C.
Referenced by orderCrackFrontNodes().
|
protected |
For the case of a crack that is a complete loop, determine which of the nodes should be the start and end nodes in a repeatable way.
end_nodes | Vector containing two end nodes – populated by this method |
nodes | Set of all nodes on the crack front |
node_to_line_elem_map | Map from crack front nodes to line elements on crack front (see line_elems param) |
line_elems | Line elements on crack front defined as vectors of the nodes on each end of the line elements. |
Definition at line 644 of file CrackFrontDefinition.C.
Referenced by orderCrackFrontNodes().
|
protected |
Project a point to a specified point along the crack front and compute the projected normal and tangential distance to the front.
dist_to_front | Projected normal distance to the front – computed by this method |
dist_along_tangent | Project tangent distance to the front – computed by this method |
crack_front_point_index | Index of the point on the crack front |
current_node | Node to be projected to the front |
Definition at line 1885 of file CrackFrontDefinition.C.
Referenced by DomainIntegralQFunction().
RealVectorValue CrackFrontDefinition::rotateFromCrackFrontCoordsToGlobal | ( | const RealVectorValue | vector, |
const std::size_t | point_index | ||
) | const |
Rotate a vector from crack front cartesian coordinate to global cartesian coordinate.
vector | Vector in crack local coordinates |
point_index | Index of the point |
Definition at line 1276 of file CrackFrontDefinition.C.
Referenced by CrackMeshCut3DUserObject::findActiveBoundaryDirection(), MeshCut2DFractureUserObject::findActiveBoundaryGrowth(), and EnrichmentFunctionCalculation::rotateFromCrackFrontCoordsToGlobal().
RealVectorValue CrackFrontDefinition::rotateToCrackFrontCoords | ( | const RealVectorValue | vector, |
const std::size_t | point_index | ||
) | const |
Rotate a vector in the global coordinate coordinate system to the crack front local coordinate system at a specified point on the crack.
vector | Vector in global coordinates |
point_index | Index of the point |
Definition at line 1269 of file CrackFrontDefinition.C.
Referenced by CrackFrontNonlocalMaterialBase::BoxWeightingFunction(), and calculateRThetaToCrackFront().
RankTwoTensor CrackFrontDefinition::rotateToCrackFrontCoords | ( | const RankTwoTensor | tensor, |
const std::size_t | point_index | ||
) | const |
Rotate a RankTwoTensor in the global coordinate coordinate system to the crack front local coordinate system at a specified point on the crack.
tensor | Tensor in global coordinates |
point_index | Index of the point |
Definition at line 1284 of file CrackFrontDefinition.C.
|
inline |
Whether the fracture computations are treated as 2D for the model.
Definition at line 131 of file CrackFrontDefinition.h.
Referenced by JIntegral::computeQpIntegral(), JIntegral::initialSetup(), DomainIntegralQFunction::initialSetup(), and DomainIntegralTopologicalQFunction::initialSetup().
|
protected |
Update the data structures defining the crack front geometry such as the ordered crack front nodes/points and other auxiliary data.
Definition at line 789 of file CrackFrontDefinition.C.
Referenced by initialize(), and initialSetup().
void CrackFrontDefinition::updateNumberOfCrackFrontPoints | ( | const std::size_t | num_points | ) |
Change the number of crack front nodes.
As the crack grows, the number of crack fronts nodes may keep increasing in many cases.
Definition at line 1176 of file CrackFrontDefinition.C.
Referenced by MeshCut2DFractureUserObject::initialize(), and CrackMeshCut3DUserObject::refineFront().
|
inline |
Is the crack defined by a mesh cutter object.
Definition at line 137 of file CrackFrontDefinition.h.
Referenced by JIntegral::initialSetup(), and DomainIntegralQFunction::initialSetup().
|
static |
Definition at line 25 of file CrackFrontDefinition.C.
|
protected |
Vector of angles along the crack front.
Definition at line 313 of file CrackFrontDefinition.h.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
protected |
Reference to the auxiliary system.
Definition at line 294 of file CrackFrontDefinition.h.
|
protected |
Out of plane axis when crack is treated as 2D.
Definition at line 351 of file CrackFrontDefinition.h.
Referenced by getCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Whether the crack forms a closed loop.
Definition at line 349 of file CrackFrontDefinition.h.
Referenced by computeCurvedCrackFrontCrackPlaneNormals(), createQFunctionRings(), initialSetup(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Fixed vector optionally used to define crack extension direction.
Definition at line 321 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Fixed vector optionally used to define crack extension direction at end 1 of crack front.
Definition at line 323 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Fixed vector optionally used to define crack extension direction at end 2 of crack front.
Definition at line 325 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Vector of crack extension directions along the crack front.
Definition at line 307 of file CrackFrontDefinition.h.
Referenced by getCrackDirection(), and updateCrackFrontGeometry().
|
protected |
Data structure used to store information about topological rings Key is a pair of the crack front node index and ring id Data is a set of the IDs of the nodes in the ring for that crack front node.
Definition at line 374 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), and isNodeInRing().
|
protected |
Vector of points along the crack front.
Definition at line 303 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), getCrackFrontPoint(), getNumCrackFrontPoints(), initialize(), and initialSetup().
|
protected |
Pointer to a CrackFrontPointsProvider object optionally used to define the crack front points.
Definition at line 386 of file CrackFrontDefinition.h.
Referenced by initialize(), initialSetup(), and updateCrackFrontGeometry().
|
protected |
IDs of boundaries used to define location of crack mouth.
Definition at line 333 of file CrackFrontDefinition.h.
Referenced by computeCrackMouthNodes(), and initialSetup().
|
protected |
Names of boundaries used to define location of crack mouth.
Definition at line 331 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), hasAngleAlongFront(), and initialSetup().
|
protected |
Coordinates of crack mouth.
Definition at line 339 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), computeCrackMouthNodes(), and updateCrackFrontGeometry().
|
protected |
Vector normals to a nonplanar crack.
Definition at line 341 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), computeCurvedCrackFrontCrackPlaneNormals(), getCrackFrontNormal(), and updateCrackFrontGeometry().
|
protected |
Fixed vector optionally used to define crack tangent direction at end 1 of crack front.
Definition at line 327 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateCrackFrontGeometry().
|
protected |
Fixed vector optionally used to define crack tangent direction at end 2 of crack front.
Definition at line 329 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateCrackFrontGeometry().
|
protected |
|
protected |
Names of the x, y, and z displacement variables.
Definition at line 358 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Definition at line 359 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Definition at line 360 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Vector of distances along the crack front.
Definition at line 311 of file CrackFrontDefinition.h.
Referenced by getDistanceAlongFront(), and updateCrackFrontGeometry().
|
protected |
Referenced by calculateCrackFrontDirection(), CrackFrontDefinition(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Numer of elements from crack tip to first topological ring.
Definition at line 369 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition().
|
protected |
|
protected |
Whether the crack plane is also a symmetry plane in the model.
Definition at line 353 of file CrackFrontDefinition.h.
Referenced by computeCrackMouthNodes(), and CrackFrontDefinition().
|
protected |
IDs of boundaries that intersect crack at its ends.
Definition at line 337 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and isNodeOnIntersectingBoundary().
|
protected |
Names of boundaries that intersect crack at its ends.
Definition at line 335 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), initialSetup(), and orderCrackFrontNodes().
|
protected |
Indicator that shows if the cutter mesh is modified or not in the calculation step.
Definition at line 347 of file CrackFrontDefinition.h.
Referenced by initialize(), and isCutterModified().
|
protected |
Vector of bools indicating whether individual crack front points are on an intersecting boundary.
Definition at line 379 of file CrackFrontDefinition.h.
Referenced by DomainIntegralQFunction(), initialize(), and initialSetup().
|
protected |
Vector of inner radii of the rings used for geometric q functions.
Definition at line 381 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Vector of outer radii of the rings used for geometric q functions.
Definition at line 383 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Numer of elements from crack tip to last topological ring.
Definition at line 367 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and createQFunctionRings().
|
protected |
Reference to the mesh.
Definition at line 296 of file CrackFrontDefinition.h.
Referenced by addNodesToQFunctionRing(), computeCrackMouthNodes(), createQFunctionRings(), getCrackFrontNodePtr(), getCrackFrontNodes(), initialSetup(), isNodeOnIntersectingBoundary(), orderCrackFrontNodes(), orderEndNodes(), and pickLoopCrackEndNodes().
|
protected |
Number of points coming from the CrackFrontPointsProvider.
Definition at line 388 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), initialize(), initialSetup(), updateCrackFrontGeometry(), and updateNumberOfCrackFrontPoints().
|
protected |
Crack front nodes ordered from the start to end of the crack front.
Definition at line 301 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), createQFunctionRings(), getCrackFrontNodePtr(), getNumCrackFrontPoints(), initialSetup(), isNodeInRing(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Overall length of the crack.
Definition at line 319 of file CrackFrontDefinition.h.
Referenced by updateCrackFrontGeometry().
|
protected |
Whether topological rings are used to define the q functions.
Definition at line 365 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Method used to define the q function.
Definition at line 376 of file CrackFrontDefinition.h.
Referenced by initialize(), and initialSetup().
|
protected |
Vector of rotation matrices along the crack front.
Definition at line 317 of file CrackFrontDefinition.h.
Referenced by rotateFromCrackFrontCoordsToGlobal(), rotateToCrackFrontCoords(), and updateCrackFrontGeometry().
Vector of segment lengths along the crack front.
Definition at line 309 of file CrackFrontDefinition.h.
Referenced by getCrackFrontBackwardSegmentLength(), getCrackFrontForwardSegmentLength(), and updateCrackFrontGeometry().
|
protected |
Vector of tangential strain along the crack front.
Definition at line 315 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), finalize(), getCrackFrontTangentialStrain(), initialSetup(), and updateCrackFrontGeometry().
|
protected |
Which plane is the symmetry plane.
Definition at line 355 of file CrackFrontDefinition.h.
Referenced by computeCrackMouthNodes(), and CrackFrontDefinition().
|
protected |
Whether the T-stress is being computed.
Definition at line 363 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), execute(), finalize(), getCrackFrontTangentialStrain(), and initialSetup().
|
protected |
Vector of tangent directions along the crack front.
Definition at line 305 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), calculateTangentialStrainAlongFront(), getCrackFrontTangent(), and updateCrackFrontGeometry().
|
staticprotected |
Tolerance used in geometric calculations.
Definition at line 298 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), computeCurvedCrackFrontCrackPlaneNormals(), getCrackFrontNodes(), maxNodeCoor(), orderEndNodes(), pickLoopCrackEndNodes(), and updateCrackFrontGeometry().
|
protected |
Whether to treat the model as 2D for computation of fracture integrals.
Definition at line 343 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), CrackFrontDefinition(), createQFunctionRings(), DomainIntegralQFunction(), execute(), getCrackFrontNodes(), initialSetup(), orderCrackFrontNodes(), treatAs2D(), and updateCrackFrontGeometry().
|
protected |
Whether to describe the crack as a mesh cutter.
Definition at line 345 of file CrackFrontDefinition.h.
Referenced by computeCurvedCrackFrontCrackPlaneNormals(), createQFunctionRings(), getCrackFrontNodes(), initialize(), initialSetup(), orderCrackFrontNodes(), updateCrackFrontGeometry(), and usingMeshCutter().