VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
Passport2D.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: 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 PASSPORT2D_H
50#define PASSPORT2D_H
51
52#include "PassportGen.h"
53#include "Point2D.h"
54
55namespace 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(double currentTime) const;
91
93 Point2D V0(double currentTime) const
94 {
95 return static_cast<Point2D>(accelCft(currentTime) * vInf);
96 };
97
99 double nu;
100
102 :timeProp(timeProp_)
103 {
104 rho = 1.0;
105 nu = 0.0;
106 vRef = 1.0;
107 timeAccel = 0.0;
108 };
109
110 };//PhysicalProperties
111
112
124 {
126 double eps;
127
129 double eps2;
130
132 double epscol;
133
135 double distFar;
136
138 double delta;
139
142
144 double maxGamma;
145
147 std::string fileWake;
148
150 std::string fileSource;
151
153 double getMinEpsAst() const
154 {
155 return 0.0; // 2.0 * epscol;
156 };
157
158 };//WakeDiscretizationProperties
159
160
172 {
173 //Решатель СЛАУ
174 std::pair<std::string, int> linearSystemSolver;
175 double gmresEps;
178
179 //Метод вычисления скоростей вихрей и в отдельных точках
180 std::pair<std::string, int> velocityComputation;
183
184
185 //Метод решения ОДУ движения вихрей
186 //std::pair<std::string, int> wakeMotionIntegrator;
187
189 std::pair<std::string, int> boundaryCondition;
190 };//NumericalSchemes
191
192
204 {
206 std::string fileAirfoil;
207
209 std::pair<Point2D, Point2D> initialGab;
210
213
216
219
221 double chord;
222
224 double angle;
225
228
231
234 std::string mechanicalSystem;
236
237 };//AirfoilParams
238
239
240
252 {
253 private:
254 //далее -- реализации виртуальных функций
255 virtual void GetAllParamsFromParser
256 (
257 std::istream& mainStream,
258 std::istream& mechanicsStream,
259 std::istream& defaultStream,
260 std::istream& switcherStream,
261 std::istream& varsStream
262 ) override;
263 virtual void PrintAllParams() override;
264
265 public:
267 std::string airfoilsDir;
268
270 std::string wakesDir;
271
273 std::vector<AirfoilParams> airfoilParams;
274
276 //bool geographicalAngles; //Для обдува ветром, когда углы считаются по компасу
277
280
283
286
287
290
293
296
310 (
311 VMlib::LogStream& infoStream,
312 const std::string& _problemName,
313 const size_t _problemNumber,
314 const std::string& _filePassport,
315 const std::string& _mechanics,
316 const std::string& _defaults,
317 const std::string& _switchers,
318 const std::vector<std::string>& vars
319 );
320
322 virtual ~Passport() { };
323 };
324
325}//namespace VM2D
326
327#endif
328
Заголовочный файл с описанием класса PasportGen.
Заголовочный файл с описанием класса Point2D.
bool rotateForces
Признак работы в "географической" системе координат
Definition Passport2D.h:279
std::string wakesDir
Каталог с файлами вихревых следов
Definition Passport2D.h:270
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition Passport2D.h:289
bool calcCoefficients
Признак вычисления коэффициентов вместо сил
Definition Passport2D.h:282
double rotateAngleVpPoints
Угол поворота точек VP.
Definition Passport2D.h:285
WakeDiscretizationProperties wakeDiscretizationProperties
Структура с параметрами дискретизации вихревого следа
Definition Passport2D.h:292
std::string airfoilsDir
Каталог с файлами профилей
Definition Passport2D.h:267
virtual void PrintAllParams() override
Печать всех параметров расчета в поток логов
virtual ~Passport()
Деструктор
Definition Passport2D.h:322
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition Passport2D.h:273
virtual void GetAllParamsFromParser(std::istream &mainStream, std::istream &mechanicsStream, std::istream &defaultStream, std::istream &switcherStream, std::istream &varsStream) override
Считывание всех параметров расчета из соответствующих потоков
NumericalSchemes numericalSchemes
Структура с используемыми численными схемами
Definition Passport2D.h:295
Класс, определяющий работу с потоком логов
Definition LogStream.h:57
Абстрактный класс, опеделяющий паспорт задачи
Definition PassportGen.h:96
Point2D addedMass
Присоединенная масса
Definition Passport2D.h:227
double chord
Хорда
Definition Passport2D.h:221
std::string mechanicalSystem
Definition Passport2D.h:234
std::pair< Point2D, Point2D > initialGab
Начальные габариты (прочитанные из файла, ло масштабирования и разворота на угол атаки)
Definition Passport2D.h:209
Point2D basePoint
Смещение центра масс (перенос профиля)
Definition Passport2D.h:215
int mechanicalSystemType
Тип механической системы
Definition Passport2D.h:233
std::string fileAirfoil
Имя файла с начальным состоянием профилей (без полного пути)
Definition Passport2D.h:206
double angle
Угол поворота (угол атаки)
Definition Passport2D.h:224
std::string mechanicalSystemParameters
Definition Passport2D.h:235
Point2D scale
Коэффициент масштабирования
Definition Passport2D.h:218
size_t requiredNPanels
Желаемое число панелей для разбиения геометрии
Definition Passport2D.h:212
bool inverse
Признак разворота нормалей (для расчета внутреннего течения)
Definition Passport2D.h:230
Структура, задающая используемые численные схемы
Definition Passport2D.h:172
std::pair< std::string, int > boundaryCondition
Метод аппроксимации граничных условий
Definition Passport2D.h:189
std::pair< std::string, int > velocityComputation
Definition Passport2D.h:180
std::pair< std::string, int > linearSystemSolver
Definition Passport2D.h:174
Структура, задающая физические свойства задачи
Definition Passport2D.h:69
std::pair< std::string, int > typeAccel
Способ разгона потока
Definition Passport2D.h:84
double accelCft(double currentTime) const
Функция-множитель, позволяющая моделировать разгон
const VMlib::TimeDiscretizationProperties & timeProp
Definition Passport2D.h:71
double vRef
Референсная скорость
Definition Passport2D.h:81
double nu
Коэффициент кинематической вязкости среды
Definition Passport2D.h:99
double timeAccel
Время разгона потока
Definition Passport2D.h:87
PhysicalProperties(const VMlib::TimeDiscretizationProperties &timeProp_)
Definition Passport2D.h:101
Point2D V0(double currentTime) const
Функция скорости набегающего потока с учетом разгона
Definition Passport2D.h:93
double rho
Плотность потока
Definition Passport2D.h:75
Point2D vInf
Скоростью набегающего потока
Definition Passport2D.h:78
int minVortexPerPanel
Минимальное число вихрей, рождаемых на каждой панели профииля
Definition Passport2D.h:141
double getMinEpsAst() const
Функция минимально возможного значения для epsAst.
Definition Passport2D.h:153
std::string fileSource
Имя файла с положениями источников (без полного пути)
Definition Passport2D.h:150
double delta
Расстояние, на которое рождаемый вихрь отодвигается от профиля
Definition Passport2D.h:138
double eps
Радиус вихря
Definition Passport2D.h:126
double epscol
Радиус коллапса
Definition Passport2D.h:132
std::string fileWake
Имя файла с начальным состоянием вихревого следа (без полного пути)
Definition Passport2D.h:147
double maxGamma
Максимально допустимая циркуляция вихря
Definition Passport2D.h:144
double distFar
Расстояние от центра самого подветренного (правого) профиля, на котором вихри уничтожаются
Definition Passport2D.h:135
double eps2
Квадрат радиуса вихря
Definition Passport2D.h:129
Структура, задающая параметры процесса интегрирования по времени
Definition PassportGen.h:59