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... | |
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 &value, T2 &proxy) |
void | gatherProxyValueMin (T1 &value, T2 &proxy) |
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 & | 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 &name, const std::string *param=nullptr) 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 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 |
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 () |
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 () |
const std::vector< MooseVariableScalar *> & | getCoupledMooseScalarVars () |
const std::set< TagID > & | getScalarVariableCoupleableVectorTags () const |
const std::set< TagID > & | getScalarVariableCoupleableMatrixTags () const |
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 | updateDataForCrackDirection () |
Update the data structures used to determine the crack front direction vectors such as crack mouth coordinates. 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 |
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 |
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 |
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 |
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 () |
Moose::StateArg | determineState () const |
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... | |
RealVectorValue | _crack_plane_normal |
Vector normal to the crack plane of a planar crack. More... | |
std::vector< RealVectorValue > | _crack_plane_normals |
Vector normals to a nonplanar crack described by the cutter mesh when _use_mesh_cutter = true. 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 & | _sc_fe_problem |
const THREAD_ID | _sc_tid |
const Real & | _real_zero |
const VariableValue & | _scalar_zero |
const Point & | _point_zero |
MooseApp & | _pg_moose_app |
const std::string | _prefix |
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 |
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 280 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 272 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 257 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 265 of file CrackFrontDefinition.h.
CrackFrontDefinition::CrackFrontDefinition | ( | const InputParameters & | parameters | ) |
Definition at line 111 of file CrackFrontDefinition.C.
|
virtual |
Definition at line 276 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 1769 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 1116 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 1291 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 1409 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 1472 of file CrackFrontDefinition.C.
Referenced by execute().
|
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 1611 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 1820 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 1874 of file CrackFrontDefinition.C.
Referenced by JIntegral::execute().
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 279 of file CrackFrontDefinition.C.
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 383 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 1247 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 1229 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 1223 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 1217 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 1187 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 390 of file CrackFrontDefinition.C.
Referenced by initialSetup().
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 1196 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), JIntegral::finalize(), DomainIntegralQFunction::projectToFrontAtPoint(), projectToFrontAtPoint(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
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 1210 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 1595 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 1235 of file CrackFrontDefinition.C.
Referenced by JIntegral::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 1258 of file CrackFrontDefinition.C.
Referenced by calculateRThetaToCrackFront(), JIntegral::initialize(), initialize(), initialSetup(), isPointWithIndexOnIntersectingBoundary(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
bool CrackFrontDefinition::hasAngleAlongFront | ( | ) | const |
Whether the distance along the crack front is available as an angle.
Definition at line 1241 of file CrackFrontDefinition.C.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
inline |
Determine whether the crack front was defined using nodes.
Definition at line 211 of file CrackFrontDefinition.h.
Referenced by CrackFrontData::initialize().
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 360 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 1905 of file CrackFrontDefinition.C.
Referenced by MeshCut2DFractureUserObject::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 1797 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 1435 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 1452 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 714 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 455 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 602 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 652 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 1887 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 1274 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 1267 of file CrackFrontDefinition.C.
Referenced by 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 1282 of file CrackFrontDefinition.C.
|
inline |
Whether the fracture computations are treated as 2D for the model.
Definition at line 124 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 797 of file CrackFrontDefinition.C.
Referenced by initialize(), and initialSetup().
|
protected |
Update the data structures used to determine the crack front direction vectors such as crack mouth coordinates.
Definition at line 1035 of file CrackFrontDefinition.C.
Referenced by updateCrackFrontGeometry().
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 1181 of file CrackFrontDefinition.C.
Referenced by MeshCut2DFractureUserObject::initialize(), and CrackMeshCut3DUserObject::refineFront().
|
inline |
Is the crack defined by a mesh cutter object.
Definition at line 130 of file CrackFrontDefinition.h.
Referenced by JIntegral::initialSetup(), and DomainIntegralQFunction::initialSetup().
|
static |
Definition at line 24 of file CrackFrontDefinition.C.
|
protected |
Vector of angles along the crack front.
Definition at line 306 of file CrackFrontDefinition.h.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
protected |
Reference to the auxiliary system.
Definition at line 287 of file CrackFrontDefinition.h.
|
protected |
Out of plane axis when crack is treated as 2D.
Definition at line 346 of file CrackFrontDefinition.h.
Referenced by getCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Whether the crack forms a closed loop.
Definition at line 344 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), initialSetup(), orderCrackFrontNodes(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Fixed vector optionally used to define crack extension direction.
Definition at line 314 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 316 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 318 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Vector of crack extension directions along the crack front.
Definition at line 300 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 369 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), and isNodeInRing().
|
protected |
Vector of points along the crack front.
Definition at line 296 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 381 of file CrackFrontDefinition.h.
Referenced by initialize(), initialSetup(), and updateCrackFrontGeometry().
|
protected |
IDs of boundaries used to define location of crack mouth.
Definition at line 326 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and updateDataForCrackDirection().
|
protected |
Names of boundaries used to define location of crack mouth.
Definition at line 324 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), hasAngleAlongFront(), and initialSetup().
|
protected |
Coordinates of crack mouth.
Definition at line 332 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Vector normal to the crack plane of a planar crack.
Definition at line 334 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Vector normals to a nonplanar crack described by the cutter mesh when _use_mesh_cutter = true.
Definition at line 336 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), initialize(), initialSetup(), and updateCrackFrontGeometry().
|
protected |
Fixed vector optionally used to define crack tangent direction at end 1 of crack front.
Definition at line 320 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 322 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateCrackFrontGeometry().
|
protected |
|
protected |
Names of the x, y, and z displacement variables.
Definition at line 353 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Definition at line 354 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Definition at line 355 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Vector of distances along the crack front.
Definition at line 304 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 364 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition().
|
protected |
|
protected |
Whether the crack plane is also a symmetry plane in the model.
Definition at line 348 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateDataForCrackDirection().
|
protected |
IDs of boundaries that intersect crack at its ends.
Definition at line 330 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and isNodeOnIntersectingBoundary().
|
protected |
Names of boundaries that intersect crack at its ends.
Definition at line 328 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 342 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 374 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 376 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 378 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Numer of elements from crack tip to last topological ring.
Definition at line 362 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and createQFunctionRings().
|
protected |
Reference to the mesh.
Definition at line 289 of file CrackFrontDefinition.h.
Referenced by addNodesToQFunctionRing(), createQFunctionRings(), getCrackFrontNodePtr(), getCrackFrontNodes(), initialSetup(), isNodeOnIntersectingBoundary(), orderCrackFrontNodes(), orderEndNodes(), pickLoopCrackEndNodes(), and updateDataForCrackDirection().
|
protected |
Number of points coming from the CrackFrontPointsProvider.
Definition at line 383 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), initialize(), initialSetup(), and updateNumberOfCrackFrontPoints().
|
protected |
Crack front nodes ordered from the start to end of the crack front.
Definition at line 294 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), createQFunctionRings(), getCrackFrontNodePtr(), getNumCrackFrontPoints(), initialSetup(), isNodeInRing(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Overall length of the crack.
Definition at line 312 of file CrackFrontDefinition.h.
Referenced by updateCrackFrontGeometry().
|
protected |
Whether topological rings are used to define the q functions.
Definition at line 360 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Method used to define the q function.
Definition at line 371 of file CrackFrontDefinition.h.
Referenced by initialize(), and initialSetup().
|
protected |
Vector of rotation matrices along the crack front.
Definition at line 310 of file CrackFrontDefinition.h.
Referenced by rotateFromCrackFrontCoordsToGlobal(), rotateToCrackFrontCoords(), and updateCrackFrontGeometry().
Vector of segment lengths along the crack front.
Definition at line 302 of file CrackFrontDefinition.h.
Referenced by getCrackFrontBackwardSegmentLength(), getCrackFrontForwardSegmentLength(), and updateCrackFrontGeometry().
|
protected |
Vector of tangential strain along the crack front.
Definition at line 308 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), finalize(), getCrackFrontTangentialStrain(), initialSetup(), and updateCrackFrontGeometry().
|
protected |
Which plane is the symmetry plane.
Definition at line 350 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateDataForCrackDirection().
|
protected |
Whether the T-stress is being computed.
Definition at line 358 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), execute(), finalize(), getCrackFrontTangentialStrain(), and initialSetup().
|
protected |
Vector of tangent directions along the crack front.
Definition at line 298 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), calculateTangentialStrainAlongFront(), getCrackFrontTangent(), and updateCrackFrontGeometry().
|
staticprotected |
Tolerance used in geometric calculations.
Definition at line 291 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), getCrackFrontNodes(), maxNodeCoor(), orderEndNodes(), pickLoopCrackEndNodes(), updateCrackFrontGeometry(), and updateDataForCrackDirection().
|
protected |
Whether to treat the model as 2D for computation of fracture integrals.
Definition at line 338 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 340 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), calculateRThetaToCrackFront(), createQFunctionRings(), getCrackFrontNodes(), initialize(), initialSetup(), orderCrackFrontNodes(), updateCrackFrontGeometry(), updateDataForCrackDirection(), and usingMeshCutter().