VM2D  1.12
Vortex methods for 2D flows simulation
VM2D::Passport Class Reference

Класс, опеделяющий паспорт двумерной задачи More...

#include <Passport2D.h>

Inheritance diagram for VM2D::Passport:
Collaboration diagram for VM2D::Passport:

Public Member Functions

 Passport (VMlib::LogStream &infoStream, const std::string &_problemName, const size_t _problemNumber, const std::string &_filePassport, const std::string &_mechanics, const std::string &_defaults, const std::string &_switchers, const std::vector< std::string > &vars)
 Конструктор More...
 
virtual ~Passport ()
 Деструктор More...
 

Public Attributes

std::string airfoilsDir
 Каталог с файлами профилей More...
 
std::string wakesDir
 Каталог с файлами вихревых следов More...
 
std::vector< AirfoilParamsairfoilParams
 Список структур с параметрами профилей More...
 
bool geographicalAngles
 Признак работы в "географической" системе координат More...
 
bool rotateForces
 Признак поворота вычисляемых сил в профильную систему координат More...
 
bool calcCoefficients
 Признак вычисления коэффициентов вместо сил More...
 
double rotateAngleVpPoints
 Угол поворота точек VP. More...
 
PhysicalProperties physicalProperties
 Структура с физическими свойствами задачи More...
 
WakeDiscretizationProperties wakeDiscretizationProperties
 Структура с параметрами дискретизации вихревого следа More...
 
NumericalSchemes numericalSchemes
 Структура с используемыми численными схемами More...
 
std::string dir
 Рабочий каталог задачи More...
 
std::string problemName
 Название задачи More...
 
size_t problemNumber
 Номер задачи More...
 
TimeDiscretizationProperties timeDiscretizationProperties
 Структура с параметрами процесса интегрирования по времени More...
 

Protected Attributes

LogStream info
 Поток для вывода логов и сообщений об ошибках More...
 

Private Member Functions

virtual void GetAllParamsFromParser (std::istream &mainStream, std::istream &mechanicsStream, std::istream &defaultStream, std::istream &switcherStream, std::istream &varsStream) override
 Считывание всех параметров расчета из соответствующих потоков More...
 
virtual void PrintAllParams () override
 Печать всех параметров расчета в поток логов More...
 

Detailed Description

Класс, опеделяющий паспорт двумерной задачи

Author
Марчевский Илья Константинович
Сокол Ксения Сергеевна
Рятина Евгения Павловна
Колганова Александра Олеговна 1.12
Date
14 января 2024 г.

Definition at line 258 of file Passport2D.h.

Constructor & Destructor Documentation

Passport::Passport ( VMlib::LogStream infoStream,
const std::string &  _problemName,
const size_t  _problemNumber,
const std::string &  _filePassport,
const std::string &  _mechanics,
const std::string &  _defaults,
const std::string &  _switchers,
const std::vector< std::string > &  vars 
)

Конструктор

Осуществляет чтение всех данных из соответствующих потоков, полностью инициализирует паспорт

Parameters
[in,out]infoStreamбазовый поток для вывода логов
[in]_problemNameконстантная ссылка наназвание задачи
[in]_problemNumberномер (по счету) решаемой задачи
[in]_filePassportконстантная ссылка на файл (без пути) с паспортом задачи
[in]_mechanicsконстантная ссылка на файл (c путем) со словарем механических систем
[in]_defaultsконстантная ссылка на имя файла (с путем) с параметрами по умолчанию
[in]_switchersконстантная ссылка на имя файла (с путем) со значениями параметров-переключателей
[in]varsконстантная ссылка на список переменных, заданных в виде строк

Definition at line 70 of file Passport2D.cpp.

