Hermes2D  2.0
refinement_type.cpp
1 #include "global.h"
2 #include "refinement_type.h"
3 
4 HERMES_API bool is_refin_aniso(const int refin_type)
5 {
6  if(refin_type == H2D_REFINEMENT_ANISO_H || refin_type == H2D_REFINEMENT_ANISO_V)
7  return true;
8  else
9  return false;
10 }
11 
12 HERMES_API int get_refin_sons(const int refin_type)
13 {
14  switch(refin_type)
15  {
16  case H2D_REFINEMENT_P: return 1; break;
17  case H2D_REFINEMENT_H: return 4; break;
18  case H2D_REFINEMENT_ANISO_H:
19  case H2D_REFINEMENT_ANISO_V: return 2; break;
20  default: throw Hermes::Exceptions::Exception("Invalid refinement type %d", (int)refin_type); return -1;
21  }
22 }
23 
24 HERMES_API const std::string get_refin_str(const int refin_type)
25 {
26  switch(refin_type)
27  {
28  case H2D_REFINEMENT_P: return "P"; break;
29  case H2D_REFINEMENT_H: return "H"; break;
30  case H2D_REFINEMENT_ANISO_H: return "AnisoH"; break;
31  case H2D_REFINEMENT_ANISO_V: return "AnisoV"; break;
32  default:
33  std::stringstream str;
34  str << "Unknown(" << refin_type << ")";
35  return str.str();
36  }
37 }