https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CoarsenSurfaceMeshAlongSidesetGenerator.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
20{
21public:
23
25
26 std::unique_ptr<MeshBase> generate() override;
27
28protected:
34 unsigned int coarsenAlongSidesets(std::unique_ptr<MeshBase> & mesh,
35 const std::set<boundary_id_type> & boundary_id_set);
36
38 std::unique_ptr<MeshBase> & _input;
39
41 const std::vector<BoundaryName> _boundaries;
42
44 const std::vector<BoundaryName> _exclude_boundaries;
45
50
55
60
63
65 const bool _verbose;
66};
MeshGenerator that coarsens a 2D-element (TRI3/QUAD4) surface mesh along a sideset by collapsing alte...
const bool _has_max_element_area
Whether a maximum merged element area is enforced.
const bool _verbose
Whether the mesh generator should be verbose to the console.
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
const bool _coarsen_more_than_two_elements
Whether to repeat the coarsening pass so that more than two elements can be merged together.
const std::vector< BoundaryName > _exclude_boundaries
Sideset(s) to exclude when coarsening along all the sidesets of the mesh.
const std::vector< BoundaryName > _boundaries
Sideset(s) to coarsen the mesh along.
const bool _has_max_normal_deviation
Whether a maximum normal deviation between merged elements is enforced.
const Real _max_merged_element_area
Maximum area of an element created by merging two elements.
const bool _has_max_side_length
Whether a maximum merged side length is enforced.
const Real _max_normal_deviation
Maximum angle (degrees) between the normals of the two elements merged together.
unsigned int coarsenAlongSidesets(std::unique_ptr< MeshBase > &mesh, const std::set< boundary_id_type > &boundary_id_set)
Performs a single coarsening pass: collapse non-adjacent sideset nodes, merging pairs of elements.
std::unique_ptr< MeshBase > & _input
Input mesh to coarsen.
const Real _max_merged_side_length
Maximum length of the side created by merging two elements.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
MeshGenerators are objects that can modify or add to an existing mesh.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
MeshBase & mesh