VM2D  1.12
Vortex methods for 2D flows simulation
Mechanics2DRigidRotatePart.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: MechanicsRigidRotatePart.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 
41 #ifndef MECHANICSRIGIDROTATEPART_H
42 #define MECHANICSRIGIDROTATEPART_H
43 
44 #include "Mechanics2D.h"
45 
46 namespace VM2D
47 {
48 
49  class World2D;
50 
66  public Mechanics
67  {
68  private:
69 
71  const double w0;
72 
74  const double phi0;
75 
77  //double w;
78 
80  //double phi;
81 
83  //double wOld;
84 
86  //double phiOld;
87 
89  double J;
90 
92  double wAccel;
93 
95  double tAccel;
96 
99 
100 
101  public:
102 
103 
105  double& getW() { return Wcm; };
106  double& getWOld() { return WcmOld; };
107 
109  double& getPhi() { return Phi; };
110  double& getPhiOld() { return PhiOld; };
111 
112 
117  MechanicsRigidRotatePart(const World2D& W_, size_t numberInPassport_);
118 
121 
122 
123  //далее -- реализации виртуальных функций
124  virtual void GetHydroDynamForce() override;
125  virtual Point2D VeloOfAirfoilRcm(double currTime) override;
126  virtual Point2D PositionOfAirfoilRcm(double currTime) override;
127  virtual double AngularVelocityOfAirfoil(double currTime) override;
128  virtual double AngleOfAirfoil(double currTime) override;
129  virtual void VeloOfAirfoilPanels(double currTime) override;
130  virtual void ReadSpecificParametersFromDictionary() override;
131  virtual void Move() override;
132  };
133 
134 }//namespace VM2D
135 
136 #endif
double tAccel
время, за которое профиль принудительно разгоняется
const double phi0
начальный угол отклонения профиля
Класс, определяющий вид механической системы
Заголовочный файл с описанием класса Mechanics.
double & getPhi()
текущее отклонение профиля
virtual Point2D PositionOfAirfoilRcm(double currTime) override
Вычисление положения центра масс профиля
virtual void GetHydroDynamForce() override
Вычисление гидродинамической силы, действующей на профиль
virtual double AngleOfAirfoil(double currTime) override
Вычисление угла поворота профиля
virtual Point2D VeloOfAirfoilRcm(double currTime) override
Вычисление скорости центра масс профиля
const double w0
начальная угловая скорость профиля
Definition: Airfoil2D.h:45
Класс, опеделяющий двумерный вектор
Definition: Point2D.h:75
virtual void VeloOfAirfoilPanels(double currTime) override
Вычисление скоростей начал панелей
virtual void ReadSpecificParametersFromDictionary() override
Чтение параметров конкретной механической системы
virtual double AngularVelocityOfAirfoil(double currTime) override
Вычисление угловой скорости профиля
virtual void Move() override
Перемещение профиля в соответствии с законом
double externalTorque
внешний момент, который "снимается".
Класс, опеделяющий текущую решаемую задачу
Definition: World2D.h:68
double & getW()
текущая скорость профиля
double wAccel
скорость, до которой профиль принудительно разгоняется
MechanicsRigidRotatePart(const World2D &W_, size_t numberInPassport_)
Конструктор
double J
момент инерции профиля
~MechanicsRigidRotatePart()
Деструктор
Абстрактный класс, определяющий вид механической системы
Definition: Mechanics2D.h:71