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);