NEMoSys  0.63.0
A modular, extensible resource with robust automated mesh generation, mesh quality analysis, adaptive mesh refinement, and data transfer between arbitrary meshes.
PackMeshDriver.H
Go to the documentation of this file.
1 /*******************************************************************************
2 * Promesh *
3 * Copyright (C) 2022, IllinoisRocstar LLC. All rights reserved. *
4 * *
5 * Promesh is the property of IllinoisRocstar LLC. *
6 * *
7 * IllinoisRocstar LLC *
8 * Champaign, IL *
9 * www.illinoisrocstar.com *
10 * promesh@illinoisrocstar.com *
11 *******************************************************************************/
12 /*******************************************************************************
13 * This file is part of Promesh *
14 * *
15 * This version of Promesh is free software: you can redistribute it and/or *
16 * modify it under the terms of the GNU Lesser General Public License as *
17 * published by the Free Software Foundation, either version 3 of the License, *
18 * or (at your option) any later version. *
19 * *
20 * Promesh is distributed in the hope that it will be useful, but WITHOUT ANY *
21 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS *
22 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more *
23 * details. *
24 * *
25 * You should have received a copy of the GNU Lesser General Public License *
26 * along with this program. If not, see <https://www.gnu.org/licenses/>. *
27 * *
28 *******************************************************************************/
29 #ifndef NEMOSYS_PACKMESHDRIVER_H_
30 #define NEMOSYS_PACKMESHDRIVER_H_
31 
32 #include "Drivers/NemDriver.H"
33 
34 //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//
35 
36 namespace NEM {
37 namespace DRV {
38 
39 /**
40  @brief This class drives the flow of pack meshing by using parameters provided
41  by users. It supports two different meshing pipelines. First being hexahedral
42  conformal meshing and second is tetrahedral periodic as well as non-priodic
43  meshing.
44 
45  Tetrahedral periodic meshing pipeline operates within rocPack class and uses
46  Netgen mesh optimization for final mesh quality improvement if needed.
47  ## Pack Meshing Workflow for Tetrahedral Mesh
48  > * Geometry generation using RocPack output file.
49  > * Enforcing periodicity in geometry for periodic mesh
50  > * Mapping periodic surfaces and points with their counterparts.
51  > * Meshing the geometry tetrahedrally while enforcing periodic boundary
52  boundary conditions.
53  > * Exporting final mesh with or without optimization.
54 
55 **/
56 class NEMOSYS_EXPORT PackMeshDriver : public NemDriver {
57  JSONCONS_TYPE_TRAITS_FRIEND
58  protected:
59  PackMeshDriver() = default;
60 
61  private:
62  static constexpr const char *programType = "Pack Mesh Generation";
63  jsoncons::string_view getProgramType() const override;
64 };
65 
66 } // namespace DRV
67 } // namespace NEM
68 
69 #endif // NEMOSYS_PACKMESHDRIVER_H_
base class for drivers
Definition: NemDriver.H:46
This class drives the flow of pack meshing by using parameters provided by users. ...
static constexpr auto programType