-
Notifications
You must be signed in to change notification settings - Fork 978
Expand file tree
/
Copy pathCSU2MeshReaderBase.hpp
More file actions
84 lines (70 loc) · 3.7 KB
/
CSU2MeshReaderBase.hpp
File metadata and controls
84 lines (70 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*!
* \file CSU2MeshReaderBase.hpp
* \brief Header file for the class CSU2MeshReaderBase.
* The implementations are in the <i>CSU2MeshReaderBase.cpp</i> file.
* \author T. Economon
* \version 8.2.0 "Harrier"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
* Copyright 2012-2025, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* SU2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with SU2. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <array>
#include "CMeshReaderBase.hpp"
/*!
* \class CSU2MeshReaderBase
* \brief Base class for the reading of a native SU2 grid.
* \author T. Economon
*/
class CSU2MeshReaderBase : public CMeshReaderBase {
protected:
const unsigned short myZone; /*!< \brief Current SU2 zone index. */
const unsigned short nZones; /*!< \brief Total number of zones in the SU2 file. */
const string meshFilename; /*!< \brief Name of the SU2 ASCII mesh file being read. */
bool actuator_disk; /*!< \brief Boolean for whether we have an actuator disk to split. */
unsigned long ActDiskNewPoints =
0; /*!< \brief Total number of new grid points to add due to actuator disk splitting. */
su2double Xloc = 0.0; /*!< \brief X-coordinate of the CG of the actuator disk surface. */
su2double Yloc = 0.0; /*!< \brief X-coordinate of the CG of the actuator disk surface. */
su2double Zloc = 0.0; /*!< \brief X-coordinate of the CG of the actuator disk surface. */
vector<bool> ActDisk_Bool; /*!< \brief Flag to identify the grid points on the actuator disk. */
vector<unsigned long> ActDiskPoint_Back; /*!< \brief Vector containing the global index for the new grid points added
to the back of the actuator disk. */
vector<unsigned long> VolumePoint_Inv; /*!< \brief Vector containing the inverse mapping from the global index to the
added point index for the actuator disk. */
vector<su2double> CoordXActDisk; /*!< \brief X-coordinates of the new grid points added by splitting the actuator disk
(size = ActDiskNewPoints). */
vector<su2double> CoordYActDisk; /*!< \brief Y-coordinates of the new grid points added by splitting the actuator disk
(size = ActDiskNewPoints). */
vector<su2double> CoordZActDisk; /*!< \brief Z-coordinates of the new grid points added by splitting the actuator disk
(size = ActDiskNewPoints). */
vector<su2double> CoordXVolumePoint; /*!< \brief X-coordinates of the volume elements touching the actuator disk. */
vector<su2double> CoordYVolumePoint; /*!< \brief Y-coordinates of the volume elements touching the actuator disk. */
vector<su2double> CoordZVolumePoint; /*!< \brief Z-coordinates of the volume elements touching the actuator disk. */
public:
/*!
* \brief Constructor of the CSU2MeshReaderBase class.
*/
CSU2MeshReaderBase(CConfig* val_config, unsigned short val_iZone, unsigned short val_nZone);
/*!
* \brief Destructor of the CSU2MeshReaderBase class.
*/
~CSU2MeshReaderBase(void) override;
};