https://mooseframework.inl.gov
MeshTriangulationUtils.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 "libmesh/replicated_mesh.h"
13 
14 #include "MooseTypes.h"
15 #include "MeshGenerator.h"
16 
18 {
19 
26 {
27  std::vector<BoundaryName> input_boundary_names;
28  std::vector<SubdomainName> input_subdomain_names;
30  bool refine_bdy = true;
31  bool verify_holes = true;
32  bool smooth_tri = false;
34  std::string desired_area_func;
35  bool use_auto_area_func = false;
40  std::vector<Point> interior_points;
41  std::string tri_elem_type = "DEFAULT"; // TRI3, TRI6, TRI7, or DEFAULT
42  std::vector<bool> stitch_holes;
43  std::vector<bool> refine_holes;
44  bool use_binary_search = true;
45  bool verbose_stitching = false;
49  SubdomainName output_subdomain_name;
50  bool has_output_boundary = false;
51  BoundaryName output_boundary;
52  std::vector<BoundaryName> hole_boundaries; // empty if not set
53  // Optional per-hole bid filters to help with MeshedHole construction.
54  // Used then a boundary layer is added to a hole. MeshedHole will auto-detect if this is empty.
55  std::vector<std::set<std::size_t>> hole_boundary_id_filters;
56  // Since we need to assign the innermost boundary of the hole boundary layer mesh, we need to have
57  // a record of its default bcid.
58  std::vector<std::set<BoundaryID>> hole_boundary_inner_id_defaults;
59 };
60 
72 std::unique_ptr<MeshBase>
74  std::unique_ptr<MeshBase> boundary_mesh,
75  std::vector<std::unique_ptr<MeshBase>> hole_meshes,
76  const XYDelaunayOptions & xyd_opts);
77 }
Bundle of inputs for triangulateWithDelaunay.
std::vector< BoundaryName > input_boundary_names
std::vector< SubdomainName > input_subdomain_names
std::vector< std::set< std::size_t > > hole_boundary_id_filters
std::unique_ptr< MeshBase > triangulateWithDelaunay(MeshGenerator &mg, std::unique_ptr< MeshBase > boundary_mesh, std::vector< std::unique_ptr< MeshBase >> hole_meshes, const XYDelaunayOptions &xyd_opts)
Performs a 2D Delaunay triangulation (via libMesh::Poly2TriTriangulator) inside a closed boundary mes...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< std::set< BoundaryID > > hole_boundary_inner_id_defaults
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:33