VM2D  1.12
Vortex methods for 2D flows simulation
Passport2D.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: Passport2D.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 
49 #ifndef PASSPORT_H
50 #define PASSPORT_H
51 
52 #include "PassportGen.h"
53 #include "Point2D.h"
54 
55 namespace VM2D
56 {
57 
69  {
70  private:
72 
73  public:
75  double rho;
76 
79 
81  double vRef;
82 
84  std::pair<std::string, int> typeAccel;
85 
87  double timeAccel;
88 
90  double accelCft() const;
91 
93  Point2D V0() const
94  {
95  return static_cast<Point2D>(accelCft()*vInf);
96  };
97 
99  double nu;
100 
102  double getCurrTime() const
103  {
104  return timeProp.currTime;
105  }
106 
108  void setCurrTime(double t_) const
109  {
110  timeProp.currTime = t_;
111  }
112 
114  void addCurrTime(double dt_) const
115  {
116  timeProp.currTime += dt_;
117  }
118 
120  :timeProp(timeProp_)
121  {};
122 
123  };//PhysicalProperties
124 
125 
137  {
139  double eps;
140 
142  double eps2;
143 
145  double epscol;
146 
148  double distFar;
149 
151  double delta;
152 
155 
157  double maxGamma;
158 
160  std::string fileWake;
161 
163  std::string fileSource;
164 
166  double getMinEpsAst() const
167  {
168  return 2.0*epscol;
169  };
170 
171  };//WakeDiscretizationProperties
172 
173 
185  {
186  //Решатель СЛАУ
187  std::pair<std::string, int> linearSystemSolver;
188 
189  //Метод вычисления скоростей вихрей и в отдельных точках
190  std::pair<std::string, int> velocityComputation;
191 
192  //Метод решения ОДУ движения вихрей
193  //std::pair<std::string, int> wakeMotionIntegrator;
194 
196  std::pair<std::string, int> panelsType;
197 
199  std::pair<std::string, int> boundaryCondition;
200  };//NumericalSchemes
201 
202 
214  {
216  std::string fileAirfoil;
217 
220 
223 
226 
228  double chord;
229 
231  double angle;
232 
235 
237  bool inverse;
238 
241  std::string mechanicalSystem;
243 
244  };//AirfoilParams
245 
246 
247 
259  {
260  private:
261  //далее -- реализации виртуальных функций
262  virtual void GetAllParamsFromParser
263  (
264  std::istream& mainStream,
265  std::istream& mechanicsStream,
266  std::istream& defaultStream,
267  std::istream& switcherStream,
268  std::istream& varsStream
269  ) override;
270  virtual void PrintAllParams() override;
271 
272  public:
274  std::string airfoilsDir;
275 
277  std::string wakesDir;
278 
280  std::vector<AirfoilParams> airfoilParams;
281 
284 
287 
290 
293 
294 
297 
300 
303 
316  Passport
317  (
318  VMlib::LogStream& infoStream,
319  const std::string& _problemName,
320  const size_t _problemNumber,
321  const std::string& _filePassport,
322  const std::string& _mechanics,
323  const std::string& _defaults,
324  const std::string& _switchers,
325  const std::vector<std::string>& vars
326  );
327 
329  virtual ~Passport() { };
330  };
331 
332 }//namespace VM2D
333 
334 #endif
335 
Структура, задающая физические свойства задачи
Definition: Passport2D.h:68
std::pair< std::string, int > velocityComputation
Definition: Passport2D.h:190
Заголовочный файл с описанием класса PasportGen.
bool geographicalAngles
Признак работы в "географической" системе координат
Definition: Passport2D.h:283
double eps
Радиус вихря
Definition: Passport2D.h:139
Класс, определяющий работу с потоком логов
Definition: LogStream.h:53
double delta
Расстояние, на которое рождаемый вихрь отодвигается от профиля
Definition: Passport2D.h:151
bool inverse
Признак разворота нормалей (для расчета внутреннего течения)
Definition: Passport2D.h:237
double timeAccel
Время разгона потока
Definition: Passport2D.h:87
std::pair< std::string, int > boundaryCondition
Метод аппроксимации граничных условий
Definition: Passport2D.h:199
int mechanicalSystemType
Тип механической системы
Definition: Passport2D.h:240
double vRef
Референсная скорость
Definition: Passport2D.h:81
double getCurrTime() const
Возвращает текуще время
Definition: Passport2D.h:102
double maxGamma
Максимально допустимая циркуляция вихря
Definition: Passport2D.h:157
double currTime
Текущее время
Definition: PassportGen.h:56
double nu
Коэффициент кинематической вязкости среды
Definition: Passport2D.h:96
Заголовочный файл с описанием класса Point2D.
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition: Passport2D.h:296
Структура, задающая параметры процесса интегрирования по времени
Definition: PassportGen.h:53
bool calcCoefficients
Признак вычисления коэффициентов вместо сил
Definition: Passport2D.h:289
Класс, опеделяющий паспорт двумерной задачи
Definition: Passport2D.h:258
size_t requiredNPanels
Желаемое число панелей для разбиения геометрии
Definition: Passport2D.h:219
double angle
Угол поворота (угол атаки)
Definition: Passport2D.h:231
virtual ~Passport()
Деструктор
Definition: Passport2D.h:329
double rotateAngleVpPoints
Угол поворота точек VP.
Definition: Passport2D.h:292
double accelCft() const
Функция-множитель, позволяющая моделировать разгон
Definition: Passport2D.cpp:51
Point2D vInf
Скоростью набегающего потока
Definition: Passport2D.h:78
Абстрактный класс, опеделяющий паспорт задачи
Definition: PassportGen.h:91
double chord
Хорда
Definition: Passport2D.h:228
double rho
Плотность потока
Definition: Passport2D.h:75
std::string fileSource
Имя файла с положениями источников (без полного пути)
Definition: Passport2D.h:163
Definition: Airfoil2D.h:45
NumericalSchemes numericalSchemes
Структура с используемыми численными схемами
Definition: Passport2D.h:302
Point2D basePoint
Смещение центра масс (перенос профиля)
Definition: Passport2D.h:222
Класс, опеделяющий двумерный вектор
Definition: Point2D.h:75
const VMlib::TimeDiscretizationProperties & timeProp
Definition: Passport2D.h:71
Структура, задающая параметры профиля
Definition: Passport2D.h:213
std::string fileWake
Имя файла с начальным состоянием вихревого следа (без полного пути)
Definition: Passport2D.h:160
void setCurrTime(double t_) const
Установка текущего времени
Definition: Passport2D.h:108
std::pair< std::string, int > typeAccel
Способ разгона потока
Definition: Passport2D.h:84
std::pair< std::string, int > panelsType
Тип панелей (0 — прямые)
Definition: Passport2D.h:196
Структура, задающая параметры параметры дискретизации вихревого следа
Definition: Passport2D.h:136
int minVortexPerPanel
Минимальное число вихрей, рождаемых на каждой панели профииля
Definition: Passport2D.h:154
std::string fileAirfoil
Имя файла с начальным состоянием профилей (без полного пути)
Definition: Passport2D.h:216
void addCurrTime(double dt_) const
Добавление шага к текущему времени
Definition: Passport2D.h:114
std::string mechanicalSystemParameters
Definition: Passport2D.h:242
Point2D V0() const
Функция скорости набегающего потока с учетом разгона
Definition: Passport2D.h:93
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition: Passport2D.h:280
std::string wakesDir
Каталог с файлами вихревых следов
Definition: Passport2D.h:277
PhysicalProperties(const VMlib::TimeDiscretizationProperties &timeProp_)
Definition: Passport2D.h:119
WakeDiscretizationProperties wakeDiscretizationProperties
Структура с параметрами дискретизации вихревого следа
Definition: Passport2D.h:299
Point2D scale
Коэффициент масштабирования
Definition: Passport2D.h:225
std::string airfoilsDir
Каталог с файлами профилей
Definition: Passport2D.h:274
Point2D addedMass
Присоединенная масса
Definition: Passport2D.h:234
std::string mechanicalSystem
Definition: Passport2D.h:241
std::pair< std::string, int > linearSystemSolver
Definition: Passport2D.h:187
Структура, задающая используемые численные схемы
Definition: Passport2D.h:184
double eps2
Квадрат радиуса вихря
Definition: Passport2D.h:142
double distFar
Расстояние от центра самого подветренного (правого) профиля, на котором вихри уничтожаются ...
Definition: Passport2D.h:148
double epscol
Радиус коллапса
Definition: Passport2D.h:145
double getMinEpsAst() const
Функция минимально возможного значения для epsAst.
Definition: Passport2D.h:166
bool rotateForces
Признак поворота вычисляемых сил в профильную систему координат
Definition: Passport2D.h:286