G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsPartitionedFSI.h
Go to the documentation of this file.
1
15#pragma once
16
17#include <gsIO/gsOptionList.h>
18
19namespace gismo
20{
21
22template <class T>
23class gsNsTimeIntegrator;
24template <class T>
25class gsElTimeIntegrator;
26template <class T>
27class gsALE;
28template <class T>
29class gsMultiPatch;
30
31template <class T>
32class gsPartitionedFSI
33{
34public:
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
72protected:
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.
The G+Smo namespace, containing all definitions for the library.