Documentation 6b54b78464
Loading...
Searching...
No Matches
CMatchingFace.hpp
Go to the documentation of this file.
1/*!
2 * \file CMatchingFace.hpp
3 * \brief Header file for the class CMatchingFace.
4 * The implementations are in the <i>CMatchingFace.cpp</i> file.
5 * \author E. van der Weide
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 "../../code_config.hpp"
32#include <iostream>
33#include <algorithm>
34#include <cmath>
35
36using namespace std;
37
38/*!
39 * \class CMatchingFace
40 * \brief Help class used to determine whether or not (periodic) faces match.
41 */
43 public:
44 unsigned short nCornerPoints; /*!< \brief Number of corner points of the face. */
45 unsigned short nDim; /*!< \brief Number of spatial dimensions. */
46 unsigned short nPoly; /*!< \brief Polynomial degree of the face. */
47 unsigned short nDOFsElem; /*!< \brief Number of DOFs of the relevant adjacent element. */
48 unsigned short elemType; /*!< \brief Type of the adjacent element. */
49 unsigned long elemID; /*!< \brief The relevant adjacent element ID. */
50 su2double cornerCoor[4][3]; /*!< \brief Coordinates of the corner points of the face. */
51 su2double tolForMatching; /*!< \brief Tolerance for this face for matching points. */
52
53 /* Constructor. Initialize the member variables to zero. */
55
56 /* Copy constructor and assignment operator. */
57 inline CMatchingFace(const CMatchingFace& other) { Copy(other); }
58
59 inline CMatchingFace& operator=(const CMatchingFace& other) {
60 Copy(other);
61 return (*this);
62 }
63
64 /* Less than operator. Needed for the sorting and searching. */
65 bool operator<(const CMatchingFace& other) const;
66
67 /*--- Member function, which sorts the coordinates of the face. ---*/
69
70 private:
71 /*--- Copy function, which copies the data of the given object into the current object. ---*/
72 void Copy(const CMatchingFace& other);
73};
Help class used to determine whether or not (periodic) faces match.
Definition CMatchingFace.hpp:42
unsigned short nPoly
Polynomial degree of the face.
Definition CMatchingFace.hpp:46
su2double tolForMatching
Tolerance for this face for matching points.
Definition CMatchingFace.hpp:51
CMatchingFace(const CMatchingFace &other)
Definition CMatchingFace.hpp:57
CMatchingFace()
Definition CMatchingFace.cpp:31
void SortFaceCoordinates()
Definition CMatchingFace.cpp:67
unsigned short nCornerPoints
Number of corner points of the face.
Definition CMatchingFace.hpp:44
su2double cornerCoor[4][3]
Coordinates of the corner points of the face.
Definition CMatchingFace.hpp:50
unsigned short nDim
Number of spatial dimensions.
Definition CMatchingFace.hpp:45
CMatchingFace & operator=(const CMatchingFace &other)
Definition CMatchingFace.hpp:59
unsigned long elemID
The relevant adjacent element ID.
Definition CMatchingFace.hpp:49
unsigned short nDOFsElem
Number of DOFs of the relevant adjacent element.
Definition CMatchingFace.hpp:47
bool operator<(const CMatchingFace &other) const
Definition CMatchingFace.cpp:47
unsigned short elemType
Type of the adjacent element.
Definition CMatchingFace.hpp:48
passivedouble su2double
Definition code_config.hpp:181