]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Mainly changes for the String->string conversion of the parameter handler module...
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 18 May 1998 08:44:52 +0000 (08:44 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Mon, 18 May 1998 08:44:52 +0000 (08:44 +0000)
git-svn-id: https://svn.dealii.org/trunk@307 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/Attic/examples/dof/dof_test.cc
deal.II/deal.II/Attic/examples/error-estimation/error-estimation.cc
deal.II/deal.II/Attic/examples/poisson/equation.cc
deal.II/deal.II/Attic/examples/poisson/problem.cc
tests/big-tests/dof/dof_test.cc
tests/big-tests/error-estimation/error-estimation.cc
tests/big-tests/poisson/equation.cc
tests/big-tests/poisson/problem.cc

index 254ba9a5ec94bb9795d93b7358b170c6c6eb9662..4d4ae3aba944b4e4c7ae985e58241b0ba698342c 100644 (file)
 #include <grid/dof_constraints.h>
 
 
-#include <fstream.h>
+#include <fstream>
 #include <cmath>
-extern "C" {
-#  include <stdlib.h>
-}
-
-extern TriaActiveIterator<1,CellAccessor<1> > x;
-extern TriaActiveIterator<2,CellAccessor<2> > y;
+#include <cstdlib>
 
 
 
@@ -116,9 +111,11 @@ void TestCases<dim>::create_new (const unsigned int) {
 template <int dim>
 void TestCases<dim>::declare_parameters (ParameterHandler &prm) {
   if (dim>=2)
-    prm.declare_entry ("Test run", "zoom in", "zoom in\\|ball\\|curved line\\|random");
+    prm.declare_entry ("Test run", "zoom in",
+                      Patterns::Sequence("zoom in|ball|curved line|random"));
   else
-    prm.declare_entry ("Test run", "zoom in", "zoom in\\|random");
+    prm.declare_entry ("Test run", "zoom in",
+                      Patterns::Sequence("zoom in|random"));
   prm.declare_entry ("Grid file", "grid.1");
   prm.declare_entry ("Sparsity file", "sparsity.1");
   prm.declare_entry ("Condensed sparsity file", "sparsity.c.1");
@@ -133,7 +130,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
   
   cout << "    Making grid..." << endl;
 
-  String test = prm.get ("Test run");
+  string test = prm.get ("Test run");
   unsigned int test_case;
   if (test=="zoom in") test_case = 1;
   else
@@ -238,7 +235,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
 
                                   // output the grid
   cout << "    Writing grid..." << endl;
-  ofstream out(prm.get("Grid file"));
+  ofstream out(prm.get("Grid file").c_str());
   tria->print_gnuplot (out);
 
 
@@ -259,7 +256,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
   int unconstrained_bandwidth = sparsity.bandwidth();
 
   cout << "    Writing sparsity pattern... (This may take a while)" << endl;
-  ofstream sparsity_out (prm.get("Sparsity file"));
+  ofstream sparsity_out (prm.get("Sparsity file").c_str());
   sparsity.print_gnuplot (sparsity_out);
 
 
@@ -271,7 +268,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
   constraints.condense (sparsity);
   
   cout << "    Writing condensed sparsity pattern... (This may take a while)" << endl;
-  ofstream c_sparsity_out (prm.get("Condensed sparsity file"));
+  ofstream c_sparsity_out (prm.get("Condensed sparsity file").c_str());
   sparsity.print_gnuplot (c_sparsity_out);
 
 
index d4b53f46c533d1eb22d4d321fc1dd0bd4fedb621..e0a91ecf09121660c1812fadc8e193f6186e4ca4 100644 (file)
@@ -336,18 +336,18 @@ void PoissonProblem<dim>::create_new (const unsigned int) {
 template <int dim>
 void PoissonProblem<dim>::declare_parameters (ParameterHandler &prm) {
   prm.declare_entry ("Test case", "Gauss shape",
-                    "Gauss shape\\|Singular\\|Kink");
+                    Patterns::Sequence("Gauss shape|Singular|Kink"));
   prm.declare_entry ("Initial refinement", "2",
-                    ParameterHandler::RegularExpressions::Integer);
+                    Patterns::Integer());
   prm.declare_entry ("Refinement criterion", "estimated error",
-                    "global\\|true error\\|estimated error");
+                    Patterns::Sequence("global|true error|estimated error"));
   prm.declare_entry ("Refinement fraction", "0.3",
-                    ParameterHandler::RegularExpressions::Double);
+                    Patterns::Double());
   prm.declare_entry ("Maximum cells", "3000",
-                    ParameterHandler::RegularExpressions::Integer);
+                    Patterns::Integer());
   prm.declare_entry ("Output base filename", "");
