Documentation a537f1bdf2
Loading...
Searching...
No Matches
CVertexMPI.hpp
Go to the documentation of this file.
1/*!
2 * \file CVertexMPI.hpp
3 * \brief Headers of the main subroutines for storing the primal grid structure.
4 * The subroutines and functions are in the <i>primal_grid_structure.cpp</i> file.
5 * \author F. Palacios
6 * \version 8.5.0 "Harrier"
7 *
8 * SU2 Project Website: https://su2code.github.io
9 *
10 * The SU2 Project is maintained by the SU2 Foundation
11 * (http://su2foundation.org)
12 *
13 * Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)
14 *
15 * SU2 is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU Lesser General Public
17 * License as published by the Free Software Foundation; either
18 * version 2.1 of the License, or (at your option) any later version.
19 *
20 * SU2 is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * Lesser General Public License for more details.
24 *
25 * You should have received a copy of the GNU Lesser General Public
26 * License along with SU2. If not, see <http://www.gnu.org/licenses/>.
27 */
28
29#pragma once
30
31#include "CPrimalGrid.hpp"
32
33/*! \class CVertexMPIConnectivity
34 * Defines the connectivity of a vertex element for parallelization.
35 * See CPrimalGridWithConnectivity.
36 */
38 // All the index directions should actually have 0 elements, but we cannot declare arrays of length 0.
39 enum { nNodes = 1 };
40 enum { nFaces = 0 };
41 enum { maxNodesFace = 0 };
42 enum { VTK_Type = VERTEX };
43 static constexpr unsigned short nNodesFace[1] = {0};
44 static constexpr unsigned short Faces[1][1] = {{0}};
45 static constexpr unsigned short nNeighbor_Nodes[1] = {0};
46 static constexpr unsigned short Neighbor_Nodes[1][1] = {{0}};
47};
48
49/*!
50 * \class CVertexMPI
51 * \brief Class for vertex element definition. This kind
52 * of element is used in the parallelization stuff.
53 * \author F. Palacios
54 */
55class CVertexMPI final : public CPrimalGridWithConnectivity<CVertexMPIConnectivity> {
56 private:
57 /*! \brief Definition of the rotation, translation of the solution at the vertex. */
58 unsigned short Rotation_Type;
59
60 public:
61 /*!
62 * \brief Constructor using the nodes and index.
63 * \param[in] val_point - Index of the 1st triangle point read from the grid file.
64 */
65 CVertexMPI(unsigned long val_point);
66
67 /*!
68 * \brief Get the type of rotation/traslation that must be applied.
69 * \return Type of the element using VTK nomenclature.
70 */
71 inline unsigned short GetRotation_Type(void) const override { return Rotation_Type; }
72
73 /*!
74 * \brief Set the type of rotation/traslation that must be applied.
75 * \param[in] val_rotation_type - Kind of rotation/traslation that must be applied.
76 */
77 inline void SetRotation_Type(unsigned short val_rotation_type) override { Rotation_Type = val_rotation_type; }
78
79 inline void Change_Orientation() override {}
80};
Headers of the main subroutines for storing the primal grid structure. The subroutines and functions ...
Override the connectivity getters of CPrimalGrid.
Definition CPrimalGrid.hpp:468
Class for vertex element definition. This kind of element is used in the parallelization stuff.
Definition CVertexMPI.hpp:55
void Change_Orientation() override
A pure virtual member.
Definition CVertexMPI.hpp:79
unsigned short GetRotation_Type(void) const override
Get the type of rotation/traslation that must be applied.
Definition CVertexMPI.hpp:71
void SetRotation_Type(unsigned short val_rotation_type) override
Set the type of rotation/traslation that must be applied.
Definition CVertexMPI.hpp:77
@ VERTEX
VTK nomenclature for defining a vertex element.
Definition option_structure.hpp:132
Definition CVertexMPI.hpp:37
@ maxNodesFace
Definition CVertexMPI.hpp:41
static constexpr unsigned short Faces[1][1]
Definition CVertexMPI.hpp:44
@ nFaces
Definition CVertexMPI.hpp:40
static constexpr unsigned short nNeighbor_Nodes[1]
Definition CVertexMPI.hpp:45
static constexpr unsigned short nNodesFace[1]
Definition CVertexMPI.hpp:43
@ nNodes
Definition CVertexMPI.hpp:39
@ VTK_Type
Definition CVertexMPI.hpp:42
static constexpr unsigned short Neighbor_Nodes[1][1]
Definition CVertexMPI.hpp:46