https://mooseframework.inl.gov
NodeValueAtXFEMInterface.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 "GeneralUserObject.h"
13 #include "ElementPairLocator.h"
14 #include "MooseVariableFE.h"
15 
16 class XFEM;
18 
20 {
21 public:
23 
25 
27 
28  virtual void initialize() override;
29  virtual void execute() override;
30  virtual void finalize() override;
31 
35  std::map<unsigned int, Real> getValueAtPositiveLevelSet() const
36  {
38  };
39 
43  std::map<unsigned int, Real> getValueAtNegativeLevelSet() const
44  {
46  };
47 
51  std::map<unsigned int, RealVectorValue> getGradientAtPositiveLevelSet() const
52  {
54  };
55 
59  std::map<unsigned int, RealVectorValue> getGradientAtNegativeLevelSet() const
60  {
62  };
63 
64  unsigned int numberNodes() const { return _nodes.size(); };
65 
66 protected:
74  const Elem * getElemContainingPoint(const Node & p, bool positive_level_set);
75 
78 
80  std::vector<Point> _nodes;
81 
83  std::unique_ptr<libMesh::PointLocatorBase> _pl;
84 
86  std::shared_ptr<XFEM> _xfem;
87 
90 
93 
96 
98  const unsigned int _level_set_var_number;
99 
102 
105 
107  std::map<unsigned int, Real> _values_positive_level_set_side;
108 
110  std::map<unsigned int, Real> _values_negative_level_set_side;
111 
113  std::map<unsigned int, RealVectorValue> _grad_values_positive_level_set_side;
114 
116  std::map<unsigned int, RealVectorValue> _grad_values_negative_level_set_side;
117 };
std::map< unsigned int, Real > _values_positive_level_set_side
Mapping from point index and its values at the positive level set side.
const NumericVector< Number > & _solution
The subproblem solution vector.
MooseMesh & _mesh
The computation mesh.
const unsigned int _level_set_var_number
The variable number of the level set variable we are operating on.
unsigned int numberNodes() const
This is the XFEM class.
Definition: XFEM.h:107
std::unique_ptr< libMesh::PointLocatorBase > _pl
Pointer to PointLocatorBase object.
const Elem * getElemContainingPoint(const Node &p, bool positive_level_set)
Find the element in the element pairs that contains the point in its physical domain.
MooseVariableFEBase * _var
Pointer to MooseVariableFEBase object.
std::shared_ptr< XFEM > _xfem
Pointer to the XFEM controller object.
std::map< unsigned int, Real > getValueAtNegativeLevelSet() const
get the map that stores the point index and its values at the negative level set side ...
std::map< unsigned int, Real > _values_negative_level_set_side
Mapping from point index and its values at the negative level set side.
std::map< unsigned int, RealVectorValue > getGradientAtNegativeLevelSet() const
get the map that stores the point index and its graident at the negative level set side ...
const ElementPairLocator::ElementPairList * _elem_pairs
Pointer to ElementPairList object.
std::list< std::pair< const Elem *, const Elem *> > ElementPairList
std::map< unsigned int, RealVectorValue > getGradientAtPositiveLevelSet() const
get the map that stores the point index and its gradient at the positive level set side ...
std::map< unsigned int, RealVectorValue > _grad_values_positive_level_set_side
Mapping from point index and its gradient at the positive level set side.
virtual void finalize() override
const libMesh::System & _system
System reference.
static InputParameters validParams()
const InputParameters & parameters() const
std::vector< Point > _nodes
The nodes to evaluate at.
NodeValueAtXFEMInterface(const InputParameters &parameters)
const InterfaceMeshCutUserObjectBase * _mesh_cut
Pointer to LineSegmentCutSetUserObject object.
virtual void execute() override
virtual void initialize() override
std::map< unsigned int, Real > getValueAtPositiveLevelSet() const
get the map that stores the point index and its values at the positive level set side ...
std::map< unsigned int, RealVectorValue > _grad_values_negative_level_set_side
Mapping from point index and its gradient at the negative level set side.