VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
Mechanics2DRigidOscillPart.h
Go to the documentation of this file.
1/*--------------------------------*- VM2D -*-----------------*---------------*\
2| ## ## ## ## #### ##### | | Version 1.14 |
3| ## ## ### ### ## ## ## ## | VM2D: Vortex Method | 2026/03/06 |
4| ## ## ## # ## ## ## ## | for 2D Flow Simulation *----------------*
5| #### ## ## ## ## ## | Open Source Code |
6| ## ## ## ###### ##### | https://www.github.com/vortexmethods/VM2D |
7| |
8| Copyright (C) 2017-2026 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 MECHANICS2DRIGIDOSCILLPART_H
41#define MECHANICS2DRIGIDOSCILLPART_H
42
43#include "Mechanics2D.h"
44
45namespace VM2D
46{
47
48 class World2D;
49
65 public Mechanics
66 {
67 private:
68
70 double m;
71
73 double J;
74
77 double bw;
78
81 double kw;
82
86
90
93
94 public:
96 Point2D& getV() { return Vcm; };
97 Point2D& getVOld() { return VcmOld; };
98
100 Point2D& getR() { return Rcm; };
101 Point2D& getROld() { return RcmOld; };
102
104 double& getW() { return Wcm; };
105 double& getWOld() { return WcmOld; };
106
108 double& getPhi() { return Phi; };
109 double& getPhiOld() { return PhiOld; };
110
112
117 MechanicsRigidOscillPart(const World2D& W_, size_t numberInPassport_);
118
121
122 //далее -- реализации виртуальных функций
123 virtual void GetHydroDynamForce() override;
124 virtual Point2D VeloOfAirfoilRcm(double currTime) override;
125 virtual Point2D PositionOfAirfoilRcm(double currTime) override;
126 virtual double AngularVelocityOfAirfoil(double currTime) override;
127 virtual double AngleOfAirfoil(double currTime) override;
128 virtual void VeloOfAirfoilPanels(double currTime) override;
130 virtual void Move() override;
131 void MoveKinematic();
132 void MoveOnlyVelo();
133
134 };
135
136}//namespace VM2D
137
138#endif
Заголовочный файл с описанием класса Mechanics.
Абстрактный класс, определяющий вид механической системы
Definition Mechanics2D.h:72
Point2D RcmOld
Текущие положение профиля
Point2D VcmOld
Скорость и отклонение с предыдущего шага
Point2D Rcm
Текущие положение профиля
Point2D Vcm
Текущие скорость центра и угловая скорость
Класс, определяющий вид механической системы
bool strongCoupling
признак полунеявной схемы связывания
double m
масса профиля
Point2D initVelocity
начальные скорости
Point2D & getR()
текущее отклонение профиля
double & getPhi()
текущий угол поворота профиля
virtual Point2D VeloOfAirfoilRcm(double currTime) override
Вычисление скорости центра масс профиля
Point2D initDisplacement
начальное отклонение
Point2D b
параметр демпфирования механической системы
virtual void ReadSpecificParametersFromDictionary() override
Чтение параметров конкретной механической системы
virtual Point2D PositionOfAirfoilRcm(double currTime) override
Вычисление положения центра масс профиля
virtual double AngleOfAirfoil(double currTime) override
Вычисление угла поворота профиля
Point2D & getV()
текущая скорость профиля
virtual void GetHydroDynamForce() override
Вычисление гидродинамической силы, действующей на профиль
virtual void Move() override
Перемещение профиля в соответствии с законом
virtual double AngularVelocityOfAirfoil(double currTime) override
Вычисление угловой скорости профиля
double & getW()
текущая угловая скорость профиля
Point2D k
параметр жесткости механической системы
virtual void VeloOfAirfoilPanels(double currTime) override
Вычисление скоростей начал панелей
double J
момент инерции профиля
Класс, опеделяющий текущую решаемую задачу
Definition World2D.h:74