-  prm.declare_entry ("Output format", "ucd"
-                    "ucd\\|gnuplot");
+  prm.declare_entry ("Output format", "ucd",
+                    Patterns::Sequence("ucd|gnuplot"));
 };
 
 
@@ -495,7 +495,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
       out.add_data_vector (h1_error_per_dof, "H1-Error");
       out.add_data_vector (estimated_error_per_dof, "Estimated Error");
       out.add_data_vector (error_ratio, "Ratio True:Estimated Error");
-      String filename = prm.get ("Output base filename");
+      string filename = prm.get ("Output base filename");
       switch (refine_mode) 
        {
          case global:
@@ -518,7 +518,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
          filename += ".gnuplot";
       
       cout << "    Writing error plots to <" << filename << ">..." << endl;
-      ofstream outfile(filename);
+      ofstream outfile(filename.c_str());
       if (prm.get("Output format")=="ucd")      
        out.write_ucd (outfile);
       else
@@ -548,7 +548,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
       ++refine_step;
     };
 
-  String filename = prm.get ("Output base filename");
+  string filename = prm.get ("Output base filename");
   switch (refine_mode) 
     {
       case global:
@@ -566,7 +566,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
   
   filename += "finest_mesh.gnuplot";
   cout << "    Wrinting finest grid to <" << filename << ">... " << endl;
-  ofstream finest_mesh (filename);
+  ofstream finest_mesh (filename.c_str());
   tria->print_gnuplot (finest_mesh);
   finest_mesh.close();
 
@@ -580,7 +580,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
 template <int dim>
 void PoissonProblem<dim>::print_history (const ParameterHandler &prm,
                                         const RefineMode refine_mode) const {
-  String filename(prm.get("Output base filename"));
+  string filename(prm.get("Output base filename"));
   filename += "history.";
   switch (refine_mode) 
     {
@@ -598,7 +598,7 @@ void PoissonProblem<dim>::print_history (const ParameterHandler &prm,
   
   cout << endl << "Printing convergence history to <" << filename << ">..."
        << endl;
-  ofstream out(filename);
+  ofstream out(filename.c_str());
   out << "# n_dofs    l2_error linfty_error "
       << "h1_error estimated_error"
       << endl;
index 20f1724589735f95264481f03557b32e9bebbc2e..ea43603d23af54617c570d65d91430ef4d56b149 100644 (file)
@@ -32,7 +32,7 @@ void PoissonEquation<2>::assemble (dFMatrix            &cell_matrix,
                                   const Triangulation<2>::cell_iterator &) const {
   const vector<vector<Point<2> > >&gradients = fe_values.get_shape_grads ();
   const dFMatrix       &values    = fe_values.get_shape_values ();
-  vector<double>        rhs_values;
+  vector<double>        rhs_values (fe_values.n_quadrature_points);
   const vector<double> &weights   = fe_values.get_JxW_values ();
 
   right_hand_side.value_list (fe_values.get_quadrature_points(), rhs_values);
index 48dad443c82684c50c4e474589c70e6908fde1f9..cd95664c8703c99bacdc63850ae37a4ca167d63d 100644 (file)
@@ -25,9 +25,11 @@ class BoundaryValuesSine : public Function<dim> {
                                      */
     virtual void value_list (const vector<Point<dim> > &points,
                             vector<double>            &values) const {
+      Assert (values.size() == points.size(),
+             ExcVectorHasWrongSize(values.size(), points.size()));
       for (unsigned int i=0; i<points.size(); ++i) 
-       values.push_back (cos(2*3.1415926536*points[i](0)) *
-                         cos(2*3.1415926536*points[i](1)));
+       values[i] = (cos(2*3.1415926536*points[i](0)) *
+                    cos(2*3.1415926536*points[i](1)));
     };
 };
 
@@ -209,16 +211,18 @@ template <int dim>
 void PoissonProblem<dim>::declare_parameters (ParameterHandler &prm) {
   if (dim>=2)
     prm.declare_entry ("Test run", "zoom in",
-                      "tensor\\|zoom in\\|ball\\|curved line\\|random\\|jump\\|L-region");
+                      Patterns::Sequence("tensor|zoom in|ball|curved line|"
+                                         "random|jump|L-region"));
   else
-    prm.declare_entry ("Test run", "zoom in", "tensor\\|zoom in\\|random");
+    prm.declare_entry ("Test run", "zoom in",
+                      Patterns::Sequence("tensor|zoom in|random"));
 
   prm.declare_entry ("Global refinement", "0",
-                    ParameterHandler::RegularExpressions::Integer);
+                    Patterns::Integer());
   prm.declare_entry ("Right hand side", "zero",
-                    "zero\\|constant\\|trigpoly\\|poly");
+                    Patterns::Sequence("zero|constant|trigpoly|poly"));
   prm.declare_entry ("Boundary values", "zero",
-                    "zero\\|sine\\|jump");
+                    Patterns::Sequence("zero|sine|jump"));
   prm.declare_entry ("Output file", "gnuplot.1");
 };
 
@@ -227,7 +231,7 @@ void PoissonProblem<dim>::declare_parameters (ParameterHandler &prm) {
 
 template <int dim>
 bool PoissonProblem<dim>::make_grid (ParameterHandler &prm) {
-  String test = prm.get ("Test run");
+  string test = prm.get ("Test run");
   unsigned int test_case;
   if (test=="zoom in") test_case = 1;
   else
@@ -375,7 +379,7 @@ void PoissonProblem<dim>::make_random_grid () {
 
 template <int dim>
 bool PoissonProblem<dim>::set_right_hand_side (ParameterHandler &prm) {
-  String rhs_name = prm.get ("Right hand side");
+  string rhs_name = prm.get ("Right hand side");
 
   if (rhs_name == "zero")
     rhs = new ZeroFunction<dim>();
@@ -401,8 +405,8 @@ bool PoissonProblem<dim>::set_right_hand_side (ParameterHandler &prm) {
 
 template <int dim>
 bool PoissonProblem<dim>::set_boundary_values (ParameterHandler &prm) {
-  String bv_name = prm.get ("Boundary values");
-
+  string bv_name = prm.get ("Boundary values");
+  
   if (bv_name == "zero")
     boundary_values = new ZeroFunction<dim> ();
   else
@@ -411,8 +415,11 @@ bool PoissonProblem<dim>::set_boundary_values (ParameterHandler &prm) {
     else
       if (bv_name == "jump")
        boundary_values = new BoundaryValuesJump<dim> ();
-      else
-       return false;
+      else 
+       {
+         cout << "Unknown boundary value function " << bv_name << endl;
+         return false;
+       };
 
   if (boundary_values != 0)
     return true;
@@ -462,8 +469,8 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
        << endl;
 
   DataOut<dim> out;
-  String o_filename = prm.get ("Output file");
-  ofstream gnuplot(o_filename);
+  string o_filename = prm.get ("Output file");
+  ofstream gnuplot(o_filename.c_str());
   fill_data (out);
   out.write_gnuplot (gnuplot);
   gnuplot.close ();
index 254ba9a5ec94bb9795d93b7358b170c6c6eb9662..4d4ae3aba944b4e4c7ae985e58241b0ba698342c 100644 (file)
 #include <grid/dof_constraints.h>
 
 
-#include <fstream.h>
+#include <fstream>
 #include <cmath>
-extern "C" {
-#  include <stdlib.h>
-}
-
-extern TriaActiveIterator<1,CellAccessor<1> > x;
-extern TriaActiveIterator<2,CellAccessor<2> > y;
+#include <cstdlib>
 
 
 
@@ -116,9 +111,11 @@ void TestCases<dim>::create_new (const unsigned int) {
 template <int dim>
 void TestCases<dim>::declare_parameters (ParameterHandler &prm) {
   if (dim>=2)
-    prm.declare_entry ("Test run", "zoom in", "zoom in\\|ball\\|curved line\\|random");
+    prm.declare_entry ("Test run", "zoom in",
+                      Patterns::Sequence("zoom in|ball|curved line|random"));
   else
-    prm.declare_entry ("Test run", "zoom in", "zoom in\\|random");
+    prm.declare_entry ("Test run", "zoom in",
+                      Patterns::Sequence("zoom in|random"));
   prm.declare_entry ("Grid file", "grid.1");
   prm.declare_entry ("Sparsity file", "sparsity.1");
   prm.declare_entry ("Condensed sparsity file", "sparsity.c.1");
@@ -133,7 +130,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
   
   cout << "    Making grid..." << endl;
 
-  String test = prm.get ("Test run");
+  string test = prm.get ("Test run");
   unsigned int test_case;
   if (test=="zoom in") test_case = 1;
   else
@@ -238,7 +235,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
 
                                   // output the grid
   cout << "    Writing grid..." << endl;
-  ofstream out(prm.get("Grid file"));
+  ofstream out(prm.get("Grid file").c_str());
   tria->print_gnuplot (out);
 
 
@@ -259,7 +256,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
   int unconstrained_bandwidth = sparsity.bandwidth();
 
   cout << "    Writing sparsity pattern... (This may take a while)" << endl;
-  ofstream sparsity_out (prm.get("Sparsity file"));
+  ofstream sparsity_out (prm.get("Sparsity file").c_str());
   sparsity.print_gnuplot (sparsity_out);
 
 
@@ -271,7 +268,7 @@ void TestCases<dim>::run (ParameterHandler &prm) {
   constraints.condense (sparsity);
   
   cout << "    Writing condensed sparsity pattern... (This may take a while)" << endl;
-  ofstream c_sparsity_out (prm.get("Condensed sparsity file"));
+  ofstream c_sparsity_out (prm.get("Condensed sparsity file").c_str());
   sparsity.print_gnuplot (c_sparsity_out);
 
 
index d4b53f46c533d1eb22d4d321fc1dd0bd4fedb621..e0a91ecf09121660c1812fadc8e193f6186e4ca4 100644 (file)
@@ -336,18 +336,18 @@ void PoissonProblem<dim>::create_new (const unsigned int) {
 template <int dim>
 void PoissonProblem<dim>::declare_parameters (ParameterHandler &prm) {
   prm.declare_entry ("Test case", "Gauss shape",
-                    "Gauss shape\\|Singular\\|Kink");
+                    Patterns::Sequence("Gauss shape|Singular|Kink"));
   prm.declare_entry ("Initial refinement", "2",
-                    ParameterHandler::RegularExpressions::Integer);
+                    Patterns::Integer());
   prm.declare_entry ("Refinement criterion", "estimated error",
-                    "global\\|true error\\|estimated error");
+                    Patterns::Sequence("global|true error|estimated error"));
   prm.declare_entry ("Refinement fraction", "0.3",
-                    ParameterHandler::RegularExpressions::Double);
+                    Patterns::Double());
   prm.declare_entry ("Maximum cells", "3000",
-                    ParameterHandler::RegularExpressions::Integer);
+                    Patterns::Integer());
   prm.declare_entry ("Output base filename", "");
-  prm.declare_entry ("Output format", "ucd"
-                    "ucd\\|gnuplot");
+  prm.declare_entry ("Output format", "ucd",
+                    Patterns::Sequence("ucd|gnuplot"));
 };
 
 
@@ -495,7 +495,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
       out.add_data_vector (h1_error_per_dof, "H1-Error");
       out.add_data_vector (estimated_error_per_dof, "Estimated Error");
       out.add_data_vector (error_ratio, "Ratio True:Estimated Error");
-      String filename = prm.get ("Output base filename");
+      string filename = prm.get ("Output base filename");
       switch (refine_mode) 
        {
          case global:
@@ -518,7 +518,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
          filename += ".gnuplot";
       
       cout << "    Writing error plots to <" << filename << ">..." << endl;
-      ofstream outfile(filename);
+      ofstream outfile(filename.c_str());
       if (prm.get("Output format")=="ucd")      
        out.write_ucd (outfile);
       else
@@ -548,7 +548,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
       ++refine_step;
     };
 
-  String filename = prm.get ("Output base filename");
+  string filename = prm.get ("Output base filename");
   switch (refine_mode) 
     {
       case global:
@@ -566,7 +566,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
   
   filename += "finest_mesh.gnuplot";
   cout << "    Wrinting finest grid to <" << filename << ">... " << endl;
-  ofstream finest_mesh (filename);
+  ofstream finest_mesh (filename.c_str());
   tria->print_gnuplot (finest_mesh);
   finest_mesh.close();
 
@@ -580,7 +580,7 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
 template <int dim>
 void PoissonProblem<dim>::print_history (const ParameterHandler &prm,
                                         const RefineMode refine_mode) const {
-  String filename(prm.get("Output base filename"));
+  string filename(prm.get("Output base filename"));
   filename += "history.";
   switch (refine_mode) 
     {
@@ -598,7 +598,7 @@ void PoissonProblem<dim>::print_history (const ParameterHandler &prm,
   
   cout << endl << "Printing convergence history to <" << filename << ">..."
        << endl;
-  ofstream out(filename);
+  ofstream out(filename.c_str());
   out << "# n_dofs    l2_error linfty_error "
       << "h1_error estimated_error"
       << endl;
index 20f1724589735f95264481f03557b32e9bebbc2e..ea43603d23af54617c570d65d91430ef4d56b149 100644 (file)
@@ -32,7 +32,7 @@ void PoissonEquation<2>::assemble (dFMatrix            &cell_matrix,
                                   const Triangulation<2>::cell_iterator &) const {
   const vector<vector<Point<2> > >&gradients = fe_values.get_shape_grads ();
   const dFMatrix       &values    = fe_values.get_shape_values ();
-  vector<double>        rhs_values;
+  vector<double>        rhs_values (fe_values.n_quadrature_points);
   const vector<double> &weights   = fe_values.get_JxW_values ();
 
   right_hand_side.value_list (fe_values.get_quadrature_points(), rhs_values);
index 48dad443c82684c50c4e474589c70e6908fde1f9..cd95664c8703c99bacdc63850ae37a4ca167d63d 100644 (file)
@@ -25,9 +25,11 @@ class BoundaryValuesSine : public Function<dim> {
                                      */
     virtual void value_list (const vector<Point<dim> > &points,
                             vector<double>            &values) const {
+      Assert (values.size() == points.size(),
+             ExcVectorHasWrongSize(values.size(), points.size()));
       for (unsigned int i=0; i<points.size(); ++i) 
-       values.push_back (cos(2*3.1415926536*points[i](0)) *
-                         cos(2*3.1415926536*points[i](1)));
+       values[i] = (cos(2*3.1415926536*points[i](0)) *
+                    cos(2*3.1415926536*points[i](1)));
     };
 };
 
@@ -209,16 +211,18 @@ template <int dim>
 void PoissonProblem<dim>::declare_parameters (ParameterHandler &prm) {
   if (dim>=2)
     prm.declare_entry ("Test run", "zoom in",
-                      "tensor\\|zoom in\\|ball\\|curved line\\|random\\|jump\\|L-region");
+                      Patterns::Sequence("tensor|zoom in|ball|curved line|"
+                                         "random|jump|L-region"));
   else
-    prm.declare_entry ("Test run", "zoom in", "tensor\\|zoom in\\|random");
+    prm.declare_entry ("Test run", "zoom in",
+                      Patterns::Sequence("tensor|zoom in|random"));
 
   prm.declare_entry ("Global refinement", "0",
-                    ParameterHandler::RegularExpressions::Integer);
+                    Patterns::Integer());
   prm.declare_entry ("Right hand side", "zero",
-                    "zero\\|constant\\|trigpoly\\|poly");
+                    Patterns::Sequence("zero|constant|trigpoly|poly"));
   prm.declare_entry ("Boundary values", "zero",
-                    "zero\\|sine\\|jump");
+                    Patterns::Sequence("zero|sine|jump"));
   prm.declare_entry ("Output file", "gnuplot.1");
 };
 
@@ -227,7 +231,7 @@ void PoissonProblem<dim>::declare_parameters (ParameterHandler &prm) {
 
 template <int dim>
 bool PoissonProblem<dim>::make_grid (ParameterHandler &prm) {
-  String test = prm.get ("Test run");
+  string test = prm.get ("Test run");
   unsigned int test_case;
   if (test=="zoom in") test_case = 1;
   else
@@ -375,7 +379,7 @@ void PoissonProblem<dim>::make_random_grid () {
 
 template <int dim>
 bool PoissonProblem<dim>::set_right_hand_side (ParameterHandler &prm) {
-  String rhs_name = prm.get ("Right hand side");
+  string rhs_name = prm.get ("Right hand side");
 
   if (rhs_name == "zero")
     rhs = new ZeroFunction<dim>();
@@ -401,8 +405,8 @@ bool PoissonProblem<dim>::set_right_hand_side (ParameterHandler &prm) {
 
 template <int dim>
 bool PoissonProblem<dim>::set_boundary_values (ParameterHandler &prm) {
-  String bv_name = prm.get ("Boundary values");
-
+  string bv_name = prm.get ("Boundary values");
+  
   if (bv_name == "zero")
     boundary_values = new ZeroFunction<dim> ();
   else
@@ -411,8 +415,11 @@ bool PoissonProblem<dim>::set_boundary_values (ParameterHandler &prm) {
     else
       if (bv_name == "jump")
        boundary_values = new BoundaryValuesJump<dim> ();
-      else
-       return false;
+      else 
+       {
+         cout << "Unknown boundary value function " << bv_name << endl;
+         return false;
+       };
 
   if (boundary_values != 0)
     return true;
@@ -462,8 +469,8 @@ void PoissonProblem<dim>::run (ParameterHandler &prm) {
        << endl;
 
   DataOut<dim> out;
-  String o_filename = prm.get ("Output file");
-  ofstream gnuplot(o_filename);
+  string o_filename = prm.get ("Output file");
+  ofstream gnuplot(o_filename.c_str());
   fill_data (out);
   out.write_gnuplot (gnuplot);
   gnuplot.close ();

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.