[cig-commits] commit 1950 by bangerth to /var/svn/dealii/aspect

dealii.demon at gmail.com dealii.demon at gmail.com
Wed Oct 9 17:07:57 PDT 2013


Revision 1950

Generate a solution.visit file that encodes the information for the entire solution, not just the current time step.

U   trunk/aspect/doc/modules/changes.h
U   trunk/aspect/include/aspect/postprocess/visualization.h
U   trunk/aspect/source/postprocess/visualization.cc


http://www.dealii.org/websvn/revision.php?repname=Aspect+Repository&path=%2F&rev=1950&peg=1950

Diff:
Modified: trunk/aspect/doc/modules/changes.h
===================================================================
--- trunk/aspect/doc/modules/changes.h	2013-10-08 22:59:20 UTC (rev 1949)
+++ trunk/aspect/doc/modules/changes.h	2013-10-10 00:07:04 UTC (rev 1950)
@@ -8,6 +8,15 @@
 </p>
 
 <ol>
+  <li>New: Aspect now not only generates a <code>solution-NNNNN.visit</code>
+  file for each time step but also a global <code>solution.visit</code> file
+  that Visit can use to visualize the entire time dependent solution. (Both
+  of these work with versions of Visit that support this, including Visit 2.5.0.
+  Unfortunately, versions of Visit between 2.5.1 and the version current at
+  the time of writing this, 2.6.3, have a bug that prevents this.)
+  <br>
+  (Wolfgang Bangerth 2013/10/08)
+
   <li>Fixed: Performance of matrix assembly has been improved significantly,
   especially in 3d: assembly of the temperature system is up to three
   times faster, assembly of the Stokes system up to 50%.

Modified: trunk/aspect/include/aspect/postprocess/visualization.h
===================================================================
--- trunk/aspect/include/aspect/postprocess/visualization.h	2013-10-08 22:59:20 UTC (rev 1949)
+++ trunk/aspect/include/aspect/postprocess/visualization.h	2013-10-10 00:07:04 UTC (rev 1950)
@@ -435,6 +435,13 @@
         std::vector<std::pair<double,std::string> > times_and_pvtu_names;
 
         /**
+         * A list of list of filenames, sorted by timestep, that correspond
+         * to what has been created as output. This is used to create a master
+         * .visit file for the entire simulation.
+         */
+        std::vector<std::vector<std::string> > output_file_names_by_timestep;
+
+        /**
          * A set of data related to XDMF file sections describing the HDF5 heavy data
          * files created. These contain things such as the dimensions and names of data
          * written at all steps during the simulation.

Modified: trunk/aspect/source/postprocess/visualization.cc
===================================================================
--- trunk/aspect/source/postprocess/visualization.cc	2013-10-08 22:59:20 UTC (rev 1949)
+++ trunk/aspect/source/postprocess/visualization.cc	2013-10-10 00:07:04 UTC (rev 1950)
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2011, 2012 by the authors of the ASPECT code.
+  Copyright (C) 2011, 2012, 2013 by the authors of the ASPECT code.
 
   This file is part of ASPECT.
 
@@ -304,13 +304,21 @@
               std::ofstream pvd_master (pvd_master_filename.c_str());
               data_out.write_pvd_record (pvd_master, times_and_pvtu_names);
 
-              // finally, do the same for Visit via the .visit file
+              // finally, do the same for Visit via the .visit file for this
+              // time step, as well as for all time steps together
               const std::string
               visit_master_filename = (this->get_output_directory() +
                                        solution_file_prefix +
                                        ".visit");
               std::ofstream visit_master (visit_master_filename.c_str());
               data_out.write_visit_record (visit_master, filenames);
+
+              output_file_names_by_timestep.push_back (filenames);
+#if (DEAL_II_MAJOR*100 + DEAL_II_MINOR) > 800
+              std::ofstream global_visit_master ((this->get_output_directory() +
+                                                  "solution.visit").c_str());
+              data_out.write_visit_record (global_visit_master, output_file_names_by_timestep);
+#endif
             }
         }
       else
@@ -361,13 +369,21 @@
               std::ofstream pvd_master (pvd_master_filename.c_str());
               data_out.write_pvd_record (pvd_master, times_and_pvtu_names);
 
-              // finally, do the same for Visit via the .visit file
+              // finally, do the same for Visit via the .visit file for this
+              // time step, as well as for all time steps together
               const std::string
               visit_master_filename = (this->get_output_directory() +
                                        solution_file_prefix +
                                        ".visit");
               std::ofstream visit_master (visit_master_filename.c_str());
               data_out.write_visit_record (visit_master, filenames);
+
+              output_file_names_by_timestep.push_back (filenames);
+#if (DEAL_II_MAJOR*100 + DEAL_II_MINOR) > 800
+              std::ofstream global_visit_master ((this->get_output_directory() +
+                                                  "solution.visit").c_str());
+              data_out.write_visit_record (global_visit_master, output_file_names_by_timestep);
+#endif
             }
 
           const std::string *filename
@@ -620,6 +636,7 @@
       ar &next_output_time
       & output_file_number
       & times_and_pvtu_names
+      & output_file_names_by_timestep
       & mesh_changed
       & last_mesh_file_name
 #if DEAL_II_VERSION_MAJOR*100 + DEAL_II_VERSION_MINOR > 800


More information about the CIG-COMMITS mailing list