https://mooseframework.inl.gov
LevelSetCutUserObject.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 
12 #include "GeometricCutUserObject.h"
13 
14 // Forward declarations
15 
17 {
18 public:
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 
34  virtual const std::vector<Point>
35  getCrackFrontPoints(unsigned int num_crack_front_points) const override;
36 
37  virtual const std::vector<RealVectorValue>
38  getCrackPlaneNormals(unsigned int num_crack_front_points) const override;
39 
45  virtual CutSubdomainID getCutSubdomainID(const Node * node) const override;
46 
47 protected:
49  const unsigned int _level_set_var_number;
50 
52  const System & _system;
53 
56 
59 
62 };
virtual const std::vector< Point > getCrackFrontPoints(unsigned int num_crack_front_points) const override
get a set of points along a crack front from a XFEM GeometricCutUserObject
const unsigned int _level_set_var_number
The variable number of the level set variable we using to define the cuts.
const NumericVector< Number > & _solution
The subproblem solution vector.
const System & _system
System reference.
virtual bool cutElementByGeometry(const Elem *elem, std::vector< Xfem::CutEdge > &cut_edges, std::vector< Xfem::CutNode > &cut_nodes) const override
virtual const std::vector< RealVectorValue > getCrackPlaneNormals(unsigned int num_crack_front_points) const override
get a set of normal vectors along a crack front from a XFEM GeometricCutUserObject ...
unsigned int CutSubdomainID
Definition: XFEMAppTypes.h:18
const CutSubdomainID _negative_id
The ID for the negative side of the cut.
static InputParameters validParams()
virtual CutSubdomainID getCutSubdomainID(const Node *node) const override
If the levelset value is positive, return 1, otherwise return 0.
virtual bool cutFragmentByGeometry(std::vector< std::vector< Point >> &frag_edges, std::vector< Xfem::CutEdge > &cut_edges) const override
const InputParameters & parameters() const
LevelSetCutUserObject(const InputParameters &parameters)
const CutSubdomainID _positive_id
The ID for the positive side of the cut.