VM2D  1.12
Vortex methods for 2D flows simulation
MeasureVP2D.h
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: MeasureVP2D.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 
40 #ifndef MEASUREVP_H
41 #define MEASUREVP_H
42 
43 #include <memory>
44 
45 #include "defs.h"
46 
47 namespace VM2D
48 {
49  class WakeDataBase;
50  class World2D;
51 
64  class MeasureVP
65  {
66  private:
68  std::vector<Point2D> initialPoints;
69 
71  std::vector<Point2D> historyPoints;
72 
75  std::unique_ptr<WakeDataBase> wakeVP;
76 
78  std::vector<Point2D> velocity;
79 
81  std::vector<double> domainRadius;
82 
84  std::vector<double> pressure;
85 
87  //const double pInf = 1.0;
88 
89  protected:
91  const World2D& W;
92 
93  public:
97  MeasureVP(const World2D& W_);
98 
100  ~MeasureVP() { };
101 
105  void ReadPointsFromFile(const std::string& dir);
106 
109  void Initialization();
110 
112  void CalcPressure();
113 
115  void SaveVP();
116 
120  const WakeDataBase& getWakeVP() const { return *wakeVP; };
121 
125  const std::vector<Point2D>& getVelocity() const { return velocity; };
126 
130  std::vector<Point2D>& getNonConstVelocity() { return velocity; };
131 
135  const std::vector<double>& getDomainRadius() const { return domainRadius; };
136 
140  std::vector<double>& getNonConstDomainRadius() { return domainRadius; };
141 
142  };
143 
144 }//namespace VM2D
145 
146 #endif
std::vector< Point2D > initialPoints
Точки, которые считываются из файла (давление пишется в vtk-файлы)
Definition: MeasureVP2D.h:68
MeasureVP(const World2D &W_)
Конструктор
Definition: MeasureVP2D.cpp:65
void Initialization()
Инициализация векторов для вычисления скоростей и давлений Вызывается только на тех шагах расчета...
const World2D & W
Константная ссылка на решаемую задачу
Definition: MeasureVP2D.h:91
const std::vector< Point2D > & getVelocity() const
Возврат velocity.
Definition: MeasureVP2D.h:125
void ReadPointsFromFile(const std::string &dir)
Чтение точек, в которых нужно посчитать давление и скорость
Definition: MeasureVP2D.cpp:72
Описание базовых вспомогательных функций
void CalcPressure()
Расчет поля давления
Definition: Airfoil2D.h:45
std::vector< Point2D > & getNonConstVelocity()
Возврат velocity.
Definition: MeasureVP2D.h:130
std::vector< Point2D > velocity
Скорости в нужных точках
Definition: MeasureVP2D.h:78
~MeasureVP()
Деструктор
Definition: MeasureVP2D.h:100
Класс, отвечающий за вычисление поля скорости и давления в заданых точках для вывода ...
Definition: MeasureVP2D.h:64
std::vector< double > pressure
Давление в нужных точках
Definition: MeasureVP2D.h:84
std::vector< double > domainRadius
Радиусы вихрей в нужных точках
Definition: MeasureVP2D.h:81
std::vector< Point2D > historyPoints
Точки, которые считываются из файла (давление пишется в vtk и csv-файлы)
Definition: MeasureVP2D.h:71
void SaveVP()
Сохранение в файл вычисленных скоростей и давлений
std::unique_ptr< WakeDataBase > wakeVP
Умный указатель на точки, в которых нужно вычислять в данный момент времени Хранятся в виде "мнимой" ...
Definition: MeasureVP2D.h:75
const std::vector< double > & getDomainRadius() const
Возврат domainRadius.
Definition: MeasureVP2D.h:135
Класс, опеделяющий текущую решаемую задачу
Definition: World2D.h:68
Класс, опеделяющий набор вихрей
const WakeDataBase & getWakeVP() const
Возврат wakeVP.
Definition: MeasureVP2D.h:120
std::vector< double > & getNonConstDomainRadius()
Возврат domainRadius.
Definition: MeasureVP2D.h:140