PHengLEI-NCCR/API/Physics/include/GridGroup.h

82 lines
3.0 KiB
C
Raw Permalink Normal View History

2024-10-14 09:32:17 +08:00
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 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 GridGroup.h
//! @brief Explain this file briefly.
//! @author xxx.
#pragma once
#include "Pointer.h"
#include "Geo_StructBC.h"
#include "TK_Exit.h"
#include "MultigridFactory.h"
#include "MixGrid.h"
using namespace std;
namespace PHSPACE
{
class Region;
class GridGroup
{
public:
GridGroup(int zoneStart = 0);
~GridGroup();
private:
int nzones;
int * block_proc_dump; //! Bell 20131124 add
int * block_proc;
int * block_proc_grid;
int * block_type;
int * block_idx ;
int * block_fileProc;
vector< Grid *> grids;
int iBlock;
int zoneStart;
Region *region;
public:
void AddGrid(Grid *grid);
public:
void SetIBlock(int iBlock) { this->iBlock = iBlock; }
bool IsZoneLayoutInitialized();
void SetZoneHandler(Region *region) { this->region = region; }
Region * GetRegion() { return region; }
void SetNZones(int nZonesIn) { this->nzones = nZonesIn; }
int GetNZones() const { return nzones; }
int GetNumberofGrid() const;
Grid * GetGrid(int iZone) const { return grids[iZone]; }
//void ReadSingleGrid(fstream &file, int iZone);
void InitZoneLayoutInformation(const string &filename);
void SetBlockProcDump(int * block_proc_dump) { this->block_proc_dump = block_proc_dump; }
void SetBlockProc(int * block_proc) { this->block_proc = block_proc; }
void SetBlockProcGrid(int * block_proc) { this->block_proc_grid = block_proc; }
void SetBlockType(int * block_type) { this->block_type = block_type; }
void SetBlockIndex(int * block_idx) { this->block_idx = block_idx; }
void SetBockFileProc(int * block_fileProc) { this->block_fileProc = block_fileProc; }
int * GetBlockProcDump() { return this->block_proc_dump; }
int * GetBlockProc() { return this->block_proc; }
int * GetBlockProcGrid() { return this->block_proc_grid; }
int * GetBlockType() { return this->block_type; }
int * GetBlockIndex() { return this->block_idx; }
int * GetBlockFileProc() { return this->block_fileProc; }
int GetZoneStart() { return this->zoneStart; }
void SetGlobalZoneLayout();
private:
void InitZoneLayout(fstream &file);
};
}