Proto  3.2
Proto_MBAMRBoxPartition.H
Go to the documentation of this file.
1 #pragma once
2 #ifndef _PROTO_MB_AMR_BOX_PARTITION_
3 #define _PROTO_MB_AMR_BOX_PARTITION_
4 
5 #include "Proto_MBBoxPartition.H"
6 
7 namespace Proto
8 {
9  /// Multiblock AMR Box Partition
10  typedef std::tuple<Point, BlockIndex, int> MBAMRPatchID_t;
12  {
13  public:
14 
15  inline MBAMRBoxPartition(
16  const MBProblemDomain& a_coarseDomain,
17  const std::vector<Point>& a_refRatios);
18  inline void define(
19  const MBProblemDomain& a_coarseDomain,
20  const std::vector<Point>& a_refRatios);
21  inline void loadBalance();
22  inline bool compatible(const MBAMRBoxPartition& a_rhs) const;
23  inline std::shared_ptr<BoxPartition> getBlock(
24  unsigned int a_level,
25  unsigned int a_block) const;
26  inline std::shared_ptr<MBBoxPartition> getLevel(
27  unsigned int a_level) const;
28  inline unsigned int numLevels() const { return m_levelPartitions.size(); }
29  inline void print();
30 
31  private:
32 
33  std::vector<std::shared_ptr<MBBoxPartition>> m_levelPartitions;
34  };
35 
36 #include "implem/Proto_MBAMRBoxPartitionImplem.H"
37 } // end namespace Proto
38 #endif //end include guard
void print()
Definition: Proto_MBAMRBoxPartition.H:57
MBAMRBoxPartition(const MBProblemDomain &a_coarseDomain, const std::vector< Point > &a_refRatios)
Definition: Proto_MBAMRBoxPartition.H:2
std::vector< std::shared_ptr< MBBoxPartition > > m_levelPartitions
Definition: Proto_MBAMRBoxPartition.H:33
void loadBalance()
Definition: Proto_MBAMRBoxPartition.H:25
std::shared_ptr< BoxPartition > getBlock(unsigned int a_level, unsigned int a_block) const
Definition: Proto_MBAMRBoxPartition.H:43
std::shared_ptr< MBBoxPartition > getLevel(unsigned int a_level) const
Definition: Proto_MBAMRBoxPartition.H:50
std::tuple< Point, BlockIndex, int > MBAMRPatchID_t
Multiblock AMR Box Partition.
Definition: Proto_MBAMRBoxPartition.H:10
Mapped Multi-Block Problem Domain.
Definition: Proto_MBProblemDomain.H:76
bool compatible(const MBAMRBoxPartition &a_rhs) const
Definition: Proto_MBAMRBoxPartition.H:34
Definition: Proto_Array.H:17
void define(const MBProblemDomain &a_coarseDomain, const std::vector< Point > &a_refRatios)
Definition: Proto_MBAMRBoxPartition.H:9
Definition: Proto_MBAMRBoxPartition.H:11
unsigned int numLevels() const
Definition: Proto_MBAMRBoxPartition.H:28