[cig-commits] r9314 - cs/benchmark/cigma/trunk/src

luis at geodynamics.org luis at geodynamics.org
Wed Feb 13 11:15:52 PST 2008


Author: luis
Date: 2008-02-13 11:15:52 -0800 (Wed, 13 Feb 2008)
New Revision: 9314

Modified:
   cs/benchmark/cigma/trunk/src/CompareCmd.cpp
   cs/benchmark/cigma/trunk/src/QuadratureIO.cpp
   cs/benchmark/cigma/trunk/src/QuadratureIO.h
Log:
Added extensive checks to QuadratureIO, since cmd line args can be anything


Modified: cs/benchmark/cigma/trunk/src/CompareCmd.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/CompareCmd.cpp	2008-02-13 19:15:51 UTC (rev 9313)
+++ cs/benchmark/cigma/trunk/src/CompareCmd.cpp	2008-02-13 19:15:52 UTC (rev 9314)
@@ -164,6 +164,7 @@
         exit(1);
     }
     validate_args(&meshIO, "compare");
+    validate_args(&quadratureIO, "compare");
 
 
     /* Load the datasets into memory */

Modified: cs/benchmark/cigma/trunk/src/QuadratureIO.cpp
===================================================================
--- cs/benchmark/cigma/trunk/src/QuadratureIO.cpp	2008-02-13 19:15:51 UTC (rev 9313)
+++ cs/benchmark/cigma/trunk/src/QuadratureIO.cpp	2008-02-13 19:15:52 UTC (rev 9314)
@@ -39,7 +39,58 @@
     }
 }
 
+void validate_args(QuadratureIO *quadratureIO, const char *cmd_name)
+{
+    assert(quadratureIO != 0);
 
+    //
+    // Check for incompatible/inconsistent options
+    //
+
+    if ((quadratureIO->points_path == "") && (quadratureIO->weights_path != ""))
+    {
+        cerr << cmd_name
+             << ": You also need to set the option --rule-points"
+             << endl;
+
+        exit(1);
+    }
+
+    if ((quadratureIO->weights_path == "") && (quadratureIO->points_path != ""))
+    {
+        cerr << cmd_name
+             << ": You also need to set the option --rule-weights"
+             << endl;
+
+        exit(1);
+    }
+    
+    if ((quadratureIO->weights_path != "") && (quadratureIO->points_path != ""))
+    {
+        if (quadratureIO->quadrature_path != "")
+        {
+            cerr << cmd_name
+                 << ": Using explicit points and weights (--rule not necessary)"
+                 << endl;
+
+            exit(1);
+        }
+    }
+
+    if ((quadratureIO->quadrature_order != "")
+            && ((quadratureIO->quadrature_path != "") 
+            || ((quadratureIO->points_path != "") && (quadratureIO->weights_path != ""))))
+    {
+        cerr << cmd_name
+             << ": Cannot use --rule-order with an explicit quadrature rule"
+             << endl;
+
+        exit(1);
+    }
+
+
+}
+
 // ---------------------------------------------------------------------------
 
 QuadratureIO::QuadratureIO()
@@ -186,20 +237,6 @@
     qw = 0;
 
 
-    if ((points_path == "") && (weights_path != ""))
-    {
-        cerr << "Missing option --rule-points" << endl;
-        assert(false);
-        return;
-    }
-
-    if ((weights_path == "") && (points_path != ""))
-    {
-        cerr << "Missing option --rule-weights" << endl;
-        assert(false);
-        return;
-    }
-
     if ((points_path != "") && (weights_path != ""))
     {
         Reader *points_reader;

Modified: cs/benchmark/cigma/trunk/src/QuadratureIO.h
===================================================================
--- cs/benchmark/cigma/trunk/src/QuadratureIO.h	2008-02-13 19:15:51 UTC (rev 9313)
+++ cs/benchmark/cigma/trunk/src/QuadratureIO.h	2008-02-13 19:15:52 UTC (rev 9314)
@@ -30,6 +30,7 @@
 
 
 void load_args(AnyOption *opt, QuadratureIO *quadratureIO, const char *opt_prefix);
+void validate_args(QuadratureIO *quadratureIO, const char *cmd_name);
 
 
 #endif



More information about the cig-commits mailing list