https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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;
33 Real desired_area = 0;
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
72std::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}
MeshGenerators are objects that can modify or add to an existing mesh.
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...
Bundle of inputs for triangulateWithDelaunay.
std::vector< SubdomainName > input_subdomain_names
std::vector< std::set< std::size_t > > hole_boundary_id_filters
std::vector< std::set< BoundaryID > > hole_boundary_inner_id_defaults