Program Listing for File RefinementContext.h

Return to documentation for file (src/partition/refine/core/RefinementContext.h)

#ifndef PARTITION_REFINE_CORE_REFINEMENTCONTEXT_H_
#define PARTITION_REFINE_CORE_REFINEMENTCONTEXT_H_

#include "RefineTypes.h"


struct RefinementConfig {
  PartitionConstraintConfig constraints;
  RefineStageConfig refine;
  int thread = 1;
  fpga fpgas;

  string default_choice;
  vector<string> enable_choices;
};

struct RefinementSession {
  int multilevel_id   = 0;
  int cur_level       = 0;
  int total_level     = 0;
  bool has_timing     = false;
  bool has_timing_tdm = false;
  double penalty      = 0.0;

  vector<graph> graphs;
  vector<vector<int>> originLevelNodeIds;

  void resetForRun()
  {
    multilevel_id = 0;
    penalty       = 0.0;
    cur_level     = 0;
    total_level   = 0;
    originLevelNodeIds.clear();
  }
};

#endif