G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsPartitionedFSI.h
Go to the documentation of this file.
1 
15 #pragma once
16 
17 #include <gsIO/gsOptionList.h>
18 
19 namespace gismo
20 {
21 
22 template <class T>
23 class gsNsTimeIntegrator;
24 template <class T>
25 class gsElTimeIntegrator;
26 template <class T>
27 class gsALE;
28 template <class T>
29 class gsMultiPatch;
30 
31 template <class T>
32 class gsPartitionedFSI
33 {
34 public:
35 
36  gsPartitionedFSI(gsNsTimeIntegrator<T> & nsSolver,
37  gsMultiPatch<T> & velocity, gsMultiPatch<T> & pressure,
38  gsElTimeIntegrator<T> & elSolver,
39  gsMultiPatch<T> & displacement,
40  gsALE<T> & aleSolver,
41  gsMultiPatch<T> & aleDisplacement, gsMultiPatch<T> & aleVelocity);
42 
44  static gsOptionList defaultOptions();
45 
47  gsOptionList & options() { return m_options; }
48 
50  bool makeTimeStep(T timeStep);
51 
53  void formVector(const gsMultiPatch<T> & disp, gsMatrix<T> & vector);
54 
56  void aitken(gsMultiPatch<T> & dispA, gsMultiPatch<T> & dispB,
57  gsMultiPatch<T> & dispB2, gsMultiPatch<T> & dispC);
58 
60  index_t numberIterations() { return numIter; }
62  T timeNS() { return nsTime; }
63  T timeEL() { return elTime; }
64  T timeALE() { return aleTime; }
66  T aitkenOmega() { return omega;}
68  T residualNormAbs() { return absResNorm;}
70  T residualNormRel() { return absResNorm/initResNorm; }
71 
72 protected:
74  gsNsTimeIntegrator<T> & m_nsSolver;
75  gsMultiPatch<T> & m_velocity;
76  gsMultiPatch<T> & m_pressure;
77  gsElTimeIntegrator<T> & m_elSolver;
78  gsMultiPatch<T> & m_displacement;
79  gsALE<T> & m_aleSolver;
80  gsMultiPatch<T> & m_ALEdisplacment;
81  gsMultiPatch<T> & m_ALEvelocity;
83  gsOptionList m_options;
85  index_t numIter; // number of iterations at the last time step
86  bool converged; // convergence flag
87  T nsTime, elTime, aleTime; // component computational times
88  T omega; // aitken relaxation parameter
89  T absResNorm, initResNorm; // residual norms for convergence cretirion
90 
91 };
92 
93 } // namespace ends
94 
95 #ifndef GISMO_BUILD_LIB
96 #include GISMO_HPP_HEADER(gsPartitionedFSI.hpp)
97 #endif
#define index_t
Definition: gsConfig.h:32
Provides a list of labeled parameters/options that can be set and accessed easily.