71 : PassportGen(infoStream, _problemName, _problemNumber, _filePassport, _mechanics, _defaults, _switchers, vars),
73 {
74  std::string fileFullName = dir + _filePassport;
75  std::string mechanicsFileFullName = _mechanics;
76  std::string defaultsFileFullName = _defaults;
77  std::string switchersFileFullName = _switchers;
78 
79  if (
80  fileExistTest(fileFullName, info, { "txt", "TXT"}) &&
81  fileExistTest(defaultsFileFullName, info, { "txt", "TXT" }) &&
82  fileExistTest(switchersFileFullName, info, { "txt", "TXT" }) &&
83  fileExistTest(mechanicsFileFullName, info, { "txt", "TXT" })
84  )
85  {
86  std::string str = VMlib::StreamParser::VectorStringToString(vars);
87  std::stringstream varsStream(str);
88 
89  std::stringstream mainStream;
90  mainStream << VMlib::Preprocessor(fileFullName).resultString;
91 
92  std::stringstream mechanicsStream;
93  mechanicsStream << VMlib::Preprocessor(mechanicsFileFullName).resultString;
94 
95  std::stringstream defaultsStream;
96  defaultsStream << VMlib::Preprocessor(defaultsFileFullName).resultString;
97 
98  std::stringstream switchersStream;
99  switchersStream << VMlib::Preprocessor(switchersFileFullName).resultString;
100 
101  GetAllParamsFromParser(mainStream, mechanicsStream, defaultsStream, switchersStream, varsStream);
102 
103  PrintAllParams();
104  }
105 }
virtual void GetAllParamsFromParser(std::istream &mainStream, std::istream &mechanicsStream, std::istream &defaultStream, std::istream &switcherStream, std::istream &varsStream) override
Считывание всех параметров расчета из соответствующих потоков
Definition: Passport2D.cpp:110
std::string resultString
Строка, содержащая окончательный результат обработки файла
Definition: Preprocessor.h:159
std::string dir
Рабочий каталог задачи
Definition: PassportGen.h:118
Класс, позволяющий выполнять предварительную обработку файлов
Definition: Preprocessor.h:59
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition: Passport2D.h:296
virtual void PrintAllParams() override
Печать всех параметров расчета в поток логов
Definition: Passport2D.cpp:383
TimeDiscretizationProperties timeDiscretizationProperties
Структура с параметрами процесса интегрирования по времени
Definition: PassportGen.h:127
PassportGen(LogStream &infoStream, const std::string &_problemName, const size_t _problemNumber, const std::string &_filePassport, const std::string &_mechanics, const std::string &_defaults, const std::string &_switchers, const std::vector< std::string > &vars)
Конструктор
Definition: PassportGen.cpp:45
bool fileExistTest(std::string &fileName, LogStream &info, const std::list< std::string > &extList={})
Проверка существования файла
Definition: defs.h:324
static std::string VectorStringToString(const std::vector< std::string > &_vecString)
Объединение вектора (списка) из строк в одну строку
LogStream info
Поток для вывода логов и сообщений об ошибках
Definition: PassportGen.h:111

Here is the call graph for this function:

virtual VM2D::Passport::~Passport ( )
inlinevirtual

Деструктор

Definition at line 329 of file Passport2D.h.

329 { };

Member Function Documentation

void Passport::GetAllParamsFromParser ( std::istream &  mainStream,
std::istream &  mechanicsStream,
std::istream &  defaultStream,
std::istream &  switcherStream,
std::istream &  varsStream 
)
overrideprivatevirtual

Считывание всех параметров расчета из соответствующих потоков

Parameters
[in]mainStreamссылка на основной поток
[in]mechanicsStreamссылка на поток со словарем механических систем
[in]defaultStreamссылка на поток с параметрами по умолчанию
[in]switcherStreamссылка на поток со значениями параметров-переключателей
[in]varsStreamссылка на поток с параметрами конкретной задачи и переменными
Todo:
Удалить в следующих версиях. Добавлено для совместимости со старым синтаксисом задания разгона потока

Implements VMlib::PassportGen.

Definition at line 110 of file Passport2D.cpp.

