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

83 lines
2.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_CellMetrics_Unstruct.h
//! @brief It defines the cell metrics of the unstructured grid,
//! such as the cell center and cell volume.
//! @author Bell, He Xin.
#pragma once
#include "LIB_Macro.h"
#include "Precision.h"
namespace PHSPACE
{
//! @brief Geo_CellMetrics_Unstruct class defines the cell metrics of unstructured grid.\n
//! 1: cell center.\n
//! 2: cell volume.
class Geo_CellMetrics_Unstruct
{
private:
//! Cell center data, including ghost cells.
RDouble *xcc, *ycc, *zcc;
//! Cell volume data, excluding ghosts.
RDouble *vol;
//! Used for DES simulation ONLY: largest local grid length, distance of neighbor cell centers.
RDouble *largestLocalGridLength;
//! Used for DES simulation ONLY: sub-grid length.
RDouble *subgridLength;
public:
LIB_EXPORT Geo_CellMetrics_Unstruct();
LIB_EXPORT ~Geo_CellMetrics_Unstruct();
public:
//! Assign the given pointer to the X Cell center data.
void SetCellCenterX(RDouble *xcc);
//! Assign the given pointer to the Y Cell center data.
void SetCellCenterY(RDouble *ycc);
//! Assign the given pointer to the Z Cell center data.
void SetCellCenterZ(RDouble *zcc);
//! Assign the given pointer to the Cell volume data.
void SetCellVolume(RDouble *vol);
//! Assign the largest local grid spacing.
void SetLargestLocalGridLength(RDouble *length);
//! Assign the sub-grid length, used for DES simulation ONLY.
void SetSubgridLength(RDouble *length);
//! Return the X pointer of cell center.
RDouble * GetCellCenterX() const;
//! Return the X pointer of cell center.
RDouble * GetCellCenterY() const;
//! Return the X pointer of cell center.
RDouble * GetCellCenterZ() const;
//! Return the cell volume pointer.
RDouble * GetCellVolume() const;
//! Return the largest local grid spacing.
RDouble * GetLargestLocalGridLength();
//! Return the sub-grid length, used for DES simulation ONLY.
RDouble * GetSubgridLength();
};
#include "Geo_CellMetrics_Unstruct.hxx"
}