VM2D  1.12
Vortex methods for 2D flows simulation
PassportGen.h
Go to the documentation of this file.
1 /*--------------------------------*- VMlib -*----------------*---------------*\
2 | ## ## ## ## ## ## ## | | Version 1.12 |
3 | ## ## ### ### ## ## | VMlib: VM2D/VM3D Library | 2024/01/14 |
4 | ## ## ## # ## ## ## #### | Open Source Code *----------------*
5 | #### ## ## ## ## ## ## | https://www.github.com/vortexmethods/VM2D |
6 | ## ## ## #### ### #### | https://www.github.com/vortexmethods/VM3D |
7 | |
8 | Copyright (C) 2017-2024 Ilia Marchevsky |
9 *-----------------------------------------------------------------------------*
10 | File name: PassportGen.h |
11 | Info: Source code of VMlib |
12 | |
13 | This file is part of VMlib. |
14 | VMLib 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 | VMlib 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 VMlib. If not, see <http://www.gnu.org/licenses/>. |
26 \*---------------------------------------------------------------------------*/
27 
36 #ifndef PASSPORTGEN_H
37 #define PASSPORTGEN_H
38 
39 #include <iostream>
40 #include <memory>
41 #include <vector>
42 
43 #include "LogStream.h"
44 
45 namespace VMlib
46 {
54  {
56  mutable double currTime;
57 
59  double timeStart;
60 
62  double timeStop;
63 
65  double dt;
66 
69 
71  std::pair<std::string, int> fileTypeVtx;
74 
76  std::pair<std::string, int> fileTypeVP;
79 
82  };//TimeDiscretizationProperties
83 
84 
92  {
93  protected:
101  virtual void GetAllParamsFromParser
102  (
103  std::istream& mainStream,
104  std::istream& mechanicsStream,
105  std::istream& defaultStream,
106  std::istream& switcherStream,
107  std::istream& varsStream
108  ) = 0;
109 
111  mutable LogStream info;
112 
114  virtual void PrintAllParams() = 0;
115 
116  public:
118  std::string dir;
119 
121  std::string problemName;
122 
125 
128 
142  (
143  LogStream& infoStream,
144  const std::string& _problemName,
145  const size_t _problemNumber,
146  const std::string& _filePassport,
147  const std::string& _mechanics,
148  const std::string& _defaults,
149  const std::string& _switchers,
150  const std::vector<std::string>& vars
151  );
152 
154  virtual ~PassportGen() { };
155  };
156 
157 }//namespace VMlib
158 
159 
160 #endif
161 
std::pair< std::string, int > fileTypeVP
Тип файлов для сохранения скорости и давления
Definition: PassportGen.h:76
int saveVtxStep
Шаг сохранения кадров в бинарные файлы
Definition: PassportGen.h:73
Класс, определяющий работу с потоком логов
Definition: LogStream.h:53
std::string problemName
Название задачи
Definition: PassportGen.h:121
double timeStop
Конечное время
Definition: PassportGen.h:62
int nameLength
Число разрядов в имени файла
Definition: PassportGen.h:68
double currTime
Текущее время
Definition: PassportGen.h:56
virtual ~PassportGen()
Деструктор
Definition: PassportGen.h:154
Заголовочный файл с описанием класса LogStream.
std::string dir
Рабочий каталог задачи
Definition: PassportGen.h:118
Структура, задающая параметры процесса интегрирования по времени
Definition: PassportGen.h:53
double dt
Шаг по времени
Definition: PassportGen.h:65
TimeDiscretizationProperties timeDiscretizationProperties
Структура с параметрами процесса интегрирования по времени
Definition: PassportGen.h:127
Абстрактный класс, опеделяющий паспорт задачи
Definition: PassportGen.h:91
double timeStart
Начальное время
Definition: PassportGen.h:59
int saveVPstep
Шаг вычисления и сохранения скорости и давления
Definition: PassportGen.h:78
size_t problemNumber
Номер задачи
Definition: PassportGen.h:124
std::pair< std::string, int > fileTypeVtx
Тип файлов для сохранения скорости и давления
Definition: PassportGen.h:71
int saveVisStress
Шаг вычисления и сохранения скорости и давления
Definition: PassportGen.h:81
LogStream info
Поток для вывода логов и сообщений об ошибках
Definition: PassportGen.h:111