https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
16class XFEM;
18
20{
21public:
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
66protected:
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
104 const NumericVector<Number> & _solution;
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};
const Real p
std::list< std::pair< const Elem *, const Elem * > > ElementPairList
const InputParameters & parameters() const
virtual void finalize() override
std::shared_ptr< XFEM > _xfem
Pointer to the XFEM controller object.
MooseVariableFEBase * _var
Pointer to MooseVariableFEBase object.
std::map< unsigned int, RealVectorValue > _grad_values_positive_level_set_side
Mapping from point index and its gradient at the positive level set side.
std::map< unsigned int, Real > getValueAtPositiveLevelSet() const
get the map that stores the point index and its values at the positive level set side
MooseMesh & _mesh
The computation mesh.
virtual void execute() override
std::unique_ptr< libMesh::PointLocatorBase > _pl
Pointer to PointLocatorBase object.
const unsigned int _level_set_var_number
The variable number of the level set variable we are operating on.
std::map< unsigned int, Real > _values_negative_level_set_side
Mapping from point index and its values at the negative level set side.
static InputParameters validParams()
virtual void initialize() override
const InterfaceMeshCutUserObjectBase * _mesh_cut
Pointer to LineSegmentCutSetUserObject object.
const ElementPairLocator::ElementPairList * _elem_pairs
Pointer to ElementPairList object.
const NumericVector< Number > & _solution
The subproblem solution vector.
std::map< unsigned int, RealVectorValue > getGradientAtNegativeLevelSet() const
get the map that stores the point index and its graident at the negative level set side
std::map< unsigned int, RealVectorValue > getGradientAtPositiveLevelSet() const
get the map that stores the point index and its gradient at the positive level set side
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.
std::map< unsigned int, Real > _values_positive_level_set_side
Mapping from 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.
std::vector< Point > _nodes
The nodes to evaluate at.
std::map< unsigned int, Real > getValueAtNegativeLevelSet() const
get the map that stores the point index and its values at the negative level set side
const libMesh::System & _system
System reference.
This is the XFEM class.
Definition XFEM.h:108