PHengLEI-NCCR/API/Geometry/include/Geo_Face.h

62 lines
1.9 KiB
C++

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// PPPPP H H EEEEE N N GGGGG L EEEEE III +
// P P H H E NN N G L E I +
// PPPPP HHHHH EEEEE N N N G GG L EEEEE I +
// P H H E N N N G G L E I +
// P H H EEEEE N N GGGGG LLLLL EEEEE III +
//------------------------------------------------------------------------+
// Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//! @file Geo_Face.h
//! @brief It defines the face topology, with left and right cell.
//! @author Bell.
#pragma once
using namespace std;
namespace PHSPACE
{
class Geo_Face
{
public:
//! Left cell id.
int le;
//! Right cell id.
int re;
//! Face id.
int faceID;
//! Maximum face id in global, it would be a estimated appropriate value.
int maxFaceID;
public:
Geo_Face();
Geo_Face(const int &le, const int &re, const int &id, int maxFaceID = 102400);
Geo_Face(const Geo_Face &rhs);
Geo_Face & operator = (const Geo_Face &rhs);
~Geo_Face();
public:
//! Get face id.
int GetID() const { return faceID; }
void SetID(const int &id) { this->faceID = id; }
int hash_key() const;
bool operator < (const Geo_Face &rhs) const;
friend bool operator == (const Geo_Face &face1, const Geo_Face &face2)
{
if (&face1 == &face2) return true;
return (face1.le == face2.le && face1.re == face2.re);
//return (face1.le == face2.le && face1.re == face2.re && face1.faceID == face2.faceID);
}
};
}
#include "Geo_Face.hxx"