23template <
class T,
int MatOrder>
34 using Base::m_patchID;
35 using Base::m_testUnkID;
36 using Base::m_shapeUnkID;
37 using Base::m_dofMappers;
38 using Base::m_testFunActives;
39 using Base::m_shapeFunActives;
40 using Base::m_localMat;
52 virtual void defineTestShapeUnknowns()
66template <
class T,
int MatOrder>
67class gsINSVisitorUUlin :
public gsINSVisitorUU<T, MatOrder>
71 typedef gsINSVisitorUU<T, MatOrder> Base;
82 gsINSVisitorUUlin() {}
91 virtual void defineTerms()
105template <
class T,
int MatOrder>
106class gsINSVisitorUUnonlin :
public gsINSVisitorUU<T, MatOrder>
110 typedef gsINSVisitorUU<T, MatOrder> Base;
115 using Base::m_params;
121 gsINSVisitorUUnonlin() {}
129 virtual void defineTerms()
140template <
class T,
int MatOrder>
141class gsINSVisitorUUmass :
public gsINSVisitorUU<T, MatOrder>
145 typedef gsINSVisitorUU<T, MatOrder> Base;
150 using Base::m_params;
156 gsINSVisitorUUmass() {}
165 virtual void defineTerms()
174template <
class T,
int MatOrder>
175class gsINSVisitorUUtimeDiscr :
public gsINSVisitorUU<T, MatOrder>
179 typedef gsINSVisitorUU<T, MatOrder> Base;
184 using Base::m_params;
190 gsINSVisitorUUtimeDiscr() {}
199 virtual void defineTerms()
211template <
class T,
int MatOrder>
212class gsINSVisitorPU :
public gsFlowVisitorVectorValued<T, MatOrder>
216 typedef gsFlowVisitorVectorValued<T, MatOrder> Base;
221 using Base::m_locMatVec;
222 using Base::m_params;
223 using Base::m_patchID;
224 using Base::m_testUnkID;
225 using Base::m_shapeUnkID;
226 using Base::m_dofMappers;
227 using Base::m_testFunActives;
228 using Base::m_shapeFunActives;
241 virtual void defineTerms()
246 virtual void defineTestShapeUnknowns()
260template <
class T,
int MatOrder>
261class gsINSVisitorPU_withUPrhs :
public gsINSVisitorPU<T, MatOrder>
265 typedef gsINSVisitorPU<T, MatOrder> Base;
270 using Base::m_locMatVec;
271 using Base::m_params;
272 using Base::m_patchID;
273 using Base::m_testUnkID;
274 using Base::m_shapeUnkID;
275 using Base::m_dofMappers;
276 using Base::m_testFunActives;
277 using Base::m_shapeFunActives;
281 gsINSVisitorPU_withUPrhs() {}
297template <
class T,
int MatOrder>
298class gsINSVisitorUP :
public gsFlowVisitorVectorValued<T, MatOrder>
302 typedef gsFlowVisitorVectorValued<T, MatOrder> Base;
307 using Base::m_locMatVec;
308 using Base::m_params;
309 using Base::m_patchID;
310 using Base::m_testUnkID;
311 using Base::m_shapeUnkID;
312 using Base::m_dofMappers;
313 using Base::m_testFunActives;
314 using Base::m_shapeFunActives;
327 virtual void defineTerms()
332 virtual void defineTestShapeUnknowns()
348template <
class T,
int MatOrder>
358 using Base::m_params;
359 using Base::m_patchID;
360 using Base::m_testUnkID;
361 using Base::m_shapeUnkID;
362 using Base::m_dofMappers;
363 using Base::m_testFunActives;
364 using Base::m_shapeFunActives;
365 using Base::m_localMat;
378 virtual void defineTestShapeUnknowns()
460template <
class T,
int MatOrder>
461class gsINSVisitorPPmass :
public gsINSVisitorPP<T, MatOrder>
465 typedef gsINSVisitorPP<T, MatOrder> Base;
470 using Base::m_params;
476 gsINSVisitorPPmass() {}
484 virtual void defineTerms()
493template <
class T,
int MatOrder>
494class gsINSVisitorPPlaplace :
public gsINSVisitorPP<T, MatOrder>
498 typedef gsINSVisitorPP<T, MatOrder> Base;
503 using Base::m_params;
509 gsINSVisitorPPlaplace() {}
517 virtual void defineTerms()
526template <
class T,
int MatOrder>
527class gsINSVisitorPPconvection :
public gsINSVisitorPP<T, MatOrder>
531 typedef gsINSVisitorPP<T, MatOrder> Base;
535 using Base::m_params;
541 gsINSVisitorPPconvection() {}
549 virtual void defineTerms()
593template <
class T,
int MatOrder>
608 using Base::m_params;
610 using Base::m_patchID;
611 using Base::m_testUnkID;
612 using Base::m_shapeUnkID;
613 using Base::m_dofMappers;
614 using Base::m_testFunActives;
615 using Base::m_localMat;
616 using Base::m_mapData;
617 using Base::m_quWeights;
618 using Base::m_testFunData;
619 using Base::m_shapeFunData;
624 gsINSVisitorRhsU() {}
627 Base(params), m_pRhsFun(params.getPde().force())
629 GISMO_ASSERT(m_pRhsFun->
targetDim() == m_params.getPde().dim(),
"Wrong RHS function passed into gsINSRhsU.");
635 virtual void defineTestShapeUnknowns()
641 virtual void defineTerms()
648 virtual void assemble();
656template <
class T,
int MatOrder>
671 using Base::m_params;
673 using Base::m_patchID;
674 using Base::m_testUnkID;
675 using Base::m_shapeUnkID;
676 using Base::m_dofMappers;
677 using Base::m_testFunActives;
678 using Base::m_localMat;
679 using Base::m_mapData;
680 using Base::m_quWeights;
681 using Base::m_testFunData;
682 using Base::m_shapeFunData;
687 gsINSVisitorRhsP() {}
690 Base(params), m_pRhsFun(params.getPde().source())
692 GISMO_ASSERT(m_pRhsFun == NULL || m_pRhsFun->
targetDim() == 1,
"Wrong RHS function passed into gsINSRhsP.");
698 virtual void defineTestShapeUnknowns()
704 virtual void defineTerms()
711 virtual void assemble();
719#ifndef GISMO_BUILD_LIB
720#include GISMO_HPP_HEADER(gsINSVisitors.hpp)
A class that holds all parameters needed by the incompressible flow solver.
Definition gsFlowSolverParams.h:34
A class for integrals of the form: viscosity * test function gradient * shape function gradient.
Definition gsFlowTerms.h:241
A class for integrals of the form: test function gradient * shape function gradient.
Definition gsFlowTerms.h:217
A class for integrals of the form: (1 / time step) * test function value * shape function value.
Definition gsFlowTerms.h:190
A class for integrals of the form: test function value * shape function value.
Definition gsFlowTerms.h:166
A class for integrals of the form: test function value * rhs function value.
Definition gsFlowTerms.h:268
Base class for incompressible flow visitors.
Definition gsFlowVisitors.h:29
virtual void localToGlobal(gsMatrix< T > &globalRhs)
Map local rhs vector to the global rhs vector.
Definition gsFlowVisitors.h:167
virtual void localToGlobal(const std::vector< gsMatrix< T > > &eliminatedDofs, gsSparseMatrix< T, MatOrder > &globalMat, gsMatrix< T > &globalRhs)
Map local matrix to the global matrix.
Definition gsFlowVisitors.h:162
A function from a n-dimensional domain to an m-dimensional image.
Definition gsFunction.h:60
virtual short_t targetDim() const
Dimension of the target space.
Definition gsFunctionSet.h:595
A class for integrals of the form: pressure shape function value * velocity test function divergence.
Definition gsINSTerms.h:23
A class for integrals of the form: velocity shape function divergence * pressure test function value.
Definition gsINSTerms.h:53
A class for integrals of the form: velocity solution * shape function gradient * test function value.
Definition gsINSTerms.h:77
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition gsMatrix.h:41
Sparse matrix class, based on gsEigen::SparseMatrix.
Definition gsSparseMatrix.h:139
#define GISMO_ASSERT(cond, message)
Definition gsDebug.h:89
The G+Smo namespace, containing all definitions for the library.