From: bangerth Date: Sun, 12 May 2013 21:37:12 +0000 (+0000) Subject: Implement writing time and cycle to VTU files. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3bb38a6d981230392ec7503bb5c13c2d752505c;p=dealii-svn.git Implement writing time and cycle to VTU files. git-svn-id: https://svn.dealii.org/trunk@29501 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h index 26c06d08d1..f24fbf9816 100644 --- a/deal.II/doc/news/changes.h +++ b/deal.II/doc/news/changes.h @@ -117,6 +117,14 @@ this function.
    +
  1. Improved: Through the fields DataOutBase::VtkFlags::time and +DataOutBase::VtkFlags::cycle, it is now possible to encode the time and/or +cycle within a nonlinear or other iteration in VTK and VTU files written +via DataOutBase::write_vtk and DataOutBase::write_vtu. +
    +(Wolfgang Bangerth, 2013/05/12) +
  2. +
  3. Improved: The functions MatrixTools::create_mass_matrix and MatrixTools::create_laplace_matrix take now an optional ConstraintMatrix argument that allows to directly apply the constraints. This also helps diff --git a/deal.II/source/base/data_out_base.cc b/deal.II/source/base/data_out_base.cc index f5a7448b64..3791998d04 100644 --- a/deal.II/source/base/data_out_base.cc +++ b/deal.II/source/base/data_out_base.cc @@ -4670,7 +4670,7 @@ DataOutBase::write_vtk (const std::vector > &patches, // now output the data header out << "DATASET UNSTRUCTURED_GRID\n" << '\n'; -} + } // if desired, output time and cycle of the simulation, following // the instructions at @@ -5017,6 +5017,37 @@ void DataOutBase::write_vtu_main (const std::vector > &patch } #endif + // first up: metadata + // + // if desired, output time and cycle of the simulation, following + // the instructions at + // http://www.visitusers.org/index.php?title=Time_and_Cycle_in_VTK_files + { + const unsigned int + n_metadata = ((flags.cycle != std::numeric_limits::min() ? 1 : 0) + + + (flags.time != std::numeric_limits::min() ? 1 : 0)); + if (n_metadata > 0) + out << "\n"; + + if (flags.cycle != std::numeric_limits::min()) + { + out << "" + << flags.cycle + << "\n"; + } + if (flags.time != std::numeric_limits::min()) + { + out << "" + << flags.time + << "\n"; + } + + if (n_metadata > 0) + out << "\n"; +} + + VtuStream vtu_out(out, flags); const unsigned int n_data_sets = data_names.size(); diff --git a/tests/base/data_out_base_vtu_cycle.cc b/tests/base/data_out_base_vtu_cycle.cc new file mode 100644 index 0000000000..b5f727d07f --- /dev/null +++ b/tests/base/data_out_base_vtu_cycle.cc @@ -0,0 +1,88 @@ +//----------------------------------------------------------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2006, 2007, 2010, 2013 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------------------------- + +// like data_out_base_vtu, but output cycle as well + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream& out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtu(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream& log) +{ +#if SEPARATE_FILES == 0 + std::ostream& out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.cycle = 42; + + if (true) { + sprintf(name, "data_out_base_vtu_cycle/%d%d.vtu", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtu_cycle/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtu_cycle/cmp/generic b/tests/base/data_out_base_vtu_cycle/cmp/generic new file mode 100644 index 0000000000..f9fc0459d2 --- /dev/null +++ b/tests/base/data_out_base_vtu_cycle/cmp/generic @@ -0,0 +1,230 @@ +============================== +data_out_base_vtu_cycle/11.vtu +============================== + + + + + +42 + + + + +AQAAAFABAABQAQAANQAAAA==eNpjYMAHPtiTJv4DhziDA7Hiq1eBABOGeFgoCLDiMIeDRHEuHOI8OMT5cIgLYIgDAH+pDF0= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_cycle/12.vtu +============================== + + + + + +42 + + + + +AQAAAFABAABQAQAASgAAAA==eNpjYMAHPtij0oTEf9ij0nDggEbjFF+9CgSYHGA0TDwsFARYHWA0qjEcDqg0IXEuB1QaBngcUGkY4HNApWFAwAGVZmAAAJsiGLk= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_cycle/22.vtu +============================== + + + + + +42 + + + + +AQAAABAFAAAQBQAAoAAAAA==eNqVkMsKw0AIAKVQWETEP2p+ovnI5Od63GPJwS3YTB7enIWZRJGj+bzk1nvuV3kHLtOxp4Ong6eDJ9+rp/Kxn/J12ebxx+f3Nk/wNPQX3/BXnv7K07/PZSrfNfyV5155+vd5/k+D+zS4T4P7XOUK3IA78DjpKnQVugpdha5C16Br0DXoGnQNug5dh65D16Hr0A3oBnQDugHdH/8CMeJb0Q== + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_cycle/23.vtu +============================== + + + + + +42 + + + + +AQAAABAFAAAQBQAA0gAAAA==eNqNUVsOgjAQRCNJQ2rT8tLb2EvAIfFyfvJpEAbDtGPsz2Rmt9PdaVH8Oq/HnzweOdAIHTgLzn7MuW8m/RLzdSN8Tcz7WvIBeqEX8Tkt55zwcVhOuetHbmJ+nvQ+OPC09efr1e4H/dM2XJM5pq2f3xu3/iMvKYfv+6t/EPt4ygf3QpLHOk9N94Gt0IGV4JZ0cEe6S/bLc/atCJ2oe6pDD1SHXou5vZgjELfkw3M15GdFzo58eM9G5NoSB3Yij17k3oocO5FLL/7zRhx4j28uS4pw + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_cycle/33.vtu +============================== + + + + + +42 + + + + +AQAAAAAVAAAAFQAAtwEAAA==eNqdljtuxDAMRIUAAQxCIOZGySWSQyaX29LlYgsV0e4zh3FDaGz+hh95jKvn9jFa79fZ1SN9+q4rT8DHZ0/vBHzZcf2cgK+zGxfFR/5In+SeV5U36e15VTyRH+LrZsZNcVR1IH1f/v48nrcn/Pvr8byD3mHbW+cdX/Zf+z/suNZ3O77Or/M47Pz+xnFAHAfo1zwRX5TndXzPdknu/O/23bqRvZ3/3b5bf4pr5/81P3UfUX7UT9d9MEp+iRfKp+prskty57+aD6ob2dv5r+aM6k9xXc/bMPuY87vup2HWiXm65muYcTDf/5MB+AQ8AVfTTwA+AU/A1cwjAJ+AJ+Bq8hSAT8ATcDXrEIBPwBNwNescJu9R8KVmH5GcgCfgavYp+ZmAJ+BqzgHlMQFPwNWcM+JpAp6AqznHYc7tLOZNzT0RZl1nUQ819xD5I5mAq7nnorCXcE7w6+7RKOIV+BV85+7pMPd+FvtazXsgzL2QxTyrec+E2TdZ1FvNeyxMu5VU856Moh9l+lHzHg7zv0FFHmre82HeKxVPav5HhLl3qjqo+Z8SZl9WdVbzPyjMuKs+epZ3Ou4XOQ== + + + + + +AQAAAIAMAACADAAAVwMAAA==eNptkVVTEFAQRrG7u7ADu7tbwQ7s7u7uRrEbDMTuQsXu7hbzr/jtzHnauQ/n5e7Zb2fuFxEREZFOZBDpRUaRSWQRmUVWkU3kFDlEPpFfFBIFmWUXuXBsVkAUxsnBex6Rmx17LyqKMLPdvDiF2C2G4+8VFyVEpCgVuGezkqI0jr9XiveyokzgXiS75XDKiwqiiqgs6on6orFoxKyiiMKxWQPRBMdmlURVHJs1FE1xKrNXXVQj0/aai2bMbK8GTmP2WuBEkV0TpwnZLXGqsVdb1CLT9lqLVsxsrw5Oc/ba4NQguy5OC7Lb4vj/aCfai86iU+A/bNZBdMHx/2GzjqIrjv+PTuzFiOjAf3RmrxuO/48uZHfH8f8RzV5P0SPwHzHs9cLx/9GN7N44/j/6iL5igIgN/IfN+omBOP4/bNZfDMLx/xHL3hAxOPAfA9gbiuP/YyDZw3D8fwxmb4QYHviPIeyNxPH/MZTsUTijxRgxUUwQS8RSsUqsZDZWTMKx2TKxGsdm48RkHJstF2twbDZeTMGx2QqxFmcCudPEVG5a7nqxjpnlTsdZRe4GnEnkzsBZTW4czmRuz8RZw+2NOFPJnS1mcdNy48UmZpY7B2c9uZtxppM7F2cDuVtwZnB7Hk4ct7fizCJ3gZjPTcvdLrYxs9yFOPHk7sCZQ+4inM3k7sSZy+3FOFu4vQvH971b7BGJIiHQt832igM4vm+b7RMHcXzfNtsvDuH4vhPITRKHA30nknsEx/d9gNxkHN/3QW4fxfF9Hyb3uDgW6DuJ3BM4vu8j5J7E8X0nc/sUju/7GLlnxOlA38fJPYvj+z5B7jkc3/dJbp/H8X1fEBdFirga6Ntml8Q1HN+3zS6L6zi+b5tdETdwfN9Xyb0pUgN9p5B7C8f3fY3c2zi+7+vcvoPj+04l9564G+j7Jrn3cXzft8h9gOP7vs3thzi+77vkPhaPAn3fI/cJju/7PrlPcXzfD7j9DMf3/Vy8EG/Fm0DfNnsp3uH4vm32SrzH8X3b7LX4gOP7fkPuJ/Ex0Pdbcj/j+L7fkfsFx/f9nttfcXzfH8n9Lr4F+v5E7g8c3/dnctNwfN9fuP0Tx/f9jdzf4leg7+/k/sHxff8g9y+O7zuN2/9w/gOh1n+I + + +AQAAAJABAACQAQAAmAAAAA==eNoNzRGAhEAAAMD9fzkMwzA8DMMwDMMwDMPDMAzDMAzDMAzDw/AHhucVQoiISUh5k5FTUFJR09DS0fNhYGRiZmFlY+fg5OLmy0P4CeFFRExCypuMnIKSipqGlo6eDwMjEzMLKxs7BycXN18ewq+fiJiElDcZOQUlFTUNLR09HwZGJmYWVjZ2Dk4ubr48hD8/ETEJ/xaiL0A= + + +AQAAAGQAAABkAAAADAAAAA==eNrj4aE9AADtHASx + + + + +AQAAAAAHAAAABwAAQAAAAA==eNpjYEAGH+wZyOLD6B8weYfhIQ6mF6xaxQSiE0JDWaHiHKPyI0IeRnNBaR4ozQelBUbVjaobVTeE1QEAes2Cfw== + +AQAAAAAHAAAABwAASwAAAA==eNpjYMAGPtij0oTkcdE/cNAMDtjpwWYOXnrBqlVM+OiE0FBWfDQQcBCgR+0fWPuJpbmIpHmIpPmIpAWIpEf9MeqPUX9gowFLHIJ/ + +AQAAAAAHAAAABwAAOAAAAA==eNpjYCAGfLCnD/2DSjSDwzCgF6xaxTSQdEJoKOtA0kDAMUpTheYaJjTPMKH5hgktMORpAO0qgn8= + +AQAAAAAHAAAABwAAHwAAAA==eNpjYKAG+GA/PGkGh1F6JNMco/QoPUoPYxoAo8lTHg== + +AQAAAAAHAAAABwAA4wAAAA==eNrt0TlKZVEYhdEdGhoYGFQgIiIiopZ9e+3K3mevZTuVf2hnSA5B4a3AARiJJ1n3Y3OCy0m+nvctH12fAQ5yiMP80+Vb7o9wlGMc5wQnOcVpznCWc/zLeS5wkUtc5gpXf/h/rXGdG9zkFru+xWxrZkczu5rZ08y+Zv5p5kAzh5o50syxZk40c6qZM82ca6ane7/v//v+n+eib8diYy7tLDbmys5iY67tLDbmxs5iY27tLDbmzs5iY+7tLDbmwc5iY/7bWWzMo53FxjzZWWzMs53FxrzYWWzMq53Fxrx1H/t9lj8= + + + + diff --git a/tests/base/data_out_base_vtu_time.cc b/tests/base/data_out_base_vtu_time.cc new file mode 100644 index 0000000000..a6c46c6d71 --- /dev/null +++ b/tests/base/data_out_base_vtu_time.cc @@ -0,0 +1,88 @@ +//----------------------------------------------------------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2006, 2007, 2010, 2013 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------------------------- + +// like data_out_base_vtu, but output time as well + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream& out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtu(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream& log) +{ +#if SEPARATE_FILES == 0 + std::ostream& out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.time = numbers::PI; + + if (true) { + sprintf(name, "data_out_base_vtu_time/%d%d.vtu", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtu_time/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtu_time/cmp/generic b/tests/base/data_out_base_vtu_time/cmp/generic new file mode 100644 index 0000000000..68f1f5f09d --- /dev/null +++ b/tests/base/data_out_base_vtu_time/cmp/generic @@ -0,0 +1,230 @@ +============================== +data_out_base_vtu_time/11.vtu +============================== + + + + + +3.14159 + + + + +AQAAAFABAABQAQAANQAAAA==eNpjYMAHPtiTJv4DhziDA7Hiq1eBABOGeFgoCLDiMIeDRHEuHOI8OMT5cIgLYIgDAH+pDF0= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time/12.vtu +============================== + + + + + +3.14159 + + + + +AQAAAFABAABQAQAASgAAAA==eNpjYMAHPtij0oTEf9ij0nDggEbjFF+9CgSYHGA0TDwsFARYHWA0qjEcDqg0IXEuB1QaBngcUGkY4HNApWFAwAGVZmAAAJsiGLk= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time/22.vtu +============================== + + + + + +3.14159 + + + + +AQAAABAFAAAQBQAAoAAAAA==eNqVkMsKw0AIAKVQWETEP2p+ovnI5Od63GPJwS3YTB7enIWZRJGj+bzk1nvuV3kHLtOxp4Ong6eDJ9+rp/Kxn/J12ebxx+f3Nk/wNPQX3/BXnv7K07/PZSrfNfyV5155+vd5/k+D+zS4T4P7XOUK3IA78DjpKnQVugpdha5C16Br0DXoGnQNug5dh65D16Hr0A3oBnQDugHdH/8CMeJb0Q== + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time/23.vtu +============================== + + + + + +3.14159 + + + + +AQAAABAFAAAQBQAA0gAAAA==eNqNUVsOgjAQRCNJQ2rT8tLb2EvAIfFyfvJpEAbDtGPsz2Rmt9PdaVH8Oq/HnzweOdAIHTgLzn7MuW8m/RLzdSN8Tcz7WvIBeqEX8Tkt55zwcVhOuetHbmJ+nvQ+OPC09efr1e4H/dM2XJM5pq2f3xu3/iMvKYfv+6t/EPt4ygf3QpLHOk9N94Gt0IGV4JZ0cEe6S/bLc/atCJ2oe6pDD1SHXou5vZgjELfkw3M15GdFzo58eM9G5NoSB3Yij17k3oocO5FLL/7zRhx4j28uS4pw + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time/33.vtu +============================== + + + + + +3.14159 + + + + +AQAAAAAVAAAAFQAAtwEAAA==eNqdljtuxDAMRIUAAQxCIOZGySWSQyaX29LlYgsV0e4zh3FDaGz+hh95jKvn9jFa79fZ1SN9+q4rT8DHZ0/vBHzZcf2cgK+zGxfFR/5In+SeV5U36e15VTyRH+LrZsZNcVR1IH1f/v48nrcn/Pvr8byD3mHbW+cdX/Zf+z/suNZ3O77Or/M47Pz+xnFAHAfo1zwRX5TndXzPdknu/O/23bqRvZ3/3b5bf4pr5/81P3UfUX7UT9d9MEp+iRfKp+prskty57+aD6ob2dv5r+aM6k9xXc/bMPuY87vup2HWiXm65muYcTDf/5MB+AQ8AVfTTwA+AU/A1cwjAJ+AJ+Bq8hSAT8ATcDXrEIBPwBNwNescJu9R8KVmH5GcgCfgavYp+ZmAJ+BqzgHlMQFPwNWcM+JpAp6AqznHYc7tLOZNzT0RZl1nUQ819xD5I5mAq7nnorCXcE7w6+7RKOIV+BV85+7pMPd+FvtazXsgzL2QxTyrec+E2TdZ1FvNeyxMu5VU856Moh9l+lHzHg7zv0FFHmre82HeKxVPav5HhLl3qjqo+Z8SZl9WdVbzPyjMuKs+epZ3Ou4XOQ== + + + + + +AQAAAIAMAACADAAAVwMAAA==eNptkVVTEFAQRrG7u7ADu7tbwQ7s7u7uRrEbDMTuQsXu7hbzr/jtzHnauQ/n5e7Zb2fuFxEREZFOZBDpRUaRSWQRmUVWkU3kFDlEPpFfFBIFmWUXuXBsVkAUxsnBex6Rmx17LyqKMLPdvDiF2C2G4+8VFyVEpCgVuGezkqI0jr9XiveyokzgXiS75XDKiwqiiqgs6on6orFoxKyiiMKxWQPRBMdmlURVHJs1FE1xKrNXXVQj0/aai2bMbK8GTmP2WuBEkV0TpwnZLXGqsVdb1CLT9lqLVsxsrw5Oc/ba4NQguy5OC7Lb4vj/aCfai86iU+A/bNZBdMHx/2GzjqIrjv+PTuzFiOjAf3RmrxuO/48uZHfH8f8RzV5P0SPwHzHs9cLx/9GN7N44/j/6iL5igIgN/IfN+omBOP4/bNZfDMLx/xHL3hAxOPAfA9gbiuP/YyDZw3D8fwxmb4QYHviPIeyNxPH/MZTsUTijxRgxUUwQS8RSsUqsZDZWTMKx2TKxGsdm48RkHJstF2twbDZeTMGx2QqxFmcCudPEVG5a7nqxjpnlTsdZRe4GnEnkzsBZTW4czmRuz8RZw+2NOFPJnS1mcdNy48UmZpY7B2c9uZtxppM7F2cDuVtwZnB7Hk4ct7fizCJ3gZjPTcvdLrYxs9yFOPHk7sCZQ+4inM3k7sSZy+3FOFu4vQvH971b7BGJIiHQt832igM4vm+b7RMHcXzfNtsvDuH4vhPITRKHA30nknsEx/d9gNxkHN/3QW4fxfF9Hyb3uDgW6DuJ3BM4vu8j5J7E8X0nc/sUju/7GLlnxOlA38fJPYvj+z5B7jkc3/dJbp/H8X1fEBdFirga6Ntml8Q1HN+3zS6L6zi+b5tdETdwfN9Xyb0pUgN9p5B7C8f3fY3c2zi+7+vcvoPj+04l9564G+j7Jrn3cXzft8h9gOP7vs3thzi+77vkPhaPAn3fI/cJju/7PrlPcXzfD7j9DMf3/Vy8EG/Fm0DfNnsp3uH4vm32SrzH8X3b7LX4gOP7fkPuJ/Ex0Pdbcj/j+L7fkfsFx/f9nttfcXzfH8n9Lr4F+v5E7g8c3/dnctNwfN9fuP0Tx/f9jdzf4leg7+/k/sHxff8g9y+O7zuN2/9w/gOh1n+I + + +AQAAAJABAACQAQAAmAAAAA==eNoNzRGAhEAAAMD9fzkMwzA8DMMwDMMwDMPDMAzDMAzDMAzDw/AHhucVQoiISUh5k5FTUFJR09DS0fNhYGRiZmFlY+fg5OLmy0P4CeFFRExCypuMnIKSipqGlo6eDwMjEzMLKxs7BycXN18ewq+fiJiElDcZOQUlFTUNLR09HwZGJmYWVjZ2Dk4ubr48hD8/ETEJ/xaiL0A= + + +AQAAAGQAAABkAAAADAAAAA==eNrj4aE9AADtHASx + + + + +AQAAAAAHAAAABwAAQAAAAA==eNpjYEAGH+wZyOLD6B8weYfhIQ6mF6xaxQSiE0JDWaHiHKPyI0IeRnNBaR4ozQelBUbVjaobVTeE1QEAes2Cfw== + +AQAAAAAHAAAABwAASwAAAA==eNpjYMAGPtij0oTkcdE/cNAMDtjpwWYOXnrBqlVM+OiE0FBWfDQQcBCgR+0fWPuJpbmIpHmIpPmIpAWIpEf9MeqPUX9gowFLHIJ/ + +AQAAAAAHAAAABwAAOAAAAA==eNpjYCAGfLCnD/2DSjSDwzCgF6xaxTSQdEJoKOtA0kDAMUpTheYaJjTPMKH5hgktMORpAO0qgn8= + +AQAAAAAHAAAABwAAHwAAAA==eNpjYKAG+GA/PGkGh1F6JNMco/QoPUoPYxoAo8lTHg== + +AQAAAAAHAAAABwAA4wAAAA==eNrt0TlKZVEYhdEdGhoYGFQgIiIiopZ9e+3K3mevZTuVf2hnSA5B4a3AARiJJ1n3Y3OCy0m+nvctH12fAQ5yiMP80+Vb7o9wlGMc5wQnOcVpznCWc/zLeS5wkUtc5gpXf/h/rXGdG9zkFru+xWxrZkczu5rZ08y+Zv5p5kAzh5o50syxZk40c6qZM82ca6ane7/v//v+n+eib8diYy7tLDbmys5iY67tLDbmxs5iY27tLDbmzs5iY+7tLDbmwc5iY/7bWWzMo53FxjzZWWzMs53FxrzYWWzMq53Fxrx1H/t9lj8= + + + + diff --git a/tests/base/data_out_base_vtu_time_and_cycle.cc b/tests/base/data_out_base_vtu_time_and_cycle.cc new file mode 100644 index 0000000000..6297b2024e --- /dev/null +++ b/tests/base/data_out_base_vtu_time_and_cycle.cc @@ -0,0 +1,90 @@ +//----------------------------------------------------------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2006, 2007, 2010, 2013 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------------------------- + +// like data_out_base_vtu, but output time and cycle as well + + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream& out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtu(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream& log) +{ +#if SEPARATE_FILES == 0 + std::ostream& out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.time = numbers::PI; + flags.cycle = 42; + + if (true) { + sprintf(name, "data_out_base_vtu_time_and_cycle/%d%d.vtu", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtu_time_and_cycle/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtu_time_and_cycle/cmp/generic b/tests/base/data_out_base_vtu_time_and_cycle/cmp/generic new file mode 100644 index 0000000000..56487bf5cd --- /dev/null +++ b/tests/base/data_out_base_vtu_time_and_cycle/cmp/generic @@ -0,0 +1,235 @@ +============================== +data_out_base_vtu_time_and_cycle/11.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAAFABAABQAQAANQAAAA==eNpjYMAHPtiTJv4DhziDA7Hiq1eBABOGeFgoCLDiMIeDRHEuHOI8OMT5cIgLYIgDAH+pDF0= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time_and_cycle/12.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAAFABAABQAQAASgAAAA==eNpjYMAHPtij0oTEf9ij0nDggEbjFF+9CgSYHGA0TDwsFARYHWA0qjEcDqg0IXEuB1QaBngcUGkY4HNApWFAwAGVZmAAAJsiGLk= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time_and_cycle/22.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAABAFAAAQBQAAoAAAAA==eNqVkMsKw0AIAKVQWETEP2p+ovnI5Od63GPJwS3YTB7enIWZRJGj+bzk1nvuV3kHLtOxp4Ong6eDJ9+rp/Kxn/J12ebxx+f3Nk/wNPQX3/BXnv7K07/PZSrfNfyV5155+vd5/k+D+zS4T4P7XOUK3IA78DjpKnQVugpdha5C16Br0DXoGnQNug5dh65D16Hr0A3oBnQDugHdH/8CMeJb0Q== + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time_and_cycle/23.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAABAFAAAQBQAA0gAAAA==eNqNUVsOgjAQRCNJQ2rT8tLb2EvAIfFyfvJpEAbDtGPsz2Rmt9PdaVH8Oq/HnzweOdAIHTgLzn7MuW8m/RLzdSN8Tcz7WvIBeqEX8Tkt55zwcVhOuetHbmJ+nvQ+OPC09efr1e4H/dM2XJM5pq2f3xu3/iMvKYfv+6t/EPt4ygf3QpLHOk9N94Gt0IGV4JZ0cEe6S/bLc/atCJ2oe6pDD1SHXou5vZgjELfkw3M15GdFzo58eM9G5NoSB3Yij17k3oocO5FLL/7zRhx4j28uS4pw + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time_and_cycle/33.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAAAAVAAAAFQAAtwEAAA==eNqdljtuxDAMRIUAAQxCIOZGySWSQyaX29LlYgsV0e4zh3FDaGz+hh95jKvn9jFa79fZ1SN9+q4rT8DHZ0/vBHzZcf2cgK+zGxfFR/5In+SeV5U36e15VTyRH+LrZsZNcVR1IH1f/v48nrcn/Pvr8byD3mHbW+cdX/Zf+z/suNZ3O77Or/M47Pz+xnFAHAfo1zwRX5TndXzPdknu/O/23bqRvZ3/3b5bf4pr5/81P3UfUX7UT9d9MEp+iRfKp+prskty57+aD6ob2dv5r+aM6k9xXc/bMPuY87vup2HWiXm65muYcTDf/5MB+AQ8AVfTTwA+AU/A1cwjAJ+AJ+Bq8hSAT8ATcDXrEIBPwBNwNescJu9R8KVmH5GcgCfgavYp+ZmAJ+BqzgHlMQFPwNWcM+JpAp6AqznHYc7tLOZNzT0RZl1nUQ819xD5I5mAq7nnorCXcE7w6+7RKOIV+BV85+7pMPd+FvtazXsgzL2QxTyrec+E2TdZ1FvNeyxMu5VU856Moh9l+lHzHg7zv0FFHmre82HeKxVPav5HhLl3qjqo+Z8SZl9WdVbzPyjMuKs+epZ3Ou4XOQ== + + + + + +AQAAAIAMAACADAAAVwMAAA==eNptkVVTEFAQRrG7u7ADu7tbwQ7s7u7uRrEbDMTuQsXu7hbzr/jtzHnauQ/n5e7Zb2fuFxEREZFOZBDpRUaRSWQRmUVWkU3kFDlEPpFfFBIFmWUXuXBsVkAUxsnBex6Rmx17LyqKMLPdvDiF2C2G4+8VFyVEpCgVuGezkqI0jr9XiveyokzgXiS75XDKiwqiiqgs6on6orFoxKyiiMKxWQPRBMdmlURVHJs1FE1xKrNXXVQj0/aai2bMbK8GTmP2WuBEkV0TpwnZLXGqsVdb1CLT9lqLVsxsrw5Oc/ba4NQguy5OC7Lb4vj/aCfai86iU+A/bNZBdMHx/2GzjqIrjv+PTuzFiOjAf3RmrxuO/48uZHfH8f8RzV5P0SPwHzHs9cLx/9GN7N44/j/6iL5igIgN/IfN+omBOP4/bNZfDMLx/xHL3hAxOPAfA9gbiuP/YyDZw3D8fwxmb4QYHviPIeyNxPH/MZTsUTijxRgxUUwQS8RSsUqsZDZWTMKx2TKxGsdm48RkHJstF2twbDZeTMGx2QqxFmcCudPEVG5a7nqxjpnlTsdZRe4GnEnkzsBZTW4czmRuz8RZw+2NOFPJnS1mcdNy48UmZpY7B2c9uZtxppM7F2cDuVtwZnB7Hk4ct7fizCJ3gZjPTcvdLrYxs9yFOPHk7sCZQ+4inM3k7sSZy+3FOFu4vQvH971b7BGJIiHQt832igM4vm+b7RMHcXzfNtsvDuH4vhPITRKHA30nknsEx/d9gNxkHN/3QW4fxfF9Hyb3uDgW6DuJ3BM4vu8j5J7E8X0nc/sUju/7GLlnxOlA38fJPYvj+z5B7jkc3/dJbp/H8X1fEBdFirga6Ntml8Q1HN+3zS6L6zi+b5tdETdwfN9Xyb0pUgN9p5B7C8f3fY3c2zi+7+vcvoPj+04l9564G+j7Jrn3cXzft8h9gOP7vs3thzi+77vkPhaPAn3fI/cJju/7PrlPcXzfD7j9DMf3/Vy8EG/Fm0DfNnsp3uH4vm32SrzH8X3b7LX4gOP7fkPuJ/Ex0Pdbcj/j+L7fkfsFx/f9nttfcXzfH8n9Lr4F+v5E7g8c3/dnctNwfN9fuP0Tx/f9jdzf4leg7+/k/sHxff8g9y+O7zuN2/9w/gOh1n+I + + +AQAAAJABAACQAQAAmAAAAA==eNoNzRGAhEAAAMD9fzkMwzA8DMMwDMMwDMPDMAzDMAzDMAzDw/AHhucVQoiISUh5k5FTUFJR09DS0fNhYGRiZmFlY+fg5OLmy0P4CeFFRExCypuMnIKSipqGlo6eDwMjEzMLKxs7BycXN18ewq+fiJiElDcZOQUlFTUNLR09HwZGJmYWVjZ2Dk4ubr48hD8/ETEJ/xaiL0A= + + +AQAAAGQAAABkAAAADAAAAA==eNrj4aE9AADtHASx + + + + +AQAAAAAHAAAABwAAQAAAAA==eNpjYEAGH+wZyOLD6B8weYfhIQ6mF6xaxQSiE0JDWaHiHKPyI0IeRnNBaR4ozQelBUbVjaobVTeE1QEAes2Cfw== + +AQAAAAAHAAAABwAASwAAAA==eNpjYMAGPtij0oTkcdE/cNAMDtjpwWYOXnrBqlVM+OiE0FBWfDQQcBCgR+0fWPuJpbmIpHmIpPmIpAWIpEf9MeqPUX9gowFLHIJ/ + +AQAAAAAHAAAABwAAOAAAAA==eNpjYCAGfLCnD/2DSjSDwzCgF6xaxTSQdEJoKOtA0kDAMUpTheYaJjTPMKH5hgktMORpAO0qgn8= + +AQAAAAAHAAAABwAAHwAAAA==eNpjYKAG+GA/PGkGh1F6JNMco/QoPUoPYxoAo8lTHg== + +AQAAAAAHAAAABwAA4wAAAA==eNrt0TlKZVEYhdEdGhoYGFQgIiIiopZ9e+3K3mevZTuVf2hnSA5B4a3AARiJJ1n3Y3OCy0m+nvctH12fAQ5yiMP80+Vb7o9wlGMc5wQnOcVpznCWc/zLeS5wkUtc5gpXf/h/rXGdG9zkFru+xWxrZkczu5rZ08y+Zv5p5kAzh5o50syxZk40c6qZM82ca6ane7/v//v+n+eib8diYy7tLDbmys5iY67tLDbmxs5iY27tLDbmzs5iY+7tLDbmwc5iY/7bWWzMo53FxjzZWWzMs53FxrzYWWzMq53Fxrx1H/t9lj8= + + + +