www.mooseframework.org
LevelSetCutUserObject.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 // Forward declarations
16 
17 template <>
18 InputParameters validParams<LevelSetCutUserObject>();
19 
21 {
22 public:
23  LevelSetCutUserObject(const InputParameters & parameters);
24 
25  virtual bool cutElementByGeometry(const Elem * elem,
26  std::vector<Xfem::CutEdge> & cut_edges,
27  std::vector<Xfem::CutNode> & cut_nodes,
28  Real time) const override;
29  virtual bool cutElementByGeometry(const Elem * elem,
30  std::vector<Xfem::CutFace> & cut_faces,
31  Real time) const override;
32 
33  virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_edges,
34  std::vector<Xfem::CutEdge> & cut_edges,
35  Real time) const override;
36  virtual bool cutFragmentByGeometry(std::vector<std::vector<Point>> & frag_faces,
37  std::vector<Xfem::CutFace> & cut_faces,
38  Real time) const override;
39 
40  virtual const std::vector<Point>
41  getCrackFrontPoints(unsigned int num_crack_front_points) const override;
42 
43 protected:
45  const unsigned int _level_set_var_number;
46 
48  const System & _system;
49 
51  const NumericVector<Number> * _solution;
52 };
53 
LevelSetCutUserObject::cutElementByGeometry
virtual bool cutElementByGeometry(const Elem *elem, std::vector< Xfem::CutEdge > &cut_edges, std::vector< Xfem::CutNode > &cut_nodes, Real time) const override
Check to see whether a specified 2D element should be cut based on geometric conditions.
Definition: LevelSetCutUserObject.C:42
LevelSetCutUserObject::_system
const System & _system
system reference
Definition: LevelSetCutUserObject.h:48
GeometricCutUserObject.h
LevelSetCutUserObject::getCrackFrontPoints
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
Definition: LevelSetCutUserObject.C:164
GeometricCutUserObject
Definition: GeometricCutUserObject.h:106
LevelSetCutUserObject::LevelSetCutUserObject
LevelSetCutUserObject(const InputParameters &parameters)
Definition: LevelSetCutUserObject.C:28
LevelSetCutUserObject
Definition: LevelSetCutUserObject.h:20
validParams< LevelSetCutUserObject >
InputParameters validParams< LevelSetCutUserObject >()
Definition: LevelSetCutUserObject.C:19
LevelSetCutUserObject::cutFragmentByGeometry
virtual bool cutFragmentByGeometry(std::vector< std::vector< Point >> &frag_edges, std::vector< Xfem::CutEdge > &cut_edges, Real time) const override
Check to see whether a fragment of a 2D element should be cut based on geometric conditions.
Definition: LevelSetCutUserObject.C:147
LevelSetCutUserObject::_level_set_var_number
const unsigned int _level_set_var_number
The variable number of the level set variable we using to define the cuts.
Definition: LevelSetCutUserObject.h:45
LevelSetCutUserObject::_solution
const NumericVector< Number > * _solution
the subproblem solution vector
Definition: LevelSetCutUserObject.h:51