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.
patran.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_PATRAN_H_
30 #define NEMOSYS_PATRAN_H_
31 
32 #include "nemosys_export.h"
33 #include "Mesh/meshBase.H"
34 
35 namespace PATRAN {
36 
37 class NEMOSYS_EXPORT patran
38 {
39  public:
40  patran(std::shared_ptr<meshBase> fullMesh,
41  const std::string &inFnameVtk,
42  const std::string &outFnameNeu,
43  const std::map<int, int> &faceTypeMap,
44  const std::map<int, int> &nodeTypeMap,
45  const std::map<int, bool> &nodeStructuralMap,
46  const std::map<int, bool> &nodeMeshMotionMap,
47  const std::map<int, bool> &nodeThermalMap,
48  const std::vector<int> &nppItr);
49 
50  public:
51  void write25(std::ofstream &outputStream) const;
52  void write26(std::ofstream &outputStream) const;
53  void write1(std::ofstream &outputStream) const;
54  void write2(std::ofstream &outputStream) const;
55  void write6(std::ofstream &outputStream);
56  void write8(std::ofstream &outputStream);
57  void write99(std::ofstream &outputStream) const;
58  bool comparePatch(int i, int j);
59 
60  private:
61  std::shared_ptr<meshBase> fullMesh;
62  std::string inFnameVtk;
63  std::string outFnameNeu;
64  std::shared_ptr<meshBase> volMeshBase;
65  std::shared_ptr<meshBase> surfMeshBase;
66  std::map<int, int> faceTypeMap;
67  std::map<int, int> nodeTypeMap;
68  std::map<int, bool> nodeStructuralMap;
69  std::map<int, bool> nodeMeshMotionMap;
70  std::map<int, bool> nodeThermalMap;
71  std::vector<int> nppVec;
72  std::map<int, std::string> face2nodes;
73  std::map<nemId_t, std::vector<int>> boundaryNodeId2PatchNo;
74 
75 };
76 
77 } // namespace PATRAN
78 
79 #endif // NEMOSYS_PATRAN_H_
std::string outFnameNeu
Definition: patran.H:63
std::shared_ptr< meshBase > surfMeshBase
Definition: patran.H:65
std::map< int, std::string > face2nodes
Definition: patran.H:72
std::vector< int > nppVec
Definition: patran.H:71
std::map< int, int > faceTypeMap
Definition: patran.H:66
std::string inFnameVtk
Definition: patran.H:62
std::map< int, bool > nodeStructuralMap
Definition: patran.H:68
std::map< int, bool > nodeMeshMotionMap
Definition: patran.H:69
std::map< int, int > nodeTypeMap
Definition: patran.H:67
Definition: patran.H:35
std::map< nemId_t, std::vector< int > > boundaryNodeId2PatchNo
Definition: patran.H:73
std::map< int, bool > nodeThermalMap
Definition: patran.H:70
std::shared_ptr< meshBase > volMeshBase
Definition: patran.H:64
std::shared_ptr< meshBase > fullMesh
Definition: patran.H:61