ug4
anisotropy_util.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2009-2015: G-CSC, Goethe University Frankfurt
3  * Author: Markus Breit
4  * Date: 2018-05-25
5  *
6  * This file is part of UG4.
7  *
8  * UG4 is free software: you can redistribute it and/or modify it under the
9  * terms of the GNU Lesser General Public License version 3 (as published by the
10  * Free Software Foundation) with the following additional attribution
11  * requirements (according to LGPL/GPL v3 §7):
12  *
13  * (1) The following notice must be displayed in the Appropriate Legal Notices
14  * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
15  *
16  * (2) The following notice must be displayed at a prominent place in the
17  * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
18  *
19  * (3) The following bibliography is recommended for citation and must be
20  * preserved in all covered files:
21  * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
22  * parallel geometric multigrid solver on hierarchically distributed grids.
23  * Computing and visualization in science 16, 4 (2013), 151-164"
24  * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
25  * flexible software system for simulating pde based models on high performance
26  * computers. Computing and visualization in science 16, 4 (2013), 165-179"
27  *
28  * This program is distributed in the hope that it will be useful,
29  * but WITHOUT ANY WARRANTY; without even the implied warranty of
30  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31  * GNU Lesser General Public License for more details.
32  */
33 
34 #ifndef LIB_GRID__ALGORITHMS__GEOM_OBJ_UTIL__ANISOTROPY_UTIL_H
35 #define LIB_GRID__ALGORITHMS__GEOM_OBJ_UTIL__ANISOTROPY_UTIL_H
36 
37 #include "common/types.h"
39 #include "lib_grid/multi_grid.h"
40 
41 #include <cstddef>
42 #include <vector>
43 
44 namespace ug {
45 
46 
48 {
49  ISOTROPIC = 0,
60 };
61 
62 
63 template <typename TAAPos>
65 (
66  Edge* elem,
67  const TAAPos& aaPos,
68  number thresholdRatio
69 );
70 
71 
72 template <typename TAAPos>
74 (
75  Face* elem,
76  const TAAPos& aaPos,
77  number thresholdRatio
78 );
79 
80 
81 template <typename TAAPos>
83 (
84  Volume* elem,
85  const TAAPos& aaPos,
86  number thresholdRatio
87 );
88 
89 
90 
91 template <typename TAAPos>
93 (
94  Edge* elem,
95  Grid& grid,
96  const TAAPos& aaPos,
97  number thresholdRatio,
98  std::vector<Vertex*>& sidesOut
99 );
100 
101 
102 template <typename TAAPos>
104 (
105  Face* elem,
106  Grid& grid,
107  const TAAPos& aaPos,
108  number thresholdRatio,
109  std::vector<Edge*>& sidesOut
110 );
111 
112 
113 template <typename TAAPos>
115 (
116  Volume* elem,
117  Grid& grid,
118  const TAAPos& aaPos,
119  number thresholdRatio,
120  std::vector<Face*>& sidesOut
121 );
122 
123 
124 
125 template <typename TAAPos>
127 (
128  Edge* elem,
129  Grid& grid,
130  const TAAPos& aaPos,
131  number thresholdRatio,
132  std::vector<Edge*>& longEdges
133 );
134 
135 
136 template <typename TAAPos>
138 (
139  Face* elem,
140  Grid& grid,
141  const TAAPos& aaPos,
142  number thresholdRatio,
143  std::vector<Edge*>& longEdges
144 );
145 
146 
147 template <typename TAAPos>
149 (
150  Volume* elem,
151  Grid& grid,
152  const TAAPos& aaPos,
153  number thresholdRatio,
154  std::vector<Edge*>& longEdges
155 );
156 
157 
158 
159 } // namespace ug
160 
161 #include "anisotropy_util_impl.h"
162 
163 #endif // LIB_GRID__ALGORITHMS__GEOM_OBJ_UTIL__ANISOTROPY_UTIL_H
double number
Definition: types.h:124
the ug namespace
AnisotropyState is_anisotropic(Edge *elem, const TAAPos &aaPos, number thresholdRatio)
Definition: anisotropy_util_impl.h:43
AnisotropyState
Definition: anisotropy_util.h:48
@ HEX_SHORTY
Definition: anisotropy_util.h:55
@ QUAD_SHORTX
Definition: anisotropy_util.h:50
@ HEX_SHORTXZ
Definition: anisotropy_util.h:58
@ QUAD_SHORTY
Definition: anisotropy_util.h:51
@ HEX_SHORTX
Definition: anisotropy_util.h:54
@ PRISM_LONG
Definition: anisotropy_util.h:53
@ HEX_SHORTXY
Definition: anisotropy_util.h:57
@ PRISM_FLAT
Definition: anisotropy_util.h:52
@ HEX_SHORTYZ
Definition: anisotropy_util.h:59
@ ISOTROPIC
Definition: anisotropy_util.h:49
@ HEX_SHORTZ
Definition: anisotropy_util.h:56
AnisotropyState long_edges_of_anisotropic_elem(Edge *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Edge * > &longEdges)
Definition: anisotropy_util_impl.h:381
AnisotropyState close_sides_of_anisotropic_elem(Edge *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Vertex * > &sidesOut)
Definition: anisotropy_util_impl.h:215