https://mooseframework.inl.gov
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 {
20 public:
22 
24 
25  std::unique_ptr<MeshBase> generate() override;
26 
27 private:
29  std::unique_ptr<MeshBase> & _input;
30 
35 
38 
41 
43  const bool _boundary_id_merge;
44 
47  void removeSmallVolumeElements(std::unique_ptr<MeshBase> & mesh) const;
48 
51  void fixOverlappingNodes(std::unique_ptr<MeshBase> & mesh) const;
52 
56  void separateSubdomainsByElementType(std::unique_ptr<MeshBase> & mesh) const;
57 };
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
Mesh generator to perform various improvement / fixing operations on an input mesh.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
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.
void removeSmallVolumeElements(std::unique_ptr< MeshBase > &mesh) const
Removes the elements with an volume value below the user threshold.
const bool _elem_type_separation
whether to split subdomains using each element&#39;s type
const bool _fix_overlapping_nodes
fixing mesh by deleting overlapping nodes
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 _fix_element_orientation
whether to flip element orientation such that they no longer have a negative volume ...
std::unique_ptr< MeshBase > & _input
the input mesh
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real _node_overlap_tol
tolerance for merging overlapping nodes
const InputParameters & parameters() const
Get the parameters of the object.
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:32
MeshRepairGenerator(const InputParameters &parameters)
static InputParameters validParams()