https://mooseframework.inl.gov
Loading...
Searching...
No Matches
GeometricCut3DUserObject.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
15{
16public:
18
20
21 virtual bool cutElementByGeometry(const Elem * elem,
22 std::vector<Xfem::CutEdge> & cut_edges,
23 std::vector<Xfem::CutNode> & cut_nodes) const override;
24 virtual bool cutElementByGeometry(const Elem * elem,
25 std::vector<Xfem::CutFace> & cut_faces) const override;
26
27 virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_edges,
28 std::vector<Xfem::CutEdge> & cut_edges) const override;
29 virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_faces,
30 std::vector<Xfem::CutFace> & cut_faces) const override;
31
32protected:
33 Point _center;
34 Point _normal;
35
36 virtual bool intersectWithEdge(const Point & p1, const Point & p2, Point & pint) const;
37
38 virtual bool isInsideCutPlane(Point p) const = 0;
39
40 bool isInsideEdge(const Point & p1, const Point & p2, const Point & p) const;
41
42 Real getRelativePosition(const Point & p1, const Point & p2, const Point & p) const;
43};
const Real p
virtual bool cutElementByGeometry(const Elem *elem, std::vector< Xfem::CutEdge > &cut_edges, std::vector< Xfem::CutNode > &cut_nodes) const override
Check to see whether a specified 2D element should be cut based on geometric conditions.
virtual bool intersectWithEdge(const Point &p1, const Point &p2, Point &pint) const
static InputParameters validParams()
Real getRelativePosition(const Point &p1, const Point &p2, const Point &p) const
virtual bool isInsideCutPlane(Point p) const =0
virtual bool cutFragmentByGeometry(std::vector< std::vector< Point > > &frag_edges, std::vector< Xfem::CutEdge > &cut_edges) const override
Check to see whether a fragment of a 2D element should be cut based on geometric conditions.
bool isInsideEdge(const Point &p1, const Point &p2, const Point &p) const
const InputParameters & parameters() const