1 #include "config.h" 2 3 #include <cerrno> 4 #include <cstring> 5 6 #include <dune/common/exceptions.hh> 7 8 #include <dune/uggrid/low/namespace.h> 9 #include <dune/uggrid/low/initlow.h> 10 #include <dune/uggrid/ugdevices.h> 11 #include <dune/uggrid/gm/initgm.h> 12 #include <dune/uggrid/gm/rm.h> 13 14 #include <dune/uggrid/gm/rm-write2file.h> 15 main(int argc,char ** argv)16int main(int argc, char** argv) 17 { 18 UG::InitLow(); 19 UG::InitDevices(); 20 NS_DIM_PREFIX InitGm(); 21 22 std::vector<NS_DIM_PREFIX REFRULE> rules; 23 std::vector<NS_PREFIX SHORT> patterns; 24 25 // use an arbitrary additional argument to use the rules from "lib/ugdata/RefRules.data" 26 if( argc > 1 ) 27 { 28 // read the file "lib/ugdata/RefRules.data" and use those rules 29 std::FILE* stream = std::fopen(argv[1], "r"); 30 if (!stream) 31 DUNE_THROW(Dune::Exception, "Could not open file " << argv[1] << ": " << std::strerror(errno)); 32 NS_DIM_PREFIX readTetrahedronRules(stream, rules, patterns); 33 std::fclose(stream); 34 35 NS_DIM_PREFIX RefRules[NS_DIM_PREFIX TETRAHEDRON] = rules.data(); 36 NS_DIM_PREFIX MaxRules[NS_DIM_PREFIX TETRAHEDRON] = rules.size(); 37 } 38 39 // write rules 40 for(int i=0; i<NS_DIM_PREFIX MaxRules[NS_DIM_PREFIX TETRAHEDRON]; i++) 41 { 42 NS_DIM_PREFIX ShowRefRuleX(NS_DIM_PREFIX TETRAHEDRON, i, std::printf); 43 } 44 45 return 0; 46 } 47