ug4
file_io_tetgen.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2009-2015: G-CSC, Goethe University Frankfurt
3  * Author: Sebastian Reiter
4  *
5  * This file is part of UG4.
6  *
7  * UG4 is free software: you can redistribute it and/or modify it under the
8  * terms of the GNU Lesser General Public License version 3 (as published by the
9  * Free Software Foundation) with the following additional attribution
10  * requirements (according to LGPL/GPL v3 §7):
11  *
12  * (1) The following notice must be displayed in the Appropriate Legal Notices
13  * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14  *
15  * (2) The following notice must be displayed at a prominent place in the
16  * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17  *
18  * (3) The following bibliography is recommended for citation and must be
19  * preserved in all covered files:
20  * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21  * parallel geometric multigrid solver on hierarchically distributed grids.
22  * Computing and visualization in science 16, 4 (2013), 151-164"
23  * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24  * flexible software system for simulating pde based models on high performance
25  * computers. Computing and visualization in science 16, 4 (2013), 165-179"
26  *
27  * This program is distributed in the hope that it will be useful,
28  * but WITHOUT ANY WARRANTY; without even the implied warranty of
29  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30  * GNU Lesser General Public License for more details.
31  */
32 
33 #ifndef __H__LIBGRID__FILE_IO_TETGEN__
34 #define __H__LIBGRID__FILE_IO_TETGEN__
35 
36 #include <vector>
37 #include "../grid/grid.h"
38 #include "../subset_handler.h"
39 #include "../common_attachments.h"
40 
41 namespace ug
42 {
43 
44 bool LoadGridFromELE(Grid& grid, const char* filename, ISubsetHandler* pSH = NULL,
45  APosition& aPos = aPosition);
46 
47 bool SaveGridToELE(Grid& grid, const char* filename, ISubsetHandler* pSH = NULL,
48  APosition& aPos = aPosition,
49  ANumber* paVolumeConstraint = NULL);
50 
51 
52 bool ImportGridFromTETGEN(Grid& grid,
53  const char* nodesFilename, const char* facesFilename,
54  const char* elemsFilename, AVector3& aPos,
55  std::vector<AFloat>* pvNodeAttributes = NULL,
56  AInt* paNodeBoundaryMarker = NULL,
57  AInt* paFaceBoundaryMarker = NULL,
58  AInt* paElementAttribute = NULL);
59 
60 bool ImportGridFromTETGEN(Grid& grid,
61  const char* nodesFilename, const char* facesFilename,
62  const char* elemsFilename, AVector3& aPos,
63  ISubsetHandler* psh = NULL,
64  std::vector<AFloat>* pvNodeAttributes = NULL);
65 
67 // ExportGridToSMESH
69 
88 bool ExportGridToSMESH(Grid& grid, const char* filename, AVector3& aPos,
89  std::vector<AFloat>* pvNodeAttributes = NULL,
90  AInt* paNodeBoundaryMarker = NULL,
91  AInt* paFaceBoundaryMarker = NULL,
92  std::vector<vector3>* pvHoles = NULL,
93  std::vector<vector3>* pvRegionPositions = NULL,
94  std::vector<int>* pvRegionAttributes = NULL,
95  std::vector<float>* pvRegionVolumeConstraints = NULL);
96 
98 // ExportGridToSMESH
100 
118 bool ExportGridToSMESH(Grid& grid, const char* filename, AVector3& aPos,
119  ISubsetHandler* psh = NULL,
120  std::vector<AFloat>* pvNodeAttributes = NULL,
121  std::vector<vector3>* pvHoles = NULL,
122  std::vector<vector3>* pvRegionPositions = NULL,
123  std::vector<int>* pvRegionAttributes = NULL,
124  std::vector<float>* pvRegionVolumeConstraints = NULL);
125 
126 bool LoadGridFromSMESH(Grid& grid, const char* filename, AVector3& aPos,
127  ISubsetHandler* psh = NULL);
128 
129 bool ExportGridToTETGEN(Grid& grid, const char* filename,
130  AVector3& aPos, std::vector<AFloat>* pvNodeAttributes = NULL,
131  AInt* paNodeBoundaryMarker = NULL,
132  AInt* paFaceBoundaryMarker = NULL,
133  AInt* paElementAttribute = NULL,
134  ANumber* paVolumeConstraint = NULL);
135 
136 }// end of namespace
137 
138 #endif
the ug namespace
bool LoadGridFromSMESH(Grid &grid, const char *filename, AVector3 &aPos, ISubsetHandler *psh)
Definition: file_io_tetgen.cpp:788
bool ImportGridFromTETGEN(Grid &grid, const char *nodesFilename, const char *facesFilename, const char *elemsFilename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes, AInt *paNodeBoundaryMarker, AInt *paFaceBoundaryMarker, AInt *paElementAttribute)
Definition: file_io_tetgen.cpp:109
Attachment< int > AInt
Definition: common_attachments.h:55
bool ExportGridToTETGEN(Grid &grid, const char *filename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes, AInt *paNodeBoundaryMarker, AInt *paFaceBoundaryMarker, AInt *paElementAttribute, ANumber *paVolumeConstraint)
Definition: file_io_tetgen.cpp:924
APosition3 APosition
Definition: common_attachments.h:76
bool SaveGridToELE(Grid &grid, const char *filename, ISubsetHandler *pSH, APosition &aPos, ANumber *paVolumeConstraint)
Definition: file_io_tetgen.cpp:68
APosition aPosition("position", true)
The standard 3d position type.
Definition: common_attachments.h:84
bool LoadGridFromELE(Grid &grid, const char *filename, ISubsetHandler *pSH, APosition &aPos)
Definition: file_io_tetgen.cpp:44
Attachment< number > ANumber
Definition: common_attachments.h:57
bool ExportGridToSMESH(Grid &grid, const char *filename, AVector3 &aPos, std::vector< AFloat > *pvNodeAttributes, AInt *paNodeBoundaryMarker, AInt *paFaceBoundaryMarker, std::vector< vector3 > *pvHoles, std::vector< vector3 > *pvRegionPositions, std::vector< int > *pvRegionAttributes, std::vector< float > *pvRegionVolumeConstraints)
writes an SMESH file.
Definition: file_io_tetgen.cpp:453
Attachment< vector3 > AVector3
Definition: common_attachments.h:62