https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MeshRepairGenerator.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#include "MooseEnum.h"
14
19{
20public:
22
24
25 std::unique_ptr<MeshBase> generate() override;
26
27private:
29 std::unique_ptr<MeshBase> & _input;
30
35
38
41
44
47
50 void removeSmallVolumeElements(std::unique_ptr<MeshBase> & mesh) const;
51
54 void fixOverlappingNodes(std::unique_ptr<MeshBase> & mesh) const;
55
59 void separateSubdomainsByElementType(std::unique_ptr<MeshBase> & mesh) const;
60
63 void splitNonConvexPolygons(std::unique_ptr<MeshBase> & mesh) const;
64};
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.
Mesh generator to perform various improvement / fixing operations on an input mesh.
const bool _fix_element_orientation
whether to flip element orientation such that they no longer have a negative volume
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
const Real _node_overlap_tol
tolerance for merging overlapping nodes
std::unique_ptr< MeshBase > & _input
the input mesh
void separateSubdomainsByElementType(std::unique_ptr< MeshBase > &mesh) const
Separate subdomain by element type because some output format (Exodus) do not support mixed element t...
const bool _elem_type_separation
whether to split subdomains using each element's type
void removeSmallVolumeElements(std::unique_ptr< MeshBase > &mesh) const
Removes the elements with an volume value below the user threshold.
void splitNonConvexPolygons(std::unique_ptr< MeshBase > &mesh) const
Splits non-convex polygonal elements to keep only convex elements.
static InputParameters validParams()
void fixOverlappingNodes(std::unique_ptr< MeshBase > &mesh) const
Removes nodes that overlap.
const bool _boundary_id_merge
Whether to merge boundaries with the same name but different ID.
const bool _fix_overlapping_nodes
fixing mesh by deleting overlapping nodes
const bool _split_nonconvex_polygons
Whether to split non-convex polygons.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131