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