G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsForwardDeclarations.h
Go to the documentation of this file.
1 
14 #pragma once
15 
16 // STD includes
17 #include <vector>
18 #include <iterator>
19 #include <set>
20 #include <map>
21 #include <stack>
22 #include <algorithm>
23 #include <functional>
24 #include <limits>
25 
26 #include <gsCore/gsConfig.h>
27 #include <gsCore/gsDebug.h>
28 //#include <gsCore/gsExport.h> // included by gsMemory.h
29 #include <gsCore/gsMemory.h>
30 #include <gsUtils/gsUtils.h>
31 
32 #ifdef gsMpfr_ENABLED
33 #undef real_t
34 #define real_t real_t_mpreal
35 #include <mpreal.h>
36 #undef real_t
37 #define real_t GISMO_COEFF_TYPE
38 #endif
39 
40 #ifdef gsGmp_ENABLED
41 #include <gmpxx.h>
42 #include <unsupported/Eigen/MPQClassExtra>
43 #endif
44 
45 #ifdef gsUniversal_ENABLED
46 #include <gsUniversal/gsUniversal.h>
47 #endif
48 
49 #ifdef gsCoDiPack_ENABLED
50 #include <gsCoDiPack/gsCoDiPack.h>
51 #endif
52 
53 #ifdef GISMO_WITH_PYBIND11
54 #include <pybind11/iostream.h>
55 #include <pybind11/operators.h>
56 #include <pybind11/pybind11.h>
57 #include <pybind11/stl.h>
58 #endif
59 
60 namespace gismo
61 {
62 
71 {
72  NEED_VALUE = 1U << 0,
73  NEED_DERIV = 1U << 1,
74  NEED_GRAD = NEED_DERIV,
76  NEED_MEASURE = 1U << 3,
77  NEED_GRAD_TRANSFORM = 1U << 4,
78  NEED_DIV = 1U << 5,
79  NEED_CURL = 1U << 6,
80  NEED_DERIV2 = 1U << 7,
81  NEED_2ND_DER = NEED_DERIV2,
83  NEED_LAPLACIAN = 1U << 9,
84  NEED_ACTIVE = 1U <<10,
85  NEED_NORMAL = 1U <<11,
86  NEED_OUTER_NORMAL = 1U <<12,
87  NEED_2ND_FFORM = 1U <<13,
88 
89  SAME_ELEMENT = 1U <<15
90 };
91 
96 
98 // exclude from Doxygen processing
100 
101 //Core objects
102 template <class T=real_t> class gsBasis;
103 template <class T=real_t> class gsGeometry;
104 template <class T=real_t> class gsGeometrySlice;
105 template <short_t d, class T=real_t> class gsGenericGeometry;
106 template <class T=real_t> class gsConstantBasis;
107 template <class T=real_t> class gsBasisFun;
108 
109 class gsBoxTopology;
110 class boxSide;
111 struct patchSide;
112 struct boxCorner;
113 struct patchCorner;
114 struct boxComponent;
115 struct patchComponent;
116 struct boundaryInterface;
117 
118 template <class T=real_t> class gsCurve;
119 template <class T=real_t> class gsSurface;
120 template <class T=real_t> class gsVolume;
121 template <class T=real_t> class gsBulk;
122 
123 template <class T=real_t> class gsDomainIterator;
124 
125 template <class T = real_t, int D=-1> class gsTensorDomainIterator;
126 
127 template <class T, int D=-1, class uiter=typename std::vector<T>::const_iterator>
128  class gsTensorDomainBoundaryIterator;
129 
130 template <class T=real_t> class gsDomain;
131 template <class T=real_t> class gsFunctionSet;
132 template <class T=real_t> class gsFunction;
133 template <class T=real_t> class gsFuncCoordinate;
134 template <class T=real_t> class gsFuncData;
135 template <class T=real_t> class gsMapData;
136 template <class T=real_t> class gsFunctionExpr;
137 template <class T=real_t> class gsPiecewiseFunction;
138 template <class T=real_t> class gsConstantFunction;
139 template <class T=real_t> class gsAffineFunction;
140 template <class T=real_t> class gsMultiPatch;
141 
142 // Bases
143 template <class basis_t > class gsRationalBasis;
144 template <short_t d, class T=real_t> class gsTensorBasis;
145 template <short_t d, class T=real_t> class gsHTensorBasis;
146 template <short_t d, class T=real_t> class gsMappedBasis;
147 
148 template <class T=real_t> class gsKnotVector;
149 //template <class T=real_t> class gsCompactKnotVector;
150 template <class T=real_t> class gsBSplineBasis;
151 template <class T=real_t> class gsNurbsBasis;
152 template <short_t d, class T=real_t> class gsTensorBSplineBasis;
153 template <short_t d, class T=real_t> class gsTensorNurbsBasis;
154 template <short_t d, class T=real_t> struct gsBSplineTraits;
155 
156 template <short_t d, class T=real_t> class gsCompositeIncrSmoothnessBasis;
157 template <short_t d, class T=real_t> class gsCompositeGeom;
158 
159 template <class T=real_t> class gsBernsteinBasis;
160 template <short_t d, class T=real_t> class gsTensorBernsteinBasis;
161 
162 //template <class T=real_t> class gsHKnotVector;
163 template <short_t d, class T=real_t> class gsHBSplineBasis;
164 template <short_t d, class T=real_t> class gsTHBSplineBasis;
165 template <short_t d, class T=real_t> class gsTHBSpline;
166 
167 // Geometries
168 template <class T=real_t> class gsBSpline;
169 template <class T=real_t> class gsNurbs;
170 template <class T=real_t> class gsBezier;
171 template <short_t d, class T=real_t> class gsTensorBSpline;
172 template <short_t d, class T=real_t> class gsTensorNurbs;
173 template <short_t d, class T=real_t> class gsTensorBezier;
174 template <short_t d, class T=real_t> class gsHBSpline;
175 template <class T=real_t> class gsTrimSurface;
176 template <short_t d, class T=real_t> class gsMappedSpline;
177 
178 // Quadrature rules
179 template <class T=real_t> class gsQuadRule;
180 template <class T=real_t> class gsGaussRule;
181 template <class T=real_t> class gsNewtonCotesRule;
182 template <class T=real_t> class gsGalerkinMethod;
183 
184 // Domains
185 // template <class T=real_t> class gsTensorDomain;
186 template <short_t d, class T=real_t> class gsHFitting;
187 
188 template <class Z, int mode, short_t d=-1,
189  bool = //std::is_integral<Z>::value>
190  std::numeric_limits<Z>::is_integer && mode!=3>
191  class gsGridIterator;
192 
193 
194 // Pde
195 template <class T=real_t> class gsPde;
196 template <class T=real_t> class gsPoissonPde;
197 template <class T=real_t> class gsConvDiffRePde;
198 
199 template <class T=real_t> class gsAssembler;
200 template <class T=real_t> class gsStokesAssembler;
201 template <class T=real_t> class gsGenericAssembler;
202 template <class T=real_t> class gsPoissonAssembler;
203 template <class T=real_t> class gsCDRAssembler;
204 template <class T=real_t> class gsSolverUtils;
205 template <class T=real_t, bool symm=false> class gsSparseSystem;
206 
207 template <class T=real_t> class gsExprAssembler;
208 template <class T=real_t> class gsExprEvaluator;
209 
210 // More
211 template <class T=real_t> class gsCurveLoop;
212 template <class T=real_t> class gsPlanarDomain;
213 template <class T=real_t> class gsField;
214 template <class T=real_t> class gsMesh;
215 template <class T=real_t> class gsHeMesh;
216 
217 template <int d, class T=real_t> class gsLineSegment;
218 
219 template <class T=real_t> class gsFileData;
220 class gsFileManager;
221 
222 template <class T=real_t> class gsSolid;
223 template <class T=real_t> class gsSolidVertex;
224 template <class T=real_t> class gsSolidHeVertex;
225 template <class T=real_t> class gsVolumeBlock;
226 template <class T=real_t> class gsSolidHalfEdge;
227 template <class T=real_t> class gsSolidHalfFace;
228 template <class T=real_t> class gsTriMeshToSolid;
229 
230 template <class T=real_t> class gsOptParameterization;
231 template <class T=real_t> class gsQualityMeasure;
232 template <class T=real_t> class gsCuttingLoop;
233 template <class T=real_t> class gsInterpOption;
234 template <class T=real_t> class gsMVInterpolation;
235 template <class T=real_t> class gsVolumeSegment;
236 template <class T=real_t> class gsCompositeTopology;
237 template <class T=real_t> class gsBasisEvaluator;
238 template <class T=real_t> class gsMultiBasis;
239 
240 template <class T=real_t> class gsBemLaplace;
241 template <class T=real_t> class gsBemSolution;
242 
243 template <class T=real_t> class gsBoundaryConditions;
244 
245 
246 template <class T=real_t> class gsVertex;
247 template <class T=real_t> class gsCell;
248 template <class T=real_t> class gsFace;
249 template <class T=real_t> class gsEdge;
250 
251 template <class T=real_t> class gsHeVertex;
252 template <class T=real_t> class gsHalfFace;
253 template <class T=real_t> class gsHalfEdge;
254 template <class T=real_t> class gsMeshElement;
255 template <class T=real_t> class gsCurvatureSmoothing;
256 template <class T=real_t> class gsFitting;
257 
258 
259 template <class T=real_t> class gsCurveFitting;
260 
261 template <class T=real_t> struct gsNurbsCreator;
262 
263 template <class T=real_t> struct gsFieldCreator;
264 
265 class gsOptionList;
266 
267 template<class T = real_t, int _Rows=-1, int _Cols=-1,
268  int _Options = 0|((_Rows==1 && _Cols!=1)?0x1:0)> class gsMatrix;
269 template<class T = real_t, int _Rows=-1, int _Options = 0> class gsVector;
270 
271 template<class T= real_t, int _Rows=-1, int _Cols=-1> class gsAsConstMatrix;
272 template<class T= real_t, int _Rows=-1, int _Cols=-1> class gsAsMatrix;
273 
274 template<class T= real_t, int _Rows=-1> class gsAsVector;
275 template<class T= real_t, int _Rows=-1> class gsAsConstVector;
276 
277 template<class T = real_t> class gsVector3d;
278 
279 template<typename T=real_t, int _Options=0, typename _Index = index_t>
280 class gsSparseMatrix;
281 
282 template<typename T=real_t, int _Options=0, typename _Index = index_t>
283 class gsSparseVector;
284 
285 template <class T=real_t> class gsSparseEntries;
286 
287 // gsSolver
288 
289 template <class T=real_t> class gsLinearOperator;
290 template <class T=real_t> class gsScaledOp;
291 template <class T=real_t> class gsIdentityOp;
292 
293 template <class T=real_t> class gsPreconditionerOp;
294 template <class T=real_t> class gsPreconditionerFromOp;
295 
296 template <class T=real_t> class gsAdditiveOp;
297 template <class T=real_t> class gsSumOp;
298 template <class T=real_t> class gsProductOp;
299 template <class T=real_t> class gsCompositePrecOp;
300 template <class T=real_t> class gsKroneckerOp;
301 template <class T=real_t> class gsBlockOp;
302 template <class T=real_t> class gsPatchPreconditionersCreator;
303 
304 // gsMultiGrid
305 
306 template <class T=real_t> class gsMultiGridOp;
307 template <class T=real_t> class gsGridHierarchy;
308 
309 // gsIeti
310 
311 template <class T=real_t> class gsIetiMapper;
312 template <class T=real_t> class gsIetiSystem;
313 template <class T=real_t> class gsPrimalSystem;
314 template <class T=real_t> class gsScaledDirichletPrec;
315 
316 template <short_t d, class T=real_t> struct gsHBoxUtils;
317 template <short_t d, class T=real_t> struct gsHBoxContains;
318 template <short_t d, class T=real_t> struct gsHBoxIsContained;
319 template <short_t d, class T=real_t> struct gsHBoxCompare;
320 template <short_t d, class T=real_t> struct gsHBoxEqual;
321 
322 template <short_t d, class T=real_t> class gsHBox;
323 template <short_t d, class T=real_t> class gsHBoxContainer;
324 
325 class gsParaviewDataSet;
326 class gsSurfMesh;
327 
328 // gsIO
329 
330 template<class T>
331 void gsWriteParaviewTPgrid(gsMatrix<T> const& points,
332  gsMatrix<T> const& data,
333  const gsVector<index_t> & np,
334  std::string const & fn);
335 
336 template <class T>
337 void gsWriteParaview(gsMesh<T> const& sl, std::string const & fn, bool pvd = true);
338 
339 
340 
342 
344 
345 } // end namespace gismo
Div operator.
Definition: gsForwardDeclarations.h:78
Gradient of the object.
Definition: gsForwardDeclarations.h:73
#define short_t
Definition: gsConfig.h:35
Outward normal on the boundary.
Definition: gsForwardDeclarations.h:86
Second derivatives.
Definition: gsForwardDeclarations.h:80
Provides utility function related to memory management.
This file contains the debugging and messaging system of G+Smo.
Provides preprocessor directives configuration of G+Smo.
Laplacian.
Definition: gsForwardDeclarations.h:83
gsNeedEnum
Enumeration flags which define the needs of an evaluation object.
Definition: gsForwardDeclarations.h:70
Normal vector of the object.
Definition: gsForwardDeclarations.h:85
Hessian matrix.
Definition: gsForwardDeclarations.h:82
Active function ids.
Definition: gsForwardDeclarations.h:84
Curl operator.
Definition: gsForwardDeclarations.h:79
Second fundamental form.
Definition: gsForwardDeclarations.h:87
Header for CoDiPack package.
The density of the measure pull back.
Definition: gsForwardDeclarations.h:76
Enable optimizations based on the assumption that all evaluation points are in the same bezier domain...
Definition: gsForwardDeclarations.h:89
Jacobian of the object.
Definition: gsForwardDeclarations.h:75
Value of the object.
Definition: gsForwardDeclarations.h:72
Several utility functions for miscellaneous tasks.
Gradient transformation matrix.
Definition: gsForwardDeclarations.h:77