[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