117 {
118  // 1. Разбор паспорта в целом
119 
120  //создаем парсер и связываем его с нужным потоком
121  std::unique_ptr<VMlib::StreamParser> parser;
122  parser.reset(new VMlib::StreamParser(info, "parser", mainStream, defaultStream, switcherStream, varsStream));
123 
124  //считываем общие параметры
125  parser->get("rho", physicalProperties.rho);
126  parser->get("vInf", physicalProperties.vInf);
128 
129  if (physicalProperties.vRef == 0.0)
130  {
131  if (physicalProperties.vInf.length() == 0.0)
132  {
133  info('e') << "Reference velocity should be non-zero!" << std::endl;
134  exit(1);
135  }
137  }
138 
139  //Считывание схемы разгона потока
140  {
141  std::pair<std::pair<std::string, int>, std::string> velAccel;
142  bool defParamAccelVel = parser->get("accelVel", velAccel, &defaults::defaultVelAccel);
143  if (velAccel.first.second != -1)
144  {
145  physicalProperties.typeAccel = velAccel.first;
146  std::stringstream sstr(velAccel.second);
147  std::istream& istr(sstr);
148 
149  std::unique_ptr<VMlib::StreamParser> parserAccel;
150 
151  parserAccel.reset(new VMlib::StreamParser(info, "parserAccel", istr, defaultStream, switcherStream, varsStream));
152  bool defParamTime = parserAccel->get("timeAccel", physicalProperties.timeAccel, &defaults::defaultTimeAccel, false);
153  parserAccel->get("_DEFVAR_0", physicalProperties.timeAccel, &physicalProperties.timeAccel, defParamAccelVel && !defParamTime);
154  }
155  else
156  {
157  info('e') << "Velocity acceleration scheme <" << velAccel.first.first << "> is unknown" << std::endl;
158  exit(1);
159  }
160 
162  if (!defParamAccelVel)
164  else
165  {
166  double tempTimeAccel;
167  if (parser->get("timeAccel", tempTimeAccel, &defaults::defaultTimeAccel, false))
168  {
169  info('e') << "timeAccel parameter is set twice!" << std::endl;
170  exit(1);
171  }
172  }
173  }
174 
175 
176  parser->get("nu", physicalProperties.nu);
177 
179  parser->get("timeStop", timeDiscretizationProperties.timeStop);
180  parser->get("dt", timeDiscretizationProperties.dt);
182 
183 
184  //Считывание схемы сохранения файлов Vtx
185  std::pair<std::pair<std::string, int>, std::string> saveVtx;
186  bool defParamSaveVtx = parser->get("saveVt?", saveVtx, &defaults::defaultSaveVtx);
187  if (saveVtx.first.second != -1)
188  {
190  std::stringstream sstr(saveVtx.second);
191  std::istream& istr(sstr);
192 
193  std::unique_ptr<VMlib::StreamParser> parserSaveVtx;
194 
195  parserSaveVtx.reset(new VMlib::StreamParser(info, "parserSaveVtx", istr, defaultStream, switcherStream, varsStream));
196  parserSaveVtx->get("_DEFVAR_0", timeDiscretizationProperties.saveVtxStep, &defaults::defaultSaveVtxStep, defParamSaveVtx);
197  }
198  else
199  {
200  std::stringstream ss;
201  ss << saveVtx.first.first;
202  int step;
203  ss >> step;
204  if (!ss.fail())
205  {
208  }
209  else
210  {
211  info('e') << "Vtx file type <" << saveVtx.first.first << "> is unknown" << std::endl;
212  exit(1);
213  }
214  }
215 
216 
217  //Считывание схемы сохранения файлов VP
218  std::pair<std::pair<std::string, int>, std::string> saveVP;
219  bool defParamSaveVP = parser->get("saveVP", saveVP, &defaults::defaultSaveVP);
220  if (saveVP.first.second != -1)
221  {
223  std::stringstream sstr(saveVP.second);
224  std::istream& istr(sstr);
225 
226  std::unique_ptr<VMlib::StreamParser> parserSaveVP;
227 
228  parserSaveVP.reset(new VMlib::StreamParser(info, "parserSaveVP", istr, defaultStream, switcherStream, varsStream));
229  parserSaveVP->get("_DEFVAR_0", timeDiscretizationProperties.saveVPstep, &defaults::defaultSaveVPstep, defParamSaveVP);
230  }
231  else
232  {
233  std::stringstream ss;
234  ss << saveVP.first.first;
235  int step;
236  ss >> step;
237  if (!ss.fail())
238  {
241  }
242  else
243  {
244  info('e') << "VP file type <" << saveVP.first.first << "> is unknown" << std::endl;
245  exit(1);
246  }
247  }
248 
249  parser->get("rotateVpPoints", rotateAngleVpPoints, &defaults::rotateAngleVpPoints);
250 
251 
253 
254 
255  parser->get("eps", wakeDiscretizationProperties.eps);
257  parser->get("epscol", wakeDiscretizationProperties.epscol);
264 
267  //parser->get("wakeMotionIntegrator", numericalSchemes.wakeMotionIntegrator);
269  parser->get("boundaryConditionSatisfaction", numericalSchemes.boundaryCondition, &defaults::defaultBoundaryCondition);
270 
271  parser->get("airfoilsDir", airfoilsDir, &defaults::defaultAirfoilsDir);
272  parser->get("wakesDir", wakesDir, &defaults::defaultWakesDir);
273 
276 
277  parser->get("geographicalAngles", geographicalAngles, &defaults::defaultGeographicalAngles);
278  if (geographicalAngles && (physicalProperties.vInf[1] != 0.0))
279  {
280  info('e') << "For geographical angles vInf should be horizontal; now vInf = " << physicalProperties.vInf << "." << std::endl;
281  exit(1);
282  }
283 
284  parser->get("rotateForces", rotateForces, &defaults::defaultRotateForces);
285  parser->get("calcCoefficients", calcCoefficients, &defaults::defaultCalcCoefficients);
286 
287  std::vector<std::string> airfoil;
288  parser->get("airfoil", airfoil, &defaults::defaultAirfoil);
289 
290  // 2. Разбор параметров профилей
291 
292  //определяем число профилей и организуем цикл по ним
293  size_t nAirfoil = airfoil.size();
294  //*(defaults::defaultPinfo) << "Number of airfoils = " << nAirfoil << endl;
295  for (size_t i = 0; i < nAirfoil; ++i)
296  {
297  //делим имя файла + выражение в скобках на 2 подстроки
298  std::pair<std::string, std::string> airfoilLine = VMlib::StreamParser::SplitString(info, airfoil[i], false);
299 
300  AirfoilParams prm;
301  //первая подстрока - имя файла
302  prm.fileAirfoil = airfoilLine.first;
303 
304  //вторую подстроку разделяем на вектор из строк по запятым, стоящим вне фигурных скобок
305  std::vector<std::string> vecAirfoilLineSecond = VMlib::StreamParser::StringToVector(airfoilLine.second, '{', '}');
306 
307  //создаем парсер и связываем его с параметрами профиля
308  std::stringstream aflStream(VMlib::StreamParser::VectorStringToString(vecAirfoilLineSecond));
309  std::unique_ptr<VMlib::StreamParser> parserAirfoil;
310 
311  parserAirfoil.reset(new VMlib::StreamParser(info, "airfoil parser", aflStream, defaultStream, switcherStream, varsStream));
312 
313  //считываем нужные параметры с учетом default-значений
314  parserAirfoil->get("nPanels", prm.requiredNPanels, &defaults::defaultRequiredNPanels);
315 
316  parserAirfoil->get("basePoint", prm.basePoint, &defaults::defaultBasePoint);
317 
318  std::vector<double> tmpScale, defaultTmpScale = { defaults::defaultScale[0], defaults::defaultScale[1] };
319 
320  parserAirfoil->get("scale", tmpScale, &defaultTmpScale);
321  switch (tmpScale.size())
322  {
323  case 1:
324  prm.scale[0] = prm.scale[1] = tmpScale[0];
325  break;
326  case 2:
327  prm.scale[0] = tmpScale[0];
328  prm.scale[1] = tmpScale[1];
329  break;
330  default:
331  info('e') << "Error in _scale_ value for airfoil" << std::endl;
332  exit(1);
333  }
334  //parserAirfoil->get("scale", prm.scalexy, &defaults::defaultScale);
335 
336 
337  parserAirfoil->get("angle", prm.angle, &defaults::defaultAngle);
338  prm.angle *= PI / 180.0;
339 
340  parserAirfoil->get("chord", prm.chord, &defaults::defaultChord);
341 
342  parserAirfoil->get("addedMass", prm.addedMass, &defaults::defaultAddedMass);
343 
344 
345  parserAirfoil->get("inverse", prm.inverse, &defaults::defaultInverse);
346  parserAirfoil->get("mechanicalSystem", prm.mechanicalSystem, &defaults::defaultMechanicalSystem);
347 
349  {
350  prm.mechanicalSystemType = 0;
352  }
353  else
354  {
355  std::unique_ptr<VMlib::StreamParser> parserMechanicsList;
356  std::unique_ptr<VMlib::StreamParser> parserSwitchers;
357  parserMechanicsList.reset(new VMlib::StreamParser(info, "mechanical parser", mechanicsStream, defaultStream, switcherStream, varsStream, { prm.mechanicalSystem }));
358  parserSwitchers.reset(new VMlib::StreamParser(info, "switchers parser" ,switcherStream));
359 
360  std::string mechString;
361 
362  parserMechanicsList->get(prm.mechanicalSystem, mechString);
363 
364  //делим тип мех.системы + выражение в скобках (ее параметры) на 2 подстроки
365  std::pair<std::string, std::string> mechanicsLine = VMlib::StreamParser::SplitString(info, mechString);
366 
367  std::string mechTypeAlias = mechanicsLine.first;
368  parserSwitchers->get(mechTypeAlias, prm.mechanicalSystemType);
369 
370  //вторую подстроку разделяем на вектор из строк по запятым, стоящим вне фигурных скобок
371  std::vector<std::string> vecMechLineSecond = VMlib::StreamParser::StringToVector(mechanicsLine.second, '{', '}');
373  }
374 
375  //отправляем считанные параметры профиля в структуру данных паспорта
376  airfoilParams.push_back(prm);
377 
378  } //for i
379 }//GetAllParamsFromParser(...)
const int defaultSaveVisStress
Шаг подсчета поля скорости и давления
Definition: defs.h:108
const double defaultChord
Хорда
Definition: defs.h:188
std::pair< std::string, int > fileTypeVP
Тип файлов для сохранения скорости и давления
Definition: PassportGen.h:76
const std::string defaultWakesDir
Каталог с файлами вихревых следов
Definition: defs.h:161
std::pair< std::string, int > velocityComputation
Definition: Passport2D.h:190
bool geographicalAngles
Признак работы в "географической" системе координат
Definition: Passport2D.h:283
double eps
Радиус вихря
Definition: Passport2D.h:139
const bool defaultGeographicalAngles
Признак работы в "географической" системе координат
Definition: defs.h:145
const double defaultAngle
Угол атаки
Definition: defs.h:185
int saveVtxStep
Шаг сохранения кадров в бинарные файлы
Definition: PassportGen.h:73
const double PI
Число .
Definition: defs.h:73
const double defaultVRef
Референсная скорость, равная нулю, что означает ее равенство скорости набегающего потока ...
Definition: defs.h:126
double delta
Расстояние, на которое рождаемый вихрь отодвигается от профиля
Definition: Passport2D.h:151
bool inverse
Признак разворота нормалей (для расчета внутреннего течения)
Definition: Passport2D.h:237
double timeStop
Конечное время
Definition: PassportGen.h:62
double timeAccel
Время разгона потока
Definition: Passport2D.h:87
std::pair< std::string, int > boundaryCondition
Метод аппроксимации граничных условий
Definition: Passport2D.h:199
const int defaultVortexPerPanel
Число вихрей, рождаемых на одной панели
Definition: defs.h:120
const std::pair< std::pair< std::string, int >, std::string > defaultSaveVP
Шаг подсчета поля скорости и давления
Definition: defs.h:100
int mechanicalSystemType
Тип механической системы
Definition: Passport2D.h:240
double vRef
Референсная скорость
Definition: Passport2D.h:81
int nameLength
Число разрядов в имени файла
Definition: PassportGen.h:68
const std::pair< std::pair< std::string, int >, std::string > defaultVelAccel
Время разгона
Definition: defs.h:96
double maxGamma
Максимально допустимая циркуляция вихря
Definition: Passport2D.h:157
const std::pair< std::string, int > defaultPanelsType
Тип панелей
Definition: defs.h:132
const double defaultTimeAccel
Definition: defs.h:97
double nu
Коэффициент кинематической вязкости среды
Definition: Passport2D.h:96
const bool defaultCalcCoefficients
Признак расчета безразмерных коэффициентов вместо сил
Definition: defs.h:151
P length() const
Вычисление 2-нормы (длины) вектора
Definition: numvector.h:371
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition: Passport2D.h:296
const std::pair< std::pair< std::string, int >, std::string > defaultSaveVtx
Шаг подсчета поля скорости и давления
Definition: defs.h:104
const VMlib::Point2D defaultBasePoint
Базовое смещение профиля
Definition: defs.h:178
bool calcCoefficients
Признак вычисления коэффициентов вместо сил
Definition: Passport2D.h:289
double dt
Шаг по времени
Definition: PassportGen.h:65
const Point2D defaultScale
Коэффициент масштабирования профиля
Definition: defs.h:182
const std::pair< std::string, int > defaultBoundaryCondition
Способ удовлетворения граничного условия
Definition: defs.h:135
size_t requiredNPanels
Желаемое число панелей для разбиения геометрии
Definition: Passport2D.h:219
double angle
Угол поворота (угол атаки)
Definition: Passport2D.h:231
double rotateAngleVpPoints
Угол поворота точек VP.
Definition: Passport2D.h:292
TimeDiscretizationProperties timeDiscretizationProperties
Структура с параметрами процесса интегрирования по времени
Definition: PassportGen.h:127
const std::vector< std::string > defaultAirfoil({})
Список профилей
Point2D vInf
Скоростью набегающего потока
Definition: Passport2D.h:78
const double defaultMaxGamma
Число вихрей, рождаемых на одной панели
Definition: defs.h:123
static std::vector< std::string > StringToVector(std::string line, char openBracket= '(', char closeBracket= ')')
Pазбор строки, содержащей запятые, на отдельные строки
const size_t defaultRequiredNPanels
Желаемое число панелей для разбиения геометрии
Definition: defs.h:129
double timeStart
Начальное время
Definition: PassportGen.h:59
double chord
Хорда
Definition: Passport2D.h:228
double rho
Плотность потока
Definition: Passport2D.h:75
std::string fileSource
Имя файла с положениями источников (без полного пути)
Definition: Passport2D.h:163
int saveVPstep
Шаг вычисления и сохранения скорости и давления
Definition: PassportGen.h:78
NumericalSchemes numericalSchemes
Структура с используемыми численными схемами
Definition: Passport2D.h:302
const Point2D defaultAddedMass
Присоединенная масса
Definition: defs.h:191
Point2D basePoint
Смещение центра масс (перенос профиля)
Definition: Passport2D.h:222
const bool defaultRotateForces
Признак поворота сил в профильную систему координат
Definition: defs.h:148
static std::pair< std::string, std::string > SplitString(LogStream &info, std::string line, bool upcase=true)
Разбор строки на пару ключ-значение
const std::pair< std::string, int > defaultLinearSystemSolver
Способ решения линейной системы
Definition: defs.h:138
const int defaultSaveVPstep
Definition: defs.h:101
Структура, задающая параметры профиля
Definition: Passport2D.h:213
std::string fileWake
Имя файла с начальным состоянием вихревого следа (без полного пути)
Definition: Passport2D.h:160
const std::pair< std::string, int > defaultVelocityComputation
Способ вычисления скоростей вихрей
Definition: defs.h:142
const int defaultNameLength
Число разрядов в имени файла
Definition: defs.h:111
std::pair< std::string, int > fileTypeVtx
Тип файлов для сохранения скорости и давления
Definition: PassportGen.h:71
std::pair< std::string, int > typeAccel
Способ разгона потока
Definition: Passport2D.h:84
std::pair< std::string, int > panelsType
Тип панелей (0 — прямые)
Definition: Passport2D.h:196
const std::string defaultFileSource("")
Файл с источниками
const std::string defaultFileWake("")
Файл со следом
int minVortexPerPanel
Минимальное число вихрей, рождаемых на каждой панели профииля
Definition: Passport2D.h:154
static std::string VectorStringToString(const std::vector< std::string > &_vecString)
Объединение вектора (списка) из строк в одну строку
std::string fileAirfoil
Имя файла с начальным состоянием профилей (без полного пути)
Definition: Passport2D.h:216
const double defaultTimeStart
Начало расчета
Definition: defs.h:93
int saveVisStress
Шаг вычисления и сохранения скорости и давления
Definition: PassportGen.h:81
std::string mechanicalSystemParameters
Definition: Passport2D.h:242
const double defaultDelta
Расстояние, на которое рождаемый вихрь отодвигается от профиля
Definition: defs.h:117
LogStream info
Поток для вывода логов и сообщений об ошибках
Definition: PassportGen.h:111
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition: Passport2D.h:280
std::string wakesDir
Каталог с файлами вихревых следов
Definition: Passport2D.h:277
WakeDiscretizationProperties wakeDiscretizationProperties
Структура с параметрами дискретизации вихревого следа
Definition: Passport2D.h:299
const std::string defaultMechanicalSystem
Definition: defs.h:198
const double defaultDistFar
Радиус убивания дальнего следа
Definition: defs.h:114
Point2D scale
Коэффициент масштабирования
Definition: Passport2D.h:225
const int defaultSaveVtxStep
Definition: defs.h:105
const std::string defaultAirfoilsDir
Каталог с файлами профилей
Definition: defs.h:157
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: StreamParser.h:151
bool get(const std::string &name, std::vector< Point2D > &res, const std::vector< Point2D > *defValue=nullptr, bool echoDefault=true) const
Считывание вектора из двумерных точек из базы данных
Definition: StreamParser.h:314
double eps2
Квадрат радиуса вихря
Definition: Passport2D.h:142
const double rotateAngleVpPoints
Угол поворота точек VP.
Definition: defs.h:154
double distFar
Расстояние от центра самого подветренного (правого) профиля, на котором вихри уничтожаются ...
Definition: Passport2D.h:148
double epscol
Радиус коллапса
Definition: Passport2D.h:145
const bool defaultInverse
Признак разворота нормалей (для расчета внутреннего течения)
Definition: defs.h:194
bool rotateForces
Признак поворота вычисляемых сил в профильную систему координат
Definition: Passport2D.h:286

