www.mooseframework.org
XFEMCrackGrowthIncrement2DCut.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
12 #include "libmesh/libmesh_common.h"
13 #include "libmesh/libmesh.h" // libMesh::invalid_uint
14 #include "libmesh/elem.h"
15 
16 using namespace libMesh;
17 
19 {
20  unsigned int _id1;
21  unsigned int _id2;
22  Real _distance;
23  unsigned int _host_side_id;
24 };
25 
27 {
28 public:
29  XFEMCrackGrowthIncrement2DCut(Real x0, Real y0, Real x1, Real y1, Real t0, Real t1);
30 
31  virtual bool cutElementByCrackGrowthIncrement(const Elem * elem,
32  std::vector<CutEdgeForCrackGrowthIncr> & cut_edges,
33  Real time);
34 
35  Real cutCompletionFraction(Real time);
36 
37 protected:
38  bool IntersectSegmentWithCutLine(const Point & segment_point1,
39  const Point & segment_point2,
40  const std::pair<Point, Point> & cutting_line_points,
41  const Real & cutting_line_fraction,
42  Real & segment_intersection_fraction);
43 
44  Real crossProduct2D(const Point & point_a, const Point & point_b);
45 
46  const std::pair<Real, Real> _time_range;
47 
48 private:
49  const std::pair<Point, Point> _cut_line_endpoints;
50 };
51 
XFEMCrackGrowthIncrement2DCut::_cut_line_endpoints
const std::pair< Point, Point > _cut_line_endpoints
Definition: XFEMCrackGrowthIncrement2DCut.h:49
libMesh
Definition: RANFSNormalMechanicalContact.h:24
CutEdgeForCrackGrowthIncr
Definition: XFEMCrackGrowthIncrement2DCut.h:18
CutEdgeForCrackGrowthIncr::_distance
Real _distance
Definition: XFEMCrackGrowthIncrement2DCut.h:22
CutEdgeForCrackGrowthIncr::_id2
unsigned int _id2
Definition: XFEMCrackGrowthIncrement2DCut.h:21
XFEMCrackGrowthIncrement2DCut
Definition: XFEMCrackGrowthIncrement2DCut.h:26
CutEdgeForCrackGrowthIncr::_host_side_id
unsigned int _host_side_id
Definition: XFEMCrackGrowthIncrement2DCut.h:23
CutEdgeForCrackGrowthIncr::_id1
unsigned int _id1
Definition: XFEMCrackGrowthIncrement2DCut.h:20
XFEMCrackGrowthIncrement2DCut::_time_range
const std::pair< Real, Real > _time_range
Definition: XFEMCrackGrowthIncrement2DCut.h:46