https://mooseframework.inl.gov
XYDelaunayGenerator.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 
21 {
22 public:
24 
26 
27  std::unique_ptr<MeshBase> generate() override;
28 
29 protected:
31  std::unique_ptr<MeshBase> & _bdy_ptr;
32 
34  const unsigned int _add_nodes_per_boundary_segment;
35 
37  const bool _refine_bdy;
38 
41 
43  const bool _smooth_tri;
44 
46  const bool _verify_holes;
47 
49  const std::vector<std::unique_ptr<MeshBase> *> _hole_ptrs;
50 
52  const std::vector<bool> _stitch_holes;
53 
55  const std::vector<bool> _refine_holes;
56 
59 
61  const std::string _desired_area_func;
62 
64  const bool _use_auto_area_func;
65 
68 
71 
73  const unsigned int _auto_area_function_num_points;
74 
77 
80 
83 
85  const bool _verbose_stitching;
86 
88  std::vector<Point> _interior_points;
89 };
const std::string _desired_area_func
Desired triangle area as a (fparser-compatible) function of x,y.
const bool _verbose_stitching
Whether mesh stitching should have verbose output.
const bool _verify_holes
Whether to verify holes do not intersect boundary or each other.
const std::vector< bool > _refine_holes
Whether to allow automatically refining each hole boundary.
const Real _auto_area_func_default_size
Background size for automatic desired area function.
std::vector< Point > _interior_points
Desired interior node locations.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
const bool _smooth_tri
Whether to do Laplacian mesh smoothing on the generated triangles.
std::unique_ptr< MeshBase > & _bdy_ptr
Input mesh defining the boundary to triangulate within.
const bool _refine_bdy
Whether to allow automatically refining the outer boundary.
const std::vector< bool > _stitch_holes
Whether to stitch to the mesh defining each hole.
Generates a triangulation in the XY plane, based on an input mesh defining the outer boundary (as wel...
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:33
XYDelaunayGenerator(const InputParameters &parameters)
const Real _auto_area_function_power
Power of the polynomial used in the inverse distance interpolation for automatic area function...
static InputParameters validParams()
const unsigned int _add_nodes_per_boundary_segment
How many more nodes to add in each outer boundary segment.
const bool _use_auto_area_func
Whether to use automatic desired area function.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MooseEnum _algorithm
Type of algorithm used to find matching nodes (binary or exhaustive)
const std::vector< std::unique_ptr< MeshBase > * > _hole_ptrs
Holds pointers to the pointers to input meshes defining holes.
const MooseEnum _tri_elem_type
Type of triangular elements to be generated.
const InputParameters & parameters() const
Get the parameters of the object.
const Real _auto_area_func_default_size_dist
Background size&#39;s effective distance for automatic desired area function.
const unsigned int _auto_area_function_num_points
Maximum number of points to use for the inverse distance interpolation for automatic area function...
SubdomainID _output_subdomain_id
What subdomain_id to set on the generated triangles.
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:32
const Real _desired_area
Desired (maximum) triangle area.