Here is the call graph for this function:

Here is the caller graph for this function:

void Passport::PrintAllParams ( )
overrideprivatevirtual

Печать всех параметров расчета в поток логов

Implements VMlib::PassportGen.

Definition at line 383 of file Passport2D.cpp.

384 {
385  const std::string str = "passport info: ";
386 
387  info('i') << "--- Passport info ---" << std::endl;
388  info('-') << "rho = " << physicalProperties.rho << std::endl;
389  info('-') << "vInf = " << physicalProperties.vInf << std::endl;
390  info('-') << "vRef = " << physicalProperties.vRef << std::endl;
391  info('-') << "velAccel = " << physicalProperties.typeAccel.first << "( " << physicalProperties.timeAccel << " )" << std::endl;
392 
393  info('-') << "nu = " << physicalProperties.nu << std::endl;
394  info('-') << "timeStart = " << timeDiscretizationProperties.timeStart << std::endl;
395  info('-') << "timeStop = " << timeDiscretizationProperties.timeStop << std::endl;
396  info('-') << "dt = " << timeDiscretizationProperties.dt << std::endl;
397  info('-') << "nameLength = " << timeDiscretizationProperties.nameLength << std::endl;
398  info('-') << "saveVtx = " << timeDiscretizationProperties.fileTypeVtx.first << "( " << timeDiscretizationProperties.saveVtxStep << " )" << std::endl;
399  info('-') << "saveVP = " << timeDiscretizationProperties.fileTypeVP.first << "( " << timeDiscretizationProperties.saveVPstep << " )" << std::endl;
400  info('-') << "saveVisStress = " << timeDiscretizationProperties.saveVisStress << std::endl;
401  info('-') << "eps = " << wakeDiscretizationProperties.eps << std::endl;
402  info('-') << "eps2 = " << wakeDiscretizationProperties.eps2 << std::endl;
403  info('-') << "epscol = " << wakeDiscretizationProperties.epscol << std::endl;
404  info('-') << "distFar = " << wakeDiscretizationProperties.distFar << std::endl;
405  info('-') << "delta = " << wakeDiscretizationProperties.delta << std::endl;
406  info('-') << "vortexPerPanel = " << wakeDiscretizationProperties.minVortexPerPanel << std::endl;
407  info('-') << "maxGamma = " << ((wakeDiscretizationProperties.maxGamma == 1e+10) ? 0.0 : wakeDiscretizationProperties.maxGamma) << std::endl;
408  info('-') << "linearSystemSolver = " << numericalSchemes.linearSystemSolver.first << std::endl;
409  info('-') << "velocityComputation = " << numericalSchemes.velocityComputation.first << std::endl;
410  //info('-') << "wakeMotionIntegrator = " << numericalSchemes.wakeMotionIntegrator << std::endl;
411  info('_') << "panelType = " << numericalSchemes.panelsType.first << std::endl;
412  info('_') << "boundaryCondition = " << numericalSchemes.boundaryCondition.first << std::endl;
413 
414  info('-') << "airfoilsDir = " << airfoilsDir << std::endl;
415  info('-') << "wakesDir = " << wakesDir << std::endl;
416 
417  info('-') << "geographicalAngles = " << geographicalAngles << std::endl;
418  info('-') << "rotateForces = " << rotateForces << std::endl;
419  info('-') << "calcCoefficients = " << calcCoefficients << std::endl;
420  info('-') << "rotateVpPoints = " << rotateAngleVpPoints << std::endl;
421 
422 
423 
424  info('-') << "number of airfoils = " << airfoilParams.size() << std::endl;
425  for (size_t q = 0; q < airfoilParams.size(); ++q)
426  {
427  info('_') << "airfoil[" << q << "]_file = " << airfoilParams[q].fileAirfoil << std::endl;
428  info('_') << "airfoil[" << q << "]_requiredNPanels = " << airfoilParams[q].requiredNPanels << std::endl;
429  info('_') << "airfoil[" << q << "]_basePoint = " << airfoilParams[q].basePoint << std::endl;
430  info('_') << "airfoil[" << q << "]_scale = " << airfoilParams[q].scale << std::endl;
431  info('_') << "airfoil[" << q << "]_angle = " << airfoilParams[q].angle << std::endl;
432  info('_') << "airfoil[" << q << "]_chord = " << airfoilParams[q].chord << std::endl;
433  info('_') << "airfoil[" << q << "]_inverse = " << (airfoilParams[q].inverse ? "true": "false") << std::endl;
434  info('_') << "airfoil[" << q << "]_mechanicalSystem = " << airfoilParams[q].mechanicalSystem << std::endl;
435  }
436 
437  info('-') << "fileWake = " << wakeDiscretizationProperties.fileWake << std::endl;
438  info('-') << "fileSource = " << wakeDiscretizationProperties.fileSource << std::endl;
439 }
std::pair< std::string, int > fileTypeVP
Тип файлов для сохранения скорости и давления
Definition: PassportGen.h:76
std::pair< std::string, int > velocityComputation
Definition: Passport2D.h:190
bool geographicalAngles
Признак работы в "географической" системе координат
Definition: Passport2D.h:283
double eps
Радиус вихря
Definition: Passport2D.h:139
int saveVtxStep
Шаг сохранения кадров в бинарные файлы
Definition: PassportGen.h:73
double delta
Расстояние, на которое рождаемый вихрь отодвигается от профиля
Definition: Passport2D.h:151
double timeStop
Конечное время
Definition: PassportGen.h:62
double timeAccel
Время разгона потока
Definition: Passport2D.h:87
std::pair< std::string, int > boundaryCondition
Метод аппроксимации граничных условий
Definition: Passport2D.h:199
double vRef
Референсная скорость
Definition: Passport2D.h:81
int nameLength
Число разрядов в имени файла
Definition: PassportGen.h:68
double maxGamma
Максимально допустимая циркуляция вихря
Definition: Passport2D.h:157
double nu
Коэффициент кинематической вязкости среды
Definition: Passport2D.h:96
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition: Passport2D.h:296
bool calcCoefficients
Признак вычисления коэффициентов вместо сил
Definition: Passport2D.h:289
double dt
Шаг по времени
Definition: PassportGen.h:65
double rotateAngleVpPoints
Угол поворота точек VP.
Definition: Passport2D.h:292
TimeDiscretizationProperties timeDiscretizationProperties
Структура с параметрами процесса интегрирования по времени
Definition: PassportGen.h:127
Point2D vInf
Скоростью набегающего потока
Definition: Passport2D.h:78
double timeStart
Начальное время
Definition: PassportGen.h:59
double rho
Плотность потока
Definition: Passport2D.h:75
std::string fileSource
Имя файла с положениями источников (без полного пути)
Definition: Passport2D.h:163
int saveVPstep
Шаг вычисления и сохранения скорости и давления
Definition: PassportGen.h:78
NumericalSchemes numericalSchemes
Структура с используемыми численными схемами
Definition: Passport2D.h:302
std::string fileWake
Имя файла с начальным состоянием вихревого следа (без полного пути)
Definition: Passport2D.h:160
std::pair< std::string, int > fileTypeVtx
Тип файлов для сохранения скорости и давления
Definition: PassportGen.h:71
std::pair< std::string, int > typeAccel
Способ разгона потока
Definition: Passport2D.h:84
std::pair< std::string, int > panelsType
Тип панелей (0 — прямые)
Definition: Passport2D.h:196
int minVortexPerPanel
Минимальное число вихрей, рождаемых на каждой панели профииля
Definition: Passport2D.h:154
int saveVisStress
Шаг вычисления и сохранения скорости и давления
Definition: PassportGen.h:81
LogStream info
Поток для вывода логов и сообщений об ошибках
Definition: PassportGen.h:111
std::vector< AirfoilParams > airfoilParams
Список структур с параметрами профилей
Definition: Passport2D.h:280
std::string wakesDir
Каталог с файлами вихревых следов
Definition: Passport2D.h:277
WakeDiscretizationProperties wakeDiscretizationProperties
Структура с параметрами дискретизации вихревого следа
Definition: Passport2D.h:299
std::string airfoilsDir
Каталог с файлами профилей
Definition: Passport2D.h:274
std::pair< std::string, int > linearSystemSolver
Definition: Passport2D.h:187
double eps2
Квадрат радиуса вихря
Definition: Passport2D.h:142
double distFar
Расстояние от центра самого подветренного (правого) профиля, на котором вихри уничтожаются ...
Definition: Passport2D.h:148
double epscol
Радиус коллапса
Definition: Passport2D.h:145
bool rotateForces
Признак поворота вычисляемых сил в профильную систему координат
Definition: Passport2D.h:286

