https://mooseframework.inl.gov
ProjectSideSetOntoLevelSetGenerator.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 "MeshGenerator.h"
13 
14 #include "FunctionParserUtils.h"
15 
20 {
21 public:
23 
25 
26  std::unique_ptr<MeshBase> generate() override;
27 
28 protected:
30  const MeshGeneratorName _input_name;
32  std::unique_ptr<MeshBase> & _input;
34  Point _proj_dir;
36  const std::string _level_set;
41 
49  Point pointPairLevelSetInterception(const Point & point1, const Point & point2);
50 
56  Real levelSetEvaluator(const Point & point);
57 };
std::shared_ptr< SymFunction > SymFunctionPtr
Shorthand for an smart pointer to an autodiff function parser object.
ProjectSideSetOntoLevelSetGenerator(const InputParameters &parameters)
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
std::unique_ptr< MeshBase > & _input
Reference to input mesh pointer.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
SymFunctionPtr _func_level_set
function parser object describing the level set
const std::string _level_set
The analytic level set function in the form of a string that can be parsed by FParser.
const Real _max_search_distance
Maximum distance to search for from starting nodeset to projection point.
Point pointPairLevelSetInterception(const Point &point1, const Point &point2)
Calculate the intersection point of a level set and a line segment defined by two points separated by...
const MeshGeneratorName _input_name
Name of the input mesh.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Projects a sideset onto a level set function using a fixed vector.
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
Real levelSetEvaluator(const Point &point)
Evaluate the level set function at a given point.
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:33