VM2D  1.12
Vortex methods for 2D flows simulation
Mechanics2DRigidOscillPart.h
Go to the documentation of this file.
1 /*--------------------------------*- VM2D -*-----------------*---------------*\
2 | ## ## ## ## #### ##### | | Version 1.12 |
3 | ## ## ### ### ## ## ## ## | VM2D: Vortex Method | 2024/01/14 |
4 | ## ## ## # ## ## ## ## | for 2D Flow Simulation *----------------*
5 | #### ## ## ## ## ## | Open Source Code |
6 | ## ## ## ###### ##### | https://www.github.com/vortexmethods/VM2D |
7 | |
8 | Copyright (C) 2017-2024 I. Marchevsky, K. Sokol, E. Ryatina, A. Kolganova |
9 *-----------------------------------------------------------------------------*
10 | File name: Mechanics2DRigidOscillPart.h |
11 | Info: Source code of VM2D |
12 | |
13 | This file is part of VM2D. |
14 | VM2D is free software: you can redistribute it and/or modify it |
15 | under the terms of the GNU General Public License as published by |
16 | the Free Software Foundation, either version 3 of the License, or |
17 | (at your option) any later version. |
18 | |
19 | VM2D is distributed in the hope that it will be useful, but WITHOUT |
20 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
21 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
22 | for more details. |
23 | |
24 | You should have received a copy of the GNU General Public License |
25 | along with VM2D. If not, see <http://www.gnu.org/licenses/>. |
26 \*---------------------------------------------------------------------------*/
27 
28 
40 #ifndef MECHANICSRIGIDOSCILLPART_H
41 #define MECHANICSRIGIDOSCILLPART_H
42 
43 #include "Mechanics2D.h"
44 
45 namespace VM2D
46 {
47 
48  class World2D;
49 
65  public Mechanics
66  {
67  private:
68 
70  const double Vx0;
71  const double Vy0;
72 
73 
75  const double x0;
76  const double y0;
77 
79  double Vx;
80  double Vy;
81 
83  double x;
84  double y;
85 
87  double VxOld;
88  double VyOld;
89 
91  double xOld;
92  double yOld;
93 
95  double m;
96 
98  double bx;
99  double by;
100 
102  double kx;
103  double ky;
104 
105  public:
106 
107 
109  double& getVy(){ return Vy; };
110  double& getVyOld(){ return VyOld; };
111 
113  double& getY(){ return y; };
114  double& getYOld(){ return yOld; };
115 
116 
121  MechanicsRigidOscillPart(const World2D& W_, size_t numberInPassport_);
122 
125 
126 
127  //далее -- реализации виртуальных функций
128  virtual void GetHydroDynamForce() override;
129  virtual Point2D VeloOfAirfoilRcm(double currTime) override;
130  virtual Point2D PositionOfAirfoilRcm(double currTime) override;
131  virtual double AngularVelocityOfAirfoil(double currTime) override;
132  virtual double AngleOfAirfoil(double currTime) override;
133  virtual void VeloOfAirfoilPanels(double currTime) override;
134  virtual void ReadSpecificParametersFromDictionary() override;
135  virtual void Move() override;
136 
137 
138  double VxIter;
139  double VyIter;
141 
142  //void RecalcU(Point2D forcePrev); //ИК
143  void UpdateU();
144  };
145 
146 }//namespace VM2D
147 
148 #endif
virtual void GetHydroDynamForce() override
Вычисление гидродинамической силы, действующей на профиль
double & getVy()
текущая скорость профиля
double kx
параметр жесткости механической системы
double bx
параметр демпфирования механической системы
MechanicsRigidOscillPart(const World2D &W_, size_t numberInPassport_)
Конструктор
double xOld
отклонение профиля с предыдущего шага
const double x0
начальное отклонение профиля
Класс, определяющий вид механической системы
double x
текущее отклонение профиля
Заголовочный файл с описанием класса Mechanics.
const double Vx0
начальная скорость профиля
double VxOld
скорость профиля с предыдущего шага
~MechanicsRigidOscillPart()
Деструктор
Definition: Airfoil2D.h:45
Класс, опеделяющий двумерный вектор
Definition: Point2D.h:75
double & getY()
текущее отклонение профиля
virtual Point2D PositionOfAirfoilRcm(double currTime) override
Вычисление положения центра масс профиля
virtual double AngleOfAirfoil(double currTime) override
Вычисление угла поворота профиля
double Vx
текущая скорость профиля
virtual Point2D VeloOfAirfoilRcm(double currTime) override
Вычисление скорости центра масс профиля
Класс, опеделяющий текущую решаемую задачу
Definition: World2D.h:68
virtual void VeloOfAirfoilPanels(double currTime) override
Вычисление скоростей начал панелей
virtual double AngularVelocityOfAirfoil(double currTime) override
Вычисление угловой скорости профиля
double m
масса профиля
virtual void ReadSpecificParametersFromDictionary() override
Чтение параметров конкретной механической системы
virtual void Move() override
Перемещение профиля в соответствии с законом
Абстрактный класс, определяющий вид механической системы
Definition: Mechanics2D.h:71