www.mooseframework.org
GeometricCut3DUserObject.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 "GeometricCutUserObject.h"
13 
14 using namespace libMesh;
15 
17 
18 template <>
20 
22 {
23 public:
24  GeometricCut3DUserObject(const InputParameters & parameters);
25 
26  virtual bool cutElementByGeometry(const Elem * elem,
27  std::vector<Xfem::CutEdge> & cut_edges,
28  std::vector<Xfem::CutNode> & cut_nodes,
29  Real time) const override;
30  virtual bool cutElementByGeometry(const Elem * elem,
31  std::vector<Xfem::CutFace> & cut_faces,
32  Real time) const override;
33 
34  virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_edges,
35  std::vector<Xfem::CutEdge> & cut_edges,
36  Real time) const override;
37  virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_faces,
38  std::vector<Xfem::CutFace> & cut_faces,
39  Real time) const override;
40 
41 protected:
42  Point _center;
43  Point _normal;
44 
45  virtual bool intersectWithEdge(const Point & p1, const Point & p2, Point & pint) const;
46 
47  virtual bool isInsideCutPlane(Point p) const = 0;
48 
49  bool isInsideEdge(const Point & p1, const Point & p2, const Point & p) const;
50 
51  Real getRelativePosition(const Point & p1, const Point & p2, const Point & p) const;
52 };
53 
GeometricCut3DUserObject
Definition: GeometricCut3DUserObject.h:21
libMesh
Definition: RANFSNormalMechanicalContact.h:24
GeometricCutUserObject.h
GeometricCutUserObject
Definition: GeometricCutUserObject.h:106
GeometricCut3DUserObject::_normal
Point _normal
Definition: GeometricCut3DUserObject.h:43
validParams< GeometricCut3DUserObject >
InputParameters validParams< GeometricCut3DUserObject >()
Definition: GeometricCut3DUserObject.C:22
GeometricCut3DUserObject::_center
Point _center
Definition: GeometricCut3DUserObject.h:42