VM2D 1.14
Vortex methods for 2D flows simulation
Loading...
Searching...
No Matches
WakeDataBase2D.h
Go to the documentation of this file.
1/*--------------------------------*- VM2D -*-----------------*---------------*\
2| ## ## ## ## #### ##### | | Version 1.14 |
3| ## ## ### ### ## ## ## ## | VM2D: Vortex Method | 2026/03/06 |
4| ## ## ## # ## ## ## ## | for 2D Flow Simulation *----------------*
5| #### ## ## ## ## ## | Open Source Code |
6| ## ## ## ###### ##### | https://www.github.com/vortexmethods/VM2D |
7| |
8| Copyright (C) 2017-2026 I. Marchevsky, K. Sokol, E. Ryatina, A. Kolganova |
9*-----------------------------------------------------------------------------*
10| File name: WakeDataBase2D.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 WAKEDATABASE2D_H
41#define WAKEDATABASE2D_H
42
43#include "defs.h"
44#include "Gpu2D.h"
45
46#if defined(USE_CUDA)
47 class VectorsForKnn;
48#endif
49
50namespace VM2D
51{
52 class World2D;
53
67 {
68 public:
69
71 const World2D& W;
72
77 : W(W_)
78 {};
79
81 std::vector<Vortex2D/*, VM2D::MyAlloc<Vortex2D>*/> vtx;
82
83#if defined(USE_CUDA)
84
86 mutable double* devVtxPtr;
87
89 mutable double* devVelPtr;
90 mutable double* devRadPtr;
91
92 mutable double* devI0Ptr;
93 mutable float* devI0fPtr;
94 mutable double* devI1Ptr;
95 mutable double* devI2Ptr;
96 mutable double* devI3Ptr;
97 mutable float* devI3fPtr;
98
99 //Данные для коллапса
100 mutable int* devMeshPtr;
101 mutable int* devNeiPtr;
102
103 mutable std::vector<numvector<int, 2>> mesh;
104
105 mutable VectorsForKnn* vecForKnn = nullptr;
106
107 mutable int* devNearestPanelPtr; //индекс ближайшей панели и код-положение на панели
108
109#endif
110
111 virtual ~WakeDataBase() {};
112
117 void ReadFromFile(const std::string& dir, const std::string& fileName);
118
120 void SaveKadrVtk(const std::string& filePrefix = "Kadr") const;
121 };
122
123}//namespace VM2D
124
125#endif
126
Заголовочный файл с описанием класса Gpu.
Класс, опеделяющий набор вихрей
std::vector< Vortex2D > vtx
Список вихревых элементов
void ReadFromFile(const std::string &dir, const std::string &fileName)
Считывание вихревого следа из файла
const World2D & W
Константная ссылка на решаемую задачу
WakeDataBase(const World2D &W_)
Конструктор инициализации
void SaveKadrVtk(const std::string &filePrefix="Kadr") const
Сохранение вихревого следа в файл .vtk.
Класс, опеделяющий текущую решаемую задачу
Definition World2D.h:74
Класс, опеделяющий двумерный вихревой элемент
Definition Vortex2D.h:59
Описание базовых вспомогательных функций