From 204ad18f07bcff24d302568926ce409b7a46fb5d Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Sat, 23 Jun 2018 19:08:18 +0200 Subject: [PATCH] Restore backward-compatibility for #6816 --- include/deal.II/base/data_out_base.h | 292 ++++++++++++++++ source/base/data_out_base.cc | 475 +++++++++++++++++++++++++++ source/base/data_out_base.inst.in | 129 ++++++++ 3 files changed, 896 insertions(+) diff --git a/include/deal.II/base/data_out_base.h b/include/deal.II/base/data_out_base.h index a823976bd8..6db6b620be 100644 --- a/include/deal.II/base/data_out_base.h +++ b/include/deal.II/base/data_out_base.h @@ -1583,6 +1583,20 @@ namespace DataOutBase hdf5 }; + /** + * Write the given list of patches to the output stream in OpenDX format. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_dx( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const DXFlags &flags, + std::ostream & out); /** * Write the given list of patches to the output stream in OpenDX format. @@ -1601,6 +1615,38 @@ namespace DataOutBase const DXFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in eps format. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_eps( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const EpsFlags &flags, + std::ostream & out); + + /** + * This is the same function as above except for domains that are not two- + * dimensional. This function is not implemented (and will throw an error if + * called) but is declared to allow for dimension-independent programs. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_eps( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const EpsFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in eps format. * @@ -1659,6 +1705,23 @@ namespace DataOutBase const EpsFlags &flags, std::ostream & out); + /** + * This is the same function as above except for domains that are not two- + * dimensional. This function is not implemented (and will throw an error if + * called) but is declared to allow for dimension-independent programs. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_eps( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const EpsFlags &flags, + std::ostream & out); + /** * This is the same function as above except for domains that are not two- * dimensional. This function is not implemented (and will throw an error if @@ -1678,6 +1741,20 @@ namespace DataOutBase const EpsFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in GMV format. + * + *@deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_gmv( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const GmvFlags &flags, + std::ostream & out); /** * Write the given list of patches to the output stream in GMV format. @@ -1702,6 +1779,21 @@ namespace DataOutBase const GmvFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in gnuplot format. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_gnuplot( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const GnuplotFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in gnuplot format. * Visualization of two-dimensional data can then be achieved by starting @@ -1772,6 +1864,22 @@ namespace DataOutBase const GnuplotFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream for the Povray + * raytracer. + * + *@deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_povray( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const PovrayFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream for the Povray * raytracer. @@ -1831,6 +1939,24 @@ namespace DataOutBase const PovrayFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in Tecplot ASCII + * format (FEBLOCK). + * + * For more information consult the Tecplot Users and Reference manuals. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_tecplot( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const TecplotFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in Tecplot ASCII * format (FEBLOCK). @@ -1851,6 +1977,22 @@ namespace DataOutBase const TecplotFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in Tecplot binary + * format. + * + * @deprecated Use the version suing DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_tecplot_binary( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const TecplotFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in Tecplot binary * format. @@ -1884,6 +2026,22 @@ namespace DataOutBase const TecplotFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in UCD format + * described in the AVS developer's guide (now AVS). + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_ucd( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const UcdFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in UCD format * described in the AVS developer's guide (now AVS). Due to limitations in @@ -1912,6 +2070,23 @@ namespace DataOutBase const UcdFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in VTK format. The + * data is written in the traditional VTK format as opposed to the XML-based + * format that write_vtu() produces. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_vtk( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in VTK format. The * data is written in the traditional VTK format as opposed to the XML-based @@ -1945,6 +2120,22 @@ namespace DataOutBase const VtkFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in VTU format. The + * data is written in the XML-based VTK format as opposed to the traditional + * format that write_vtk() produces. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_vtu( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out); /** * Write the given list of patches to the output stream in VTU format. The @@ -2000,6 +2191,24 @@ namespace DataOutBase void write_vtu_footer(std::ostream &out); + /** + * This function writes the main part for the xml based vtu file format. This + * routine is used internally together with + * DataOutInterface::write_vtu_header() and + * DataOutInterface::write_vtu_footer() by DataOutBase::write_vtu(). + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_vtu_main( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out); + /** * This function writes the main part for the xml based vtu file format. This * routine is used internally together with @@ -2020,6 +2229,25 @@ namespace DataOutBase const VtkFlags &flags, std::ostream & out); + /** + * Some visualization programs, such as ParaView, can read several separate + * VTU files that all form part of the same simulation, in order to + * parallelize visualization. In that case, you need a + * .pvtu file that describes which VTU files (written, for + * example, through the DataOutInterface::write_vtu() function) form a group. + * The current function can generate such a master record. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + DEAL_II_DEPRECATED + void + write_pvtu_record( + std::ostream & out, + const std::vector &piece_names, + const std::vector &data_names, + const std::vector> + &nonscalar_data_ranges); + /** * Some visualization programs, such as ParaView, can read several separate * VTU files that all form part of the same simulation, in order to @@ -2213,6 +2441,21 @@ namespace DataOutBase const std::vector>> ×_and_piece_names); + /** + * Write the given list of patches to the output stream in SVG format. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_svg( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const SvgFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in SVG format. * @@ -2247,6 +2490,27 @@ namespace DataOutBase const SvgFlags &flags, std::ostream & out); + /** + * Write the given list of patches to the output stream in deal.II + * intermediate format. This is not a format understood by any other + * graphics program, but is rather a direct dump of the intermediate + * internal format used by deal.II. This internal format is generated by the + * various classes that can generate output using the DataOutBase class, for + * example from a finite element solution, and is then converted in the + * present class to the final graphics format. + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_deal_II_intermediate( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const Deal_II_IntermediateFlags &flags, + std::ostream & out); + /** * Write the given list of patches to the output stream in deal.II * intermediate format. This is not a format understood by any other @@ -2325,6 +2589,23 @@ namespace DataOutBase const std::string &solution_filename, MPI_Comm comm); + /** + * DataOutFilter is an intermediate data format that reduces the amount of + * data that will be written to files. The object filled by this function + * can then later be used again to write data in a concrete file format; + * see, for example, DataOutBase::write_hdf5_parallel(). + * + * @deprecated Use the version using DataComponentInterpretation instead. + */ + template + DEAL_II_DEPRECATED void + write_filtered_data( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + DataOutFilter &filtered_data); + /** * DataOutFilter is an intermediate data format that reduces the amount of * data that will be written to files. The object filled by this function @@ -2911,6 +3192,17 @@ protected: virtual std::vector get_dataset_names() const = 0; + /** + * This functions returns information about how the individual components of + * output files that consist of more than one data set are to be + * interpreted. + * + * @deprecated Use get_nonscalar_data_ranges instead. + */ + DEAL_II_DEPRECATED + virtual std::vector> + get_vector_data_ranges() const; + /** * This functions returns information about how the individual components of * output files that consist of more than one data set are to be diff --git a/source/base/data_out_base.cc b/source/base/data_out_base.cc index 87d6acce50..c1b3a3aef0 100644 --- a/source/base/data_out_base.cc +++ b/source/base/data_out_base.cc @@ -2757,6 +2757,29 @@ namespace DataOutBase + template + void + write_ucd( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> &, + const UcdFlags &flags, + std::ostream & out) + { + write_ucd( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_ucd( @@ -2848,6 +2871,30 @@ namespace DataOutBase } + + template + void + write_dx( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> &, + const DXFlags &flags, + std::ostream & out) + { + write_dx( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_dx( @@ -3134,6 +3181,29 @@ namespace DataOutBase + template + void + write_gnuplot( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> &, + const GnuplotFlags &flags, + std::ostream & out) + { + write_gnuplot( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_gnuplot( @@ -3348,6 +3418,29 @@ namespace DataOutBase + template + void + write_povray( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> &, + const PovrayFlags &flags, + std::ostream & out) + { + write_povray( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_povray( @@ -3681,6 +3774,21 @@ namespace DataOutBase + template + void + write_eps( + const std::vector> & /*patches*/, + const std::vector & /*data_names*/, + const std::vector> &, + const EpsFlags & /*flags*/, + std::ostream & /*out*/) + { + // not implemented, see the documentation of the function + AssertThrow(dim == 2, ExcNotImplemented()); + } + + + template void write_eps( @@ -3699,6 +3807,30 @@ namespace DataOutBase } + + template + void + write_eps( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> &, + const EpsFlags &flags, + std::ostream & out) + { + write_eps( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_eps( @@ -4030,6 +4162,29 @@ namespace DataOutBase + template + void + write_gmv( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> &, + const GmvFlags &flags, + std::ostream & out) + { + write_gmv( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_gmv( @@ -4167,6 +4322,29 @@ namespace DataOutBase + template + void + write_tecplot( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> &, + const TecplotFlags &flags, + std::ostream & out) + { + write_tecplot( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_tecplot( @@ -4398,6 +4576,42 @@ namespace DataOutBase + template + void + write_tecplot_binary( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const TecplotFlags &flags, + std::ostream & out) + { + const unsigned int size = nonscalar_data_ranges.size(); + std::vector< + std::tuple> + new_nonscalar_data_ranges(size); + for (unsigned int i = 0; i < size; ++i) + { + new_nonscalar_data_ranges[i] = + std::tuple( + std::get<0>(nonscalar_data_ranges[i]), + std::get<1>(nonscalar_data_ranges[i]), + std::get<2>(nonscalar_data_ranges[i]), + DataComponentInterpretation::component_is_part_of_vector); + } + + write_tecplot_binary( + patches, data_names, new_nonscalar_data_ranges, flags, out); + } + + + template void write_tecplot_binary( @@ -4728,6 +4942,41 @@ namespace DataOutBase + template + void + write_vtk( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out) + { + const unsigned int size = nonscalar_data_ranges.size(); + std::vector< + std::tuple> + new_nonscalar_data_ranges(size); + for (unsigned int i = 0; i < size; ++i) + { + new_nonscalar_data_ranges[i] = + std::tuple( + std::get<0>(nonscalar_data_ranges[i]), + std::get<1>(nonscalar_data_ranges[i]), + std::get<2>(nonscalar_data_ranges[i]), + DataComponentInterpretation::component_is_part_of_vector); + } + + write_vtk(patches, data_names, new_nonscalar_data_ranges, flags, out); + } + + + template void write_vtk( @@ -5016,6 +5265,25 @@ namespace DataOutBase + template + void + write_vtu( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out) + { + write_vtu_header(out, flags); + write_vtu_main(patches, data_names, nonscalar_data_ranges, flags, out); + write_vtu_footer(out); + + out << std::flush; + } + + + template void write_vtu( @@ -5038,6 +5306,42 @@ namespace DataOutBase } + + template + void + write_vtu_main( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out) + { + const unsigned int size = nonscalar_data_ranges.size(); + std::vector< + std::tuple> + new_nonscalar_data_ranges(size); + for (unsigned int i = 0; i < size; ++i) + { + new_nonscalar_data_ranges[i] = + std::tuple( + std::get<0>(nonscalar_data_ranges[i]), + std::get<1>(nonscalar_data_ranges[i]), + std::get<2>(nonscalar_data_ranges[i]), + DataComponentInterpretation::component_is_part_of_vector); + } + + write_vtu_main(patches, data_names, new_nonscalar_data_ranges, flags, out); + } + + + template void write_vtu_main( @@ -5364,6 +5668,39 @@ namespace DataOutBase + void + write_pvtu_record( + std::ostream & out, + const std::vector &piece_names, + const std::vector &data_names, + const std::vector> + &nonscalar_data_ranges) + { + const unsigned int size = nonscalar_data_ranges.size(); + std::vector< + std::tuple> + new_nonscalar_data_ranges(size); + for (unsigned int i = 0; i < size; ++i) + { + new_nonscalar_data_ranges[i] = + std::tuple( + std::get<0>(nonscalar_data_ranges[i]), + std::get<1>(nonscalar_data_ranges[i]), + std::get<2>(nonscalar_data_ranges[i]), + DataComponentInterpretation::component_is_part_of_vector); + } + + write_pvtu_record(out, piece_names, data_names, new_nonscalar_data_ranges); + } + + + void write_pvtu_record( std::ostream & out, @@ -5580,6 +5917,20 @@ namespace DataOutBase + template + void + write_svg( + const std::vector> &, + const std::vector &, + const std::vector> &, + const SvgFlags &, + std::ostream &) + { + Assert(false, ExcNotImplemented()); + } + + + template void write_svg( @@ -5596,6 +5947,32 @@ namespace DataOutBase Assert(false, ExcNotImplemented()); } + + + template + void + write_svg( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> & + /*nonscalar_data_ranges*/, + const SvgFlags &flags, + std::ostream & out) + { + write_svg( + patches, + data_names, + std::vector< + std::tuple>{}, + flags, + out); + } + + + template void write_svg( @@ -6586,6 +6963,42 @@ namespace DataOutBase + template + void + write_deal_II_intermediate( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + const Deal_II_IntermediateFlags &flags, + std::ostream & out) + { + const unsigned int size = nonscalar_data_ranges.size(); + std::vector< + std::tuple> + new_nonscalar_data_ranges(size); + for (unsigned int i = 0; i < size; ++i) + { + new_nonscalar_data_ranges[i] = + std::tuple( + std::get<0>(nonscalar_data_ranges[i]), + std::get<1>(nonscalar_data_ranges[i]), + std::get<2>(nonscalar_data_ranges[i]), + DataComponentInterpretation::component_is_part_of_vector); + } + + write_deal_II_intermediate( + patches, data_names, new_nonscalar_data_ranges, flags, out); + } + + + template void write_deal_II_intermediate( @@ -7066,6 +7479,8 @@ DataOutInterface::write_filtered_data( filtered_data); } + + template void DataOutBase::write_filtered_data( @@ -7078,6 +7493,43 @@ DataOutBase::write_filtered_data( DataComponentInterpretation::DataComponentInterpretation>> & nonscalar_data_ranges, DataOutBase::DataOutFilter &filtered_data) +{ + const unsigned int size = nonscalar_data_ranges.size(); + std::vector< + std::tuple> + new_nonscalar_data_ranges(size); + for (unsigned int i = 0; i < size; ++i) + { + new_nonscalar_data_ranges[i] = + std::tuple( + std::get<0>(nonscalar_data_ranges[i]), + std::get<1>(nonscalar_data_ranges[i]), + std::get<2>(nonscalar_data_ranges[i]), + DataComponentInterpretation::component_is_part_of_vector); + } + + DataOutBase::write_filtered_data(patches, + data_names, + new_nonscalar_data_ranges, + filtered_data); +} + + + +template +void +DataOutBase::write_filtered_data( + const std::vector> &patches, + const std::vector & data_names, + const std::vector> + & nonscalar_data_ranges, + DataOutBase::DataOutFilter &filtered_data) { const unsigned int n_data_sets = data_names.size(); unsigned int n_node, n_cell; @@ -7844,6 +8296,29 @@ DataOutInterface::get_nonscalar_data_ranges() const } + +template +std::vector> +DataOutInterface::get_vector_data_ranges() const +{ + const auto &nonscalar_data_ranges = get_nonscalar_data_ranges(); + + const unsigned int size = nonscalar_data_ranges.size(); + std::vector> + vector_data_ranges(size); + for (unsigned int i = 0; i < size; ++i) + { + vector_data_ranges[i] = + std::tuple( + std::get<0>(nonscalar_data_ranges[i]), + std::get<1>(nonscalar_data_ranges[i]), + std::get<2>(nonscalar_data_ranges[i])); + } + return vector_data_ranges; +} + + + template void DataOutInterface::validate_dataset_names() const diff --git a/source/base/data_out_base.inst.in b/source/base/data_out_base.inst.in index 9d5b79ce5a..6edd3eb289 100644 --- a/source/base/data_out_base.inst.in +++ b/source/base/data_out_base.inst.in @@ -34,6 +34,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; operator>>(std::istream & in, Patch &patch); + template void + write_vtk( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out); + template void write_vtk( const std::vector> @@ -48,6 +58,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const VtkFlags &flags, std::ostream & out); + template void + write_vtu( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const VtkFlags &flags, + std::ostream & out); + template void write_vtu( const std::vector> @@ -62,6 +82,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const VtkFlags &flags, std::ostream & out); + template void + write_ucd( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const UcdFlags &flags, + std::ostream & out); + template void write_ucd( const std::vector> @@ -76,6 +106,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const UcdFlags &flags, std::ostream & out); + template void + write_dx( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const DXFlags &flags, + std::ostream & out); + template void write_dx( const std::vector> @@ -90,6 +130,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const DXFlags &flags, std::ostream & out); + template void + write_gnuplot( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const GnuplotFlags &flags, + std::ostream & out); + template void write_gnuplot( const std::vector> @@ -104,6 +154,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const GnuplotFlags &flags, std::ostream & out); + template void + write_povray( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const PovrayFlags &flags, + std::ostream & out); + template void write_povray( const std::vector> @@ -118,6 +178,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const PovrayFlags &flags, std::ostream & out); + template void + write_eps( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const EpsFlags &flags, + std::ostream & out); + template void write_eps( const std::vector> @@ -132,6 +202,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const EpsFlags &flags, std::ostream & out); + template void + write_gmv( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const GmvFlags &flags, + std::ostream & out); + template void write_gmv( const std::vector> @@ -146,6 +226,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const GmvFlags &flags, std::ostream & out); + template void + write_tecplot( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const TecplotFlags &flags, + std::ostream & out); + template void write_tecplot( const std::vector> @@ -160,6 +250,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const TecplotFlags &flags, std::ostream & out); + template void + write_tecplot_binary( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const TecplotFlags &flags, + std::ostream & out); + template void write_tecplot_binary( const std::vector> @@ -175,6 +275,16 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; std::ostream & out); # if deal_II_space_dimension > 1 + template void + write_svg( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const SvgFlags &flags, + std::ostream & out); + template void write_svg( const std::vector> @@ -189,6 +299,17 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const SvgFlags &flags, std::ostream & out); # endif + + template void + write_deal_II_intermediate( + const std::vector> + & patches, + const std::vector &data_names, + const std::vector> + & nonscalar_data_ranges, + const Deal_II_IntermediateFlags &flags, + std::ostream & out); + template void write_deal_II_intermediate( const std::vector> @@ -211,6 +332,14 @@ for (deal_II_dimension : OUTPUT_DIMENSIONS; const std::string & filename, MPI_Comm comm); + template void + write_filtered_data( + const std::vector> &, + const std::vector &, + const std::vector> + &, + DataOutBase::DataOutFilter &); + template void write_filtered_data( const std::vector> &, -- 2.39.5