VM2D  1.12
Vortex methods for 2D flows simulation
Vortex2D.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: Vortex2D.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 VORTEX2D_H_
38 #define VORTEX2D_H_
39 
40 #include "Point2D.h"
41 
42 namespace VMlib
43 {
44 
51  class Vortex2D
52  {
53  private:
56 
58  double gam;
59 
60  public:
61 
62 //#ifndef __CUDACC__
63 // /// MPI-описатель типа
64 // static MPI_Datatype mpiVortex2D;
65 //#endif
66 
67  static size_t offsPos;
68  static size_t offsGam;
69 
71  HD Vortex2D() {};
72 
77  HD Vortex2D(const Point2D& _r, const double _g)
78  : pos(_r), gam(_g) {};
79 
81  HD ~Vortex2D() {};
82 
85  HD Point2D& r() { return pos; }
86 
89  HD const Point2D& r() const { return pos; }
90 
93  HD double& g() { return gam; }
94 
97  HD const double& g() const { return gam; }
98 
99 //#ifndef __CUDACC__
100 // /// Cоздание MPI-описателя типа
101 // static void CreateMpiType();
102 //#endif
103  };
104 
107 
108 }//namespace VMlib
109 
110 using VMlib::Vortex2D;
111 #endif
112 
Point2D pos
Радиус-вектор вихря
Definition: Vortex2D.h:55
HD const Point2D & r() const
Функция для доступа для чтения к радиус-вектору вихря
Definition: Vortex2D.h:89
static size_t offsGam
Definition: Vortex2D.h:68
Заголовочный файл с описанием класса Point2D.
HD Point2D & r()
Функция для доступа к радиус-вектору вихря
Definition: Vortex2D.h:85
HD double & g()
Функция для доступа к циркуляции вихря
Definition: Vortex2D.h:93
HD const double & g() const
Функция для доступа для чтения к циркуляции вихря
Definition: Vortex2D.h:97
HD Vortex2D(const Point2D &_r, const double _g)
Конструктор инициализации
Definition: Vortex2D.h:77
double gam
Циркуляция вихря
Definition: Vortex2D.h:58
static size_t offsPos
Definition: Vortex2D.h:67
Класс, опеделяющий двумерный вектор
Definition: Point2D.h:75
Vortex2D Source2D
Определение типа данных - источника, имеющего ту же структуру, что и вихрь
Definition: Vortex2D.h:106
Класс, опеделяющий двумерный вихревой элемент
Definition: Vortex2D.h:51
#define HD
Definition: numvector.h:60
HD ~Vortex2D()
Деструктор
Definition: Vortex2D.h:81
HD Vortex2D()
Пустой конструктор
Definition: Vortex2D.h:71