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
14using namespace libMesh;
15
17{
18public:
20
22
23 virtual bool cutElementByGeometry(const Elem * elem,
24 std::vector<Xfem::CutEdge> & cut_edges,
25 std::vector<Xfem::CutNode> & cut_nodes) const override;
26 virtual bool cutElementByGeometry(const Elem * elem,
27 std::vector<Xfem::CutFace> & cut_faces) const override;
28
29 virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_edges,
30 std::vector<Xfem::CutEdge> & cut_edges) const override;
31 virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_faces,
32 std::vector<Xfem::CutFace> & cut_faces) const override;
33
34protected:
37
38 virtual bool intersectWithEdge(const Point & p1, const Point & p2, Point & pint) const;
39
40 virtual bool isInsideCutPlane(Point p) const = 0;
41
42 bool isInsideEdge(const Point & p1, const Point & p2, const Point & p) const;
43
44 Real getRelativePosition(const Point & p1, const Point & p2, const Point & p) const;
45};
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
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real