diff --git a/examples/fast-sweeping/fastSweepingConfig.h b/examples/fast-sweeping/fastSweepingConfig.h
index ff1403630100c2ce49375eee25a3a74f4d2e3049..02d639a14e9773b84ca95c7683e1b02ef68ead62 100644
--- a/examples/fast-sweeping/fastSweepingConfig.h
+++ b/examples/fast-sweeping/fastSweepingConfig.h
@@ -29,6 +29,7 @@ class fastSweepingConfig
          config.addDelimiter( "Parallel Eikonal solver settings:" );
          config.addEntry        < tnlString > ( "problem-name", "This defines particular problem.", "fast-sweeping" );
          config.addRequiredEntry        < tnlString > ( "initial-condition", "Initial condition for solver");
+         config.addRequiredEntry        < tnlString > ( "dim", "Dimension of problem.");
          config.addEntry       < tnlString > ( "mesh", "Name of mesh.", "mesh.tnl" );
          config.addEntry       < tnlString > ( "exact-input", "Are the function values near the curve equal to the SDF? (yes/no)", "no" );
       }
diff --git a/examples/fast-sweeping/main.h b/examples/fast-sweeping/main.h
index 279eeb03c14c5415a9c6bec00c83b3e83da19815..19dada3680fc6fb551ee84f7180c1811f629f171 100644
--- a/examples/fast-sweeping/main.h
+++ b/examples/fast-sweeping/main.h
@@ -43,16 +43,36 @@ int main( int argc, char* argv[] )
    if( ! parseCommandLine( argc, argv, configDescription, parameters ) )
       return false;
 
-    tnlFastSweeping<tnlGrid<3,double,tnlHost, int>, double, int> solver;
-    if(!solver.init(parameters))
+   const tnlString& dim = parameters.getParameter< tnlString >( "dim" );
+
+   if(dim == "2")
+   {
+		tnlFastSweeping<tnlGrid<2,double,tnlHost, int>, double, int> solver;
+		if(!solver.init(parameters))
+	   {
+			cerr << "Solver failed to initialize." << endl;
+			return EXIT_FAILURE;
+	   }
+		checkCudaDevice;
+	   cout << "-------------------------------------------------------------" << endl;
+	   cout << "Starting solver..." << endl;
+	   solver.run();
+   }
+   else    if(dim == "3")
    {
-    	cerr << "Solver failed to initialize." << endl;
-   		return EXIT_FAILURE;
+		tnlFastSweeping<tnlGrid<3,double,tnlHost, int>, double, int> solver;
+		if(!solver.init(parameters))
+	   {
+			cerr << "Solver failed to initialize." << endl;
+			return EXIT_FAILURE;
+	   }
+		checkCudaDevice;
+	   cout << "-------------------------------------------------------------" << endl;
+	   cout << "Starting solver..." << endl;
+	   solver.run();
    }
-    checkCudaDevice;
-   cout << "-------------------------------------------------------------" << endl;
-   cout << "Starting solver..." << endl;
-   solver.run();
+   else
+	   cerr << "Unsopported no. of dimensions: " << dim << "!" << endl;
 
 
    time(&stop);