https://mooseframework.inl.gov
MeshCut2DRankTwoTensorNucleation.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 #include "RankTwoTensorForward.h"
14 
16 {
17 public:
19 
22 
23 protected:
26 
29 
32 
35 
38 
41 
44 
46  const Point _point1;
47  const Point _point2;
48 
52 
53  virtual bool
54  doesElementCrack(std::pair<RealVectorValue, RealVectorValue> & cutterElemNodes) override;
55 
56  // FIXME Lynn Copy from TraceRayTools.C in rayTracing module. Remove once this function migrates
57  // to libmesh.
58  bool lineLineIntersect2D(const Point & start,
59  const Point & direction,
60  const Real length,
61  const Point & v0,
62  const Point & v1,
63  Point & intersection_point,
64  Real & intersection_distance);
65 };
bool lineLineIntersect2D(const Point &start, const Point &direction, const Real length, const Point &v0, const Point &v1, Point &intersection_point, Real &intersection_distance)
MeshCut2DRankTwoTensorNucleation(const InputParameters &parameters)
MooseEnum _scalar_type
The type of scalar to be extracted from the tensor.
const Real _edge_extension_factor
scaling factor to extend the nucleated crack beyond the element edges.
const MooseArray< Real > & _JxW
Transformed Jacobian weights.
virtual bool doesElementCrack(std::pair< RealVectorValue, RealVectorValue > &cutterElemNodes) override
Determine whether the current element should be cut by a new crack.
const VariableValue & _nucleation_threshold
Threshold at which a crack is nucleated if exceeded.
const Real _nucleation_length
Length of the nucleated cracks.
OutputTools< Real >::VariableValue VariableValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
const MaterialProperty< RankTwoTensor > & _tensor
The tensor from which the scalar quantity used as a nucleating criterion is extracted.
const bool _is_nucleation_length_provided
is the nucleation length provided in the input file.
const Point _point1
Points used to define an axis of rotation for some scalar quantities.
const bool _nucleate_across_full_element
should element be cut if the nucleation_length is smaller than the element length.