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 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 |
bool | isKokkosObject (IsKokkosObjectKey &&) const |
MooseApp & | getMooseApp () const |
const std::string & | type () const |
const std::string & | name () const |
std::string | typeAndName () const |
MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
MooseObjectName | uniqueName () const |
const InputParameters & | parameters () const |
const hit::Node * | getHitNode () const |
bool | hasBase () const |
const std::string & | getBase () 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 &name) const |
void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) 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 |
std::string | messagePrefix (const bool hit_prefix=true) const |
std::string | errorPrefix (const std::string &) const |
void | mooseError (Args &&... args) const |
void | mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const |
void | mooseErrorNonPrefixed (Args &&... args) const |
void | mooseWarning (Args &&... args) const |
void | mooseWarningNonPrefixed (Args &&... args) const |
void | mooseDeprecated (Args &&... args) const |
void | mooseInfo (Args &&... args) const |
void | callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr) 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) |
Moose::Kokkos::MaterialProperty< T, dimension > | getKokkosMaterialPropertyByName (const std::string &prop_name) |
Moose::Kokkos::MaterialProperty< T, dimension > | getKokkosMaterialPropertyOldByName (const std::string &prop_name) |
Moose::Kokkos::MaterialProperty< T, dimension > | getKokkosMaterialPropertyOlderByName (const std::string &prop_name) |
Moose::Kokkos::MaterialProperty< T, dimension > | getKokkosMaterialProperty (const std::string &name) |
Moose::Kokkos::MaterialProperty< T, dimension > | getKokkosMaterialPropertyOld (const std::string &name) |
Moose::Kokkos::MaterialProperty< T, dimension > | getKokkosMaterialPropertyOlder (const std::string &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) |
virtual 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 | hasKokkosMaterialProperty (const std::string &name) |
bool | hasKokkosMaterialProperty (const std::string &name) |
bool | hasKokkosMaterialPropertyByName (const std::string &name) |
bool | hasKokkosMaterialPropertyByName (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 | includeCrackFrontDefinitionParams (InputParameters ¶ms) |
used by Actions to add CrackFrontDefinitionParams More... | |
static void | callMooseError (MooseApp *const app, const InputParameters ¶ms, std::string msg, const bool with_prefix, const hit::Node *node) |
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 const std::string | type_param |
static const std::string | name_param |
static const std::string | unique_name_param |
static const std::string | app_param |
static const std::string | moose_base_param |
static const std::string | kokkos_object_param |
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 ReporterContextBase & | getReporterContextBaseByName (const ReporterName &reporter_name) const |
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 |
KOKKOS_FUNCTION dof_id_type | numKokkosBoundaryNodes () const |
KOKKOS_FUNCTION dof_id_type | numKokkosBoundarySides () const |
KOKKOS_FUNCTION ContiguousNodeID | kokkosBoundaryNodeID (ThreadID tid) const |
KOKKOS_FUNCTION auto | kokkosBoundaryElementSideID (ThreadID tid) 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... | |
const Real | _tol |
tolerance for matching nodes at crack front 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 |
Factory & | _factory |
ActionFactory & | _action_factory |
const std::string & | _type |
const std::string & | _name |
const InputParameters & | _pars |
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 bool | _is_kokkos_object |
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 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 32 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 290 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 282 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 267 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 275 of file CrackFrontDefinition.h.
CrackFrontDefinition::CrackFrontDefinition | ( | const InputParameters & | parameters | ) |
Definition at line 120 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 1774 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 1121 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 1300 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 1415 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 1478 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 1035 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 1070 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 1617 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 1825 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 1879 of file CrackFrontDefinition.C.
Referenced by JIntegral::execute().
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 287 of file CrackFrontDefinition.C.
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 382 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 1256 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 1238 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 1232 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 1226 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 1189 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 389 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 1219 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 1198 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 1212 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 1601 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 1244 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 1267 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 1250 of file CrackFrontDefinition.C.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
inline |
Determine whether the crack front was defined using nodes.
Definition at line 221 of file CrackFrontDefinition.h.
Referenced by CrackFrontData::initialize().
|
static |
used by Actions to add CrackFrontDefinitionParams
Definition at line 48 of file CrackFrontDefinition.C.
Referenced by addCrackFrontDefinitionParams(), DomainIntegralAction::validParams(), and validParams().
|
overridevirtual |
Implements GeneralUserObject.
Definition at line 361 of file CrackFrontDefinition.C.
|
overridevirtual |
Reimplemented from GeneralUserObject.
Definition at line 296 of file CrackFrontDefinition.C.
void CrackFrontDefinition::isCutterModified | ( | const bool | is_cutter_modified | ) |
Set the value of _is_cutter_modified.
Definition at line 1910 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 1802 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 1441 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 1458 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 713 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 454 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 601 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 651 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 1892 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 1283 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 1276 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 1291 of file CrackFrontDefinition.C.
|
inline |
Whether the fracture computations are treated as 2D for the model.
Definition at line 134 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 796 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 1183 of file CrackFrontDefinition.C.
Referenced by MeshCut2DFractureUserObject::initialize(), and CrackMeshCut3DUserObject::refineFront().
|
inline |
Is the crack defined by a mesh cutter object.
Definition at line 140 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 314 of file CrackFrontDefinition.h.
Referenced by getAngleAlongFront(), and updateCrackFrontGeometry().
|
protected |
Reference to the auxiliary system.
Definition at line 297 of file CrackFrontDefinition.h.
|
protected |
Out of plane axis when crack is treated as 2D.
Definition at line 352 of file CrackFrontDefinition.h.
Referenced by getCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Whether the crack forms a closed loop.
Definition at line 350 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 322 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 324 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 326 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), and CrackFrontDefinition().
|
protected |
Vector of crack extension directions along the crack front.
Definition at line 308 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 375 of file CrackFrontDefinition.h.
Referenced by createQFunctionRings(), and isNodeInRing().
|
protected |
Vector of points along the crack front.
Definition at line 304 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 387 of file CrackFrontDefinition.h.
Referenced by initialize(), initialSetup(), and updateCrackFrontGeometry().
|
protected |
IDs of boundaries used to define location of crack mouth.
Definition at line 334 of file CrackFrontDefinition.h.
Referenced by computeCrackMouthNodes(), and initialSetup().
|
protected |
Names of boundaries used to define location of crack mouth.
Definition at line 332 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), hasAngleAlongFront(), and initialSetup().
|
protected |
Coordinates of crack mouth.
Definition at line 340 of file CrackFrontDefinition.h.
Referenced by calculateCrackFrontDirection(), computeCrackMouthNodes(), and updateCrackFrontGeometry().
|
protected |
Vector normals to a nonplanar crack.
Definition at line 342 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 328 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 330 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and updateCrackFrontGeometry().
|
protected |
|
protected |
Names of the x, y, and z displacement variables.
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 |
Definition at line 361 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), and CrackFrontDefinition().
|
protected |
Vector of distances along the crack front.
Definition at line 312 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 370 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition().
|
protected |
|
protected |
Whether the crack plane is also a symmetry plane in the model.
Definition at line 354 of file CrackFrontDefinition.h.
Referenced by computeCrackMouthNodes(), and CrackFrontDefinition().
|
protected |
IDs of boundaries that intersect crack at its ends.
Definition at line 338 of file CrackFrontDefinition.h.
Referenced by initialSetup(), and isNodeOnIntersectingBoundary().
|
protected |
Names of boundaries that intersect crack at its ends.
Definition at line 336 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 348 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 380 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 382 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 384 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and DomainIntegralQFunction().
|
protected |
Numer of elements from crack tip to last topological ring.
Definition at line 368 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and createQFunctionRings().
|
protected |
Reference to the mesh.
Definition at line 299 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 389 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 302 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), createQFunctionRings(), getCrackFrontNodePtr(), getNumCrackFrontPoints(), initialSetup(), isNodeInRing(), orderCrackFrontNodes(), and updateCrackFrontGeometry().
|
protected |
Overall length of the crack.
Definition at line 320 of file CrackFrontDefinition.h.
Referenced by updateCrackFrontGeometry().
|
protected |
Whether topological rings are used to define the q functions.
Definition at line 366 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), and initialSetup().
|
protected |
Method used to define the q function.
Definition at line 377 of file CrackFrontDefinition.h.
Referenced by initialize(), and initialSetup().
|
protected |
Vector of rotation matrices along the crack front.
Definition at line 318 of file CrackFrontDefinition.h.
Referenced by rotateFromCrackFrontCoordsToGlobal(), rotateToCrackFrontCoords(), and updateCrackFrontGeometry().
Vector of segment lengths along the crack front.
Definition at line 310 of file CrackFrontDefinition.h.
Referenced by getCrackFrontBackwardSegmentLength(), getCrackFrontForwardSegmentLength(), and updateCrackFrontGeometry().
|
protected |
Vector of tangential strain along the crack front.
Definition at line 316 of file CrackFrontDefinition.h.
Referenced by calculateTangentialStrainAlongFront(), finalize(), getCrackFrontTangentialStrain(), initialSetup(), and updateCrackFrontGeometry().
|
protected |
Which plane is the symmetry plane.
Definition at line 356 of file CrackFrontDefinition.h.
Referenced by computeCrackMouthNodes(), and CrackFrontDefinition().
|
protected |
Whether the T-stress is being computed.
Definition at line 364 of file CrackFrontDefinition.h.
Referenced by CrackFrontDefinition(), execute(), finalize(), getCrackFrontTangentialStrain(), and initialSetup().
|
protected |
Vector of tangent directions along the crack front.
Definition at line 306 of file CrackFrontDefinition.h.
Referenced by calculateRThetaToCrackFront(), calculateTangentialStrainAlongFront(), getCrackFrontTangent(), and updateCrackFrontGeometry().
|
protected |
tolerance for matching nodes at crack front
Definition at line 391 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 344 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 346 of file CrackFrontDefinition.h.
Referenced by computeCurvedCrackFrontCrackPlaneNormals(), createQFunctionRings(), getCrackFrontNodes(), initialize(), initialSetup(), orderCrackFrontNodes(), updateCrackFrontGeometry(), and usingMeshCutter().