|
32 | 32 | #include "fem_standard_element.hpp" |
33 | 33 | #include "../wall_model.hpp" |
34 | 34 | #include "../linear_algebra/blas_structure.hpp" |
| 35 | +#include "../toolboxes/fem/CFaceOfElement.hpp" |
35 | 36 |
|
36 | 37 | using namespace std; |
37 | 38 |
|
38 | | -/*! |
39 | | - * \class CLong3T |
40 | | - * \brief Help class used to store three longs as one entity. |
41 | | - * \version 8.1.0 "Harrier" |
42 | | - */ |
43 | | -struct CLong3T { |
44 | | - long long0 = 0; /*!< \brief First long to store in this class. */ |
45 | | - long long1 = 0; /*!< \brief Second long to store in this class. */ |
46 | | - long long2 = 0; /*!< \brief Third long to store in this class. */ |
47 | | - |
48 | | - CLong3T() = default; |
49 | | - |
50 | | - CLong3T(const long a, const long b, const long c) { |
51 | | - long0 = a; |
52 | | - long1 = b; |
53 | | - long2 = c; |
54 | | - } |
55 | | - |
56 | | - bool operator<(const CLong3T& other) const; |
57 | | -}; |
58 | | - |
59 | | -/*! |
60 | | - * \class CReorderElements |
61 | | - * \brief Class, used to reorder the owned elements after the partitioning. |
62 | | - * \author E. van der Weide |
63 | | - * \version 8.1.0 "Harrier" |
64 | | - */ |
65 | | -class CReorderElements { |
66 | | - private: |
67 | | - unsigned long globalElemID; /*!< \brief Global element ID of the element. */ |
68 | | - unsigned short timeLevel; /*!< \brief Time level of the element. Only relevant |
69 | | - for time accurate local time stepping. */ |
70 | | - bool commSolution; /*!< \brief Whether or not the solution must be |
71 | | - communicated to other ranks. */ |
72 | | - unsigned short elemType; /*!< \brief Short hand for the element type, Which |
73 | | - stored info of the VTK_Type, polynomial |
74 | | - degree of the solution and whether or |
75 | | - not the Jacobian is constant. */ |
76 | | - public: |
77 | | - /*! |
78 | | - * \brief Constructor of the class, set the member variables to the arguments. |
79 | | - */ |
80 | | - CReorderElements(const unsigned long val_GlobalElemID, const unsigned short val_TimeLevel, |
81 | | - const bool val_CommSolution, const unsigned short val_VTK_Type, const unsigned short val_nPolySol, |
82 | | - const bool val_JacConstant); |
83 | | - |
84 | | - /*! |
85 | | - * \brief Default constructor of the class. Disabled. |
86 | | - */ |
87 | | - CReorderElements(void) = delete; |
88 | | - |
89 | | - /*! |
90 | | - * \brief Less than operator of the class. Needed for the sorting. |
91 | | - */ |
92 | | - bool operator<(const CReorderElements& other) const; |
93 | | - |
94 | | - /*! |
95 | | - * \brief Function to make available the variable commSolution. |
96 | | - * \return Whether or not the solution of the element must be communicated. |
97 | | - */ |
98 | | - inline bool GetCommSolution(void) const { return commSolution; } |
99 | | - |
100 | | - /*! |
101 | | - * \brief Function to make available the element type of the element. |
102 | | - * \return The value of elemType, which stores the VTK type, polynomial degree |
103 | | - and whether or not the Jacobian is constant. |
104 | | - */ |
105 | | - inline unsigned short GetElemType(void) const { return elemType; } |
106 | | - |
107 | | - /*! |
108 | | - * \brief Function to make available the global element ID. |
109 | | - * \return The global element ID of the element. |
110 | | - */ |
111 | | - inline unsigned long GetGlobalElemID(void) const { return globalElemID; } |
112 | | - |
113 | | - /*! |
114 | | - * \brief Function to make available the time level. |
115 | | - * \return The time level of the element. |
116 | | - */ |
117 | | - inline unsigned short GetTimeLevel(void) const { return timeLevel; } |
118 | | - |
119 | | - /*! |
120 | | - * \brief Function, which sets the value of commSolution. |
121 | | - * \param[in] val_CommSolution - value to which commSolution must be set. |
122 | | - */ |
123 | | - inline void SetCommSolution(const bool val_CommSolution) { commSolution = val_CommSolution; } |
124 | | -}; |
125 | | - |
126 | | -/*! |
127 | | - * \class CSortFaces |
128 | | - * \brief Functor, used for a different sorting of the faces than the < operator |
129 | | - * of CFaceOfElement. |
130 | | - * \author E. van der Weide |
131 | | - * \version 8.1.0 "Harrier" |
132 | | - */ |
133 | | -class CVolumeElementFEM; // Forward declaration to avoid problems. |
134 | | -class CSortFaces { |
135 | | - private: |
136 | | - unsigned long nVolElemOwned; /*!< \brief Number of locally owned volume elements. */ |
137 | | - unsigned long nVolElemTot; /*!< \brief Total number of local volume elements . */ |
138 | | - |
139 | | - const CVolumeElementFEM* volElem; /*!< \brief The locally stored volume elements. */ |
140 | | - |
141 | | - public: |
142 | | - /*! |
143 | | - * \brief Constructor of the class. Set the values of the member variables. |
144 | | - */ |
145 | | - CSortFaces(unsigned long val_nVolElemOwned, unsigned long val_nVolElemTot, const CVolumeElementFEM* val_volElem) { |
146 | | - nVolElemOwned = val_nVolElemOwned; |
147 | | - nVolElemTot = val_nVolElemTot; |
148 | | - volElem = val_volElem; |
149 | | - } |
150 | | - |
151 | | - /*! |
152 | | - * \brief Default constructor of the class. Disabled. |
153 | | - */ |
154 | | - CSortFaces(void) = delete; |
155 | | - |
156 | | - /*! |
157 | | - * \brief Operator used for the comparison. |
158 | | - * \param[in] f0 - First face in the comparison. |
159 | | - * \param[in] f1 - Second face in the comparison. |
160 | | - */ |
161 | | - bool operator()(const CFaceOfElement& f0, const CFaceOfElement& f1); |
162 | | -}; |
163 | | - |
164 | | -/*! |
165 | | - * \class CSortBoundaryFaces |
166 | | - * \brief Functor, used for a different sorting of the faces than the < operator |
167 | | - * of CSurfaceElementFEM. |
168 | | - * \author E. van der Weide |
169 | | - * \version 8.1.0 "Harrier" |
170 | | - */ |
171 | | -struct CSurfaceElementFEM; // Forward declaration to avoid problems. |
172 | | -struct CSortBoundaryFaces { |
173 | | - /*! |
174 | | - * \brief Operator used for the comparison. |
175 | | - * \param[in] f0 - First boundary face in the comparison. |
176 | | - * \param[in] f1 - Second boundary face in the comparison. |
177 | | - */ |
178 | | - bool operator()(const CSurfaceElementFEM& f0, const CSurfaceElementFEM& f1); |
179 | | -}; |
180 | | - |
181 | 39 | /*! |
182 | 40 | * \class CVolumeElementFEM |
183 | 41 | * \brief Class to store a volume element for the FEM solver. |
@@ -271,7 +129,7 @@ class CVolumeElementFEM { |
271 | 129 |
|
272 | 130 | /*! |
273 | 131 | * \class CPointFEM |
274 | | - * \brief Class to a point for the FEM solver. |
| 132 | + * \brief Class to store a point for the FEM solver. |
275 | 133 | * \author E. van der Weide |
276 | 134 | * \version 8.1.0 "Harrier" |
277 | 135 | */ |
|
0 commit comments