Here is the caller graph for this function:

Member Data Documentation

std::vector<AirfoilParams> VM2D::Passport::airfoilParams

Список структур с параметрами профилей

Definition at line 280 of file Passport2D.h.

std::string VM2D::Passport::airfoilsDir

Каталог с файлами профилей

Definition at line 274 of file Passport2D.h.

bool VM2D::Passport::calcCoefficients

Признак вычисления коэффициентов вместо сил

Definition at line 289 of file Passport2D.h.

std::string VMlib::PassportGen::dir
inherited

Рабочий каталог задачи

Definition at line 118 of file PassportGen.h.

bool VM2D::Passport::geographicalAngles

Признак работы в "географической" системе координат

Definition at line 283 of file Passport2D.h.

LogStream VMlib::PassportGen::info
mutableprotectedinherited

Поток для вывода логов и сообщений об ошибках

Definition at line 111 of file PassportGen.h.

NumericalSchemes VM2D::Passport::numericalSchemes

Структура с используемыми численными схемами

Definition at line 302 of file Passport2D.h.

PhysicalProperties VM2D::Passport::physicalProperties

Структура с физическими свойствами задачи

Definition at line 296 of file Passport2D.h.

std::string VMlib::PassportGen::problemName
inherited

Название задачи

Definition at line 121 of file PassportGen.h.

size_t VMlib::PassportGen::problemNumber
inherited

Номер задачи

Definition at line 124 of file PassportGen.h.

double VM2D::Passport::rotateAngleVpPoints

Угол поворота точек VP.

Definition at line 292 of file Passport2D.h.

bool VM2D::Passport::rotateForces

Признак поворота вычисляемых сил в профильную систему координат

Definition at line 286 of file Passport2D.h.

TimeDiscretizationProperties VMlib::PassportGen::timeDiscretizationProperties
inherited

Структура с параметрами процесса интегрирования по времени

Definition at line 127 of file PassportGen.h.

WakeDiscretizationProperties VM2D::Passport::wakeDiscretizationProperties

Структура с параметрами дискретизации вихревого следа

Definition at line 299 of file Passport2D.h.

std::string VM2D::Passport::wakesDir

Каталог с файлами вихревых следов

Definition at line 277 of file Passport2D.h.


The documentation for this class was generated from the following files: