@@ -54,14 +54,17 @@ int main(int argc, char *argv[])
5454 const char *device_config = " cpu" ;
5555 bool use_ea = false ;
5656
57+ int refinement_levels = 0 ;
58+
5759 OptionsParser args (argc, argv);
5860 args.AddOption (&mesh_file, " -m" , " --mesh" ,
5961 " Mesh file to use." );
6062 args.AddOption (&problem, " -p" , " --problem" ,
6163 " Problem type (see the RHO_exact function)." );
62- args.AddOption (&order_im, " -o" , " --order" ,
63- " Finite element order (polynomial degree) or -1 for"
64- " isoparametric space." );
64+ args.AddOption (&order_im, " -o" , " --order_im" ,
65+ " Finite element order (polynomial degree) for intermediate space." );
66+ args.AddOption (&refinement_levels, " -r" , " --refine" ,
67+ " Number of times to refine the mesh uniformly." );
6568 args.AddOption (&lref, " -lref" , " --lor-ref-level" , " LOR refinement level." );
6669 args.AddOption (&order_lo, " -lo" , " --lor-order" ,
6770 " LOR space order (polynomial degree, zero by default)." );
@@ -90,6 +93,10 @@ int main(int argc, char *argv[])
9093 const int num_x = 2 ;
9194 const int num_y = 2 ;
9295 Mesh mesh_im = Mesh::MakeCartesian2D (num_x, num_y, Element::QUADRILATERAL, false , 1.0 , 1.0 ); // sx = sy =1
96+ for (int i = 0 ; i < refinement_levels; i++)
97+ { mesh_im.UniformRefinement (); }
98+ mesh_im.EnsureNCMesh ();
99+
93100 int dim = mesh_im.Dimension ();
94101
95102 // low-order refined mesh
0 commit comments