VM2D  1.12
Vortex methods for 2D flows simulation
Times2D.cpp
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: Times2D.cpp |
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 
40 #include "Times2D.h"
41 
42 #include "Airfoil2D.h"
43 #include "Boundary2D.h"
44 #include "MeasureVP2D.h"
45 #include "Mechanics2D.h"
46 #include "Passport2D.h"
47 #include "StreamParser.h"
48 #include "Velocity2D.h"
49 #include "Wake2D.h"
50 #include "World2D.h"
51 
52 using namespace VM2D;
53 
54 //Генерация заголовка файла временной статистики
56 {
57  std::stringstream timeStatFileName;
58  timeStatFileName << W.getPassport().dir << "timestat";
59 
60  std::ofstream timeStatFile(timeStatFileName.str());
61  VMlib::PrintLogoToTextFile(timeStatFile, timeStatFileName.str(), "Time statistics");
62 
63  VMlib::PrintHeaderToTextFile(timeStatFile, "step Time N tStep tMem tMatRhs tSolve tConvVelo tDiffVelo tForce tVelPres tMove tInside tRestr tWakeSort tSave tOther");
64 
65  timeStatFile.close();
66  timeStatFile.clear();
67 }//GenerateStatHeader()
68 
69 
70 
71 //Сохранение строки со статистикой в файл временной статистики
73 {
74  std::ofstream timestatFile(W.getPassport().dir + "timestat", std::ios::app);
75 
76  timestatFile << std::endl
77  << W.getCurrentStep() << "\t"
79  << W.getWake().vtx.size() << "\t"
80  << dT(timeWholeStep) << "\t"
82  << dT(timeFillMatrixAndRhs) << "\t"
83  << dT(timeSolveLinearSystem) << "\t"
84  << dT(timeCalcVortexConvVelo) << "\t"
85  << dT(timeCalcVortexDiffVelo) << "\t"
86  << dT(timeGetHydroDynamForce) << "\t"
87  << dT(timeVP) << "\t"
88  << dT(timeMoveVortexes) << "\t"
89  << dT(timeCheckInside) << "\t"
90  << dT(timeRestruct) << "\t"
91  << dT(timeWakeSort) << "\t"
92  << dT(timeSaveKadr) << "\t"
93  << dT(timeOther);
94 
95  timestatFile.close();
96 }//GenerateStatString()
97 
98 
99 //Обнуление состояния временной статистики
101 {
116 }// ToZero()
Заголовочный файл с описанием класса Passport (двумерный) и cоответствующими структурами ...
virtual void ToZero() override
Обнуление состояния временной статистики
Definition: Times2D.cpp:100
timePeriod timeCalcVortexDiffVelo
Начало и конец процесса вычисления диффузионных скоростей вихрей
Definition: Times2D.h:89
Заголовочный файл с описанием класса Wake.
Заголовочный файл с описанием класса World2D.
timePeriod timeRestruct
Начало и конец процесса реструктуризации пелены
Definition: Times2D.h:101
virtual void GenerateStatString() const override
Сохранение строки со статистикой в файл временной статистики
Definition: Times2D.cpp:72
double getCurrTime() const
Возвращает текуще время
Definition: Passport2D.h:102
const World2D & W
Константная ссылка на решаемую задачу
Definition: Times2D.h:63
Заголовочный файл с описанием класса Airfoil.
const Wake & getWake() const
Возврат константной ссылки на вихревой след
Definition: World2D.h:197
std::string dir
Рабочий каталог задачи
Definition: PassportGen.h:118
Заголовочный файл с описанием класса Mechanics.
PhysicalProperties physicalProperties
Структура с физическими свойствами задачи
Definition: Passport2D.h:296
timePeriod timeCalcVortexConvVelo
Начало и конец процесса вычисления конвективных скоростей вихрей
Definition: Times2D.h:86
Заголовочный файл с описанием класса Times.
void PrintHeaderToTextFile(std::ofstream &str, const std::string &header)
Формирование подзаголовка в текстовом файле вывода программы VM2D/VM3D.
Definition: defs.cpp:172
timePeriod timeMoveVortexes
Начало и конец процесса перемещения вихрей
Definition: Times2D.h:95
timePeriod timeSaveKadr
Начало и конец процесса сохранения кадра в файл
Definition: Times2D.h:107
static double dT(const timePeriod &t)
Definition: TimesGen.h:82
timePeriod timeSolveLinearSystem
Начало и конец процесса решения системы линейных алгебраических уравнений
Definition: Times2D.h:83
timePeriod timeGetHydroDynamForce
Начало и конец процесса вычисления нагрузок
Definition: Times2D.h:92
Definition: Airfoil2D.h:45
Заголовочный файл с описанием класса StreamParser.
std::vector< Vortex2D > vtx
Список вихревых элементов
timePeriod timeFillMatrixAndRhs
Начало и конец процесса заполнения матрицы и формирования правой части
Definition: Times2D.h:80
timePeriod timeCheckInside
Начало и конец процесса контроля протыкания
Definition: Times2D.h:98
void PrintLogoToTextFile(std::ofstream &str, const std::string &fileName, const std::string &descr)
Формирование заголовка файла программы VM2D/VM3D.
Definition: defs.cpp:136
Заголовочный файл с описанием класса MeasureVP.
const Passport & getPassport() const
Возврат константной ссылки на паспорт
Definition: World2D.h:222
timePeriod timeVP
Начало и конец процесса подсчета полей скоростей и давления и сохранения их в файл ...
Definition: Times2D.h:110
timePeriod timeReserveMemoryForMatrixAndRhs
Начало и конец процесса выделения памяти под матрицу и правую часть
Definition: Times2D.h:77
size_t getCurrentStep() const
Возврат константной ссылки на параметры распараллеливания по MPI.
Definition: WorldGen.h:91
virtual void GenerateStatHeader() const override
Генерация заголовка файла временной статистики
Definition: Times2D.cpp:55
static void ToZeroPeriod(timePeriod &period)
Definition: TimesGen.h:56
timePeriod timeWakeSort
Начало и конец процесса сортировки вихревого следа
Definition: Times2D.h:104
Заголовочный файл с описанием класса Velocity.
timePeriod timeWholeStep
Начало и конец процесса выполнения шага целиком
Definition: Times2D.h:71
timePeriod timeOther
Все прочее
Definition: Times2D.h:113
Заголовочный файл с описанием класса Boundary.