VM2D  1.12
Vortex methods for 2D flows simulation
WorldGen.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: WorldGen.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 
28 
37 #ifndef WORLDGEN_H
38 #define WORLDGEN_H
39 
40 #include <memory>
41 
42 #include "TimesGen.h"
43 
44 namespace VMlib
45 {
46  class PassportGen;
47  class TimesGen;
48 
55  class WorldGen
56  {
57  protected:
59  mutable LogStream info;
60 
63 
65  std::unique_ptr<TimesGen> timestat;
66 
67  public:
69  size_t currentStep;
74  VMlib::LogStream& getInfo() const { return info; };
75 
81  std::ostream& getInfo(char x) const { return info(x); };
82 
87 
91  size_t getCurrentStep() const { return currentStep; };
92 
93  const PassportGen& getPassportGen() { return passportGen; };
94 
98  bool isFinished() const;
99 
103  WorldGen(const VMlib::PassportGen& passport_);
104 
106  virtual ~WorldGen() {};
107 
109  //virtual void ZeroStep() = 0;
110 
112  virtual void Step() = 0;
113  };
114 
115 }//namespace VMlib
116 
117 #endif
118 
Класс, определяющий работу с потоком логов
Definition: LogStream.h:53
const PassportGen & getPassportGen()
Definition: WorldGen.h:93
LogStream info
Поток для вывода логов и сообщений об ошибках
Definition: WorldGen.h:59
bool isFinished() const
Функция, возвращающая признак завершения счета в решаемой задаче
Definition: WorldGen.cpp:49
WorldGen(const VMlib::PassportGen &passport_)
Конструктор
Definition: WorldGen.cpp:44
virtual void Step()=0
Функция выполнения предварительного шага
virtual ~WorldGen()
Деструктор
Definition: WorldGen.h:106
std::ostream & getInfo(char x) const
Возврат ссылки на поток вывода информации Необходимо для вывода телеметрической информации, информации об ошибках и т.п.
Definition: WorldGen.h:81
std::unique_ptr< TimesGen > timestat
Сведения о временах выполнения основных операций
Definition: WorldGen.h:65
const PassportGen & passportGen
Константная ссылка на паспорт конкретного расчета
Definition: WorldGen.h:62
Заголовочный файл с описанием класса TimesGen.
Абстрактный класс, опеделяющий паспорт задачи
Definition: PassportGen.h:91
VMlib::LogStream & getInfo() const
Возврат ссылки на объект LogStream Используется в техничеcких целях для организации вывода ...
Definition: WorldGen.h:74
Класс, опеделяющий текущую решаемую задачу
Definition: WorldGen.h:55
size_t currentStep
Текущий номер шага в решаемой задаче
Definition: WorldGen.h:69
size_t getCurrentStep() const
Возврат константной ссылки на параметры распараллеливания по MPI.
Definition: WorldGen.h:91