* concept, the following two sections are kept from a previous
* version of this documentation.
*
- *
+ *
* <h4>Patches</h4>
*
* Grids can be thought of as a collection of cells; if you want to write out
* entirely free applications from knowledge which formats the library
* presently allows to output; several of the example programs show how to do
* this.
- *
+ *
* <h3>Output parameters</h3>
*
* All functions take a parameter which is a structure of type
* @ingroup output
* @author Wolfgang Bangerth, Guido Kanschat 1999, 2000, 2001, 2002, 2005, 2006.
*/
-class DataOutBase
+class DataOutBase
{
public:
/**
* parameter available.
*/
static const unsigned int space_dim=spacedim;
-
+
/**
* Corner points of a patch.
* Inner points are computed by
* we better store this.
*/
unsigned int patch_index;
-
+
/**
* Number of subdivisions with
* which this patch is to be
* etc.
*/
unsigned int n_subdivisions;
-
+
/**
* Data vectors. The format is
* as follows:
* output stream.
*/
bool points_are_available;
-
+
/**
* Default constructor. Sets
* <tt>n_subdivisions</tt> to one.
* our testsuite.
*/
bool operator == (const Patch &patch) const;
-
+
/**
* Determine an estimate for
* the memory consumption (in
* value.
*/
unsigned int memory_consumption () const;
-
+
/**
* Value to be used if this
* patch has no neighbor on
static const unsigned int no_neighbor = numbers::invalid_unsigned_int;
/** @addtogroup Exceptions
* @{ */
-
+
/**
* Exception
*/
*
* @ingroup output
*/
- struct DXFlags
+ struct DXFlags
{
/**
* Write neighbor
* binary format.
*/
bool coordinates_binary;
-
+
/**
* Write data vectors in
* binary format.
*/
bool data_binary;
-
+
/**
* Write binary coordinate
* vectors as double (64 bit)
* numbers instead of float (32 bit).
*/
bool data_double;
-
+
/**
* Constructor.
*/
const bool int_binary = false,
const bool coordinates_binary = false,
const bool data_binary = false);
-
+
/**
* Declare all flags with name
* and type as offered by this
*
* @ingroup output
*/
- struct UcdFlags
+ struct UcdFlags
{
/**
* Write a comment at the
* Default: <code>false</code>.
*/
bool write_preamble;
-
+
/**
* Constructor.
*/
*
* @ingroup output
*/
- struct GnuplotFlags
+ struct GnuplotFlags
{
private:
/**
* The flags thus obtained overwrite
* all previous contents of this object.
*/
- void parse_parameters (const ParameterHandler &prm);
+ void parse_parameters (const ParameterHandler &prm) const;
/**
* Determine an estimate for
*
* @ingroup output
*/
- struct PovrayFlags
+ struct PovrayFlags
{
/**
* Normal vector interpolation,
* default = false
*/
bool smooth;
-
+
/**
* Use bicubic patches (b-splines)
* instead of triangles.
* default = false
*/
bool external_data;
-
+
/**
* Constructor.
*/
PovrayFlags (const bool smooth = false,
const bool bicubic_patch = false,
const bool external_data = false);
-
+
/**
* Declare all flags with name
* and type as offered by this
*
* @ingroup output
*/
- struct EpsFlags
+ struct EpsFlags
{
/**
* This denotes the number of the
* <tt>height_vector</tt>.
*/
unsigned int color_vector;
-
+
/**
* Enum denoting the possibilities
* whether the scaling should be done
* See above. Default is <tt>width</tt>.
*/
SizeType size_type;
-
+
/**
* Width or height of the output
* as given in postscript units
* units. Default is 0.5.
*/
double line_width;
-
+
/**
* Angle of the line origin-viewer
* against the z-axis in degrees.
* the following:
*
* @verbatim
- *
+ *
* 3________7
* / /|
* / / |
- * 2/______6/ |
+ * 2/______6/ |
* | | | |
* O--> | 0___|___4
* | / | /
grey_scale_color_function (const double value,
const double min_value,
const double max_value);
-
+
/**
* This is one more
* alternative color function
reverse_grey_scale_color_function (const double value,
const double min_value,
const double max_value);
-
+
/**
* Constructor.
*/
*
* @ingroup output
*/
- struct GmvFlags
+ struct GmvFlags
{
private:
/**
* Default constructor.
*/
GmvFlags ();
-
+
/**
* Declare all flags with name
* and type as offered by this
* The flags thus obtained overwrite
* all previous contents of this object.
*/
- void parse_parameters (const ParameterHandler &prm);
+ void parse_parameters (const ParameterHandler &prm) const;
/**
* Determine an estimate for
*
* @ingroup output
*/
- struct TecplotFlags
+ struct TecplotFlags
{
public:
* variable stores this name.
*/
const char* zone_name;
-
+
/**
* Constructor
**/
TecplotFlags (const char* tecplot_binary_file_name = NULL,
const char* zone_name = NULL);
-
+
/**
* Declare all flags with name
* and type as offered by this
* The flags thus obtained overwrite
* all previous contents of this object.
*/
- void parse_parameters (const ParameterHandler &prm);
+ void parse_parameters (const ParameterHandler &prm) const;
/**
* Determine an estimate for
*
* @ingroup output
*/
- struct VtkFlags
+ struct VtkFlags
{
private:
/**
* The flags thus obtained overwrite
* all previous contents of this object.
*/
- void parse_parameters (const ParameterHandler &prm);
+ void parse_parameters (const ParameterHandler &prm) const;
/**
* Determine an estimate for
* The flags thus obtained overwrite
* all previous contents of this object.
*/
- void parse_parameters (const ParameterHandler &prm);
+ void parse_parameters (const ParameterHandler &prm) const;
/**
* Determine an estimate for
*/
unsigned int memory_consumption () const;
};
-
+
/**
* Provide a data type specifying
* the presently supported output
* SoftwareTecplot in text
* format.
*/
-
+
tecplot,
/**
* Output for @ref
* format.
*/
tecplot_binary,
-
+
/**
* Output in @ref
* SoftwareVTK format.
*/
vtk,
-
+
/**
* Output in deal.II
* intermediate format.
deal_II_intermediate
};
-
+
/**
* Write the given list of patches to the output stream in @ref
* SoftwareOpenDX format.
* A <tt>bicubic_patch</tt> is a 3-dimensional Bezier patch. It consists of 16 Points
* describing the surface. The 4 corner points are touched by the object,
* while the other 12 points pull and stretch the patch into shape.
- * One <tt>bicubic_patch</tt> is generated on each patch. Therefor the number of
+ * One <tt>bicubic_patch</tt> is generated on each patch. Therefor the number of
* subdivisions has to be 3 to provide the patch with 16 points.
* A bicubic patch is not exact but generates very smooth images.
*
* <li> <tt>MESH</tt>
* The mesh object is used to store large number of triangles.
- * Every square of the patch data is split into one upper-left and one
+ * Every square of the patch data is split into one upper-left and one
* lower-right triangle. If the number of subdivisions is three, 32 triangle
* are generated for every patch.
- *
+ *
* Using the smooth flag povray interpolates the normals on the triangles,
* imitating a curved surface
* </ul>
*
* All objects get one texture definition called Tex. This texture has to be
- * declared somewhere before the object data. This may be in an external
+ * declared somewhere before the object data. This may be in an external
* data file or at the beginning of the output file.
* Setting the <tt>external_data</tt> flag to false, an standard camera, light and
* texture (scaled to fit the scene) is added to the outputfile. Set to true
* several subdivisions of each cell. These subcells will then,
* however, also appear as different cells by programs which
* understand the UCD format.
- *
+ *
* No use is made of the possibility to give model data since these
* are not supported by all UCD aware programs. You may give cell data
* in derived classes by setting all values of a given data set on a
static
std::pair<unsigned int, unsigned int>
determine_intermediate_format_dimensions (std::istream &input);
-
+
/**
* Return the <tt>OutputFormat</tt>
* value corresponding to the
* </ul>
*/
static std::string default_suffix (const OutputFormat output_format);
-
+
/**
* Determine an estimate for
* the memory consumption (in
* value.
*/
static unsigned int memory_consumption ();
-
+
/** @addtogroup Exceptions
* @{ */
-
+
/**
* Exception
*/
char*,
<< "There was an error opening Tecplot file " << arg1
<< " for output");
-
- //@}
+
+ //@}
private:
/**
* Write the coordinates of nodes
class EpsCell2d
{
public:
-
+
/**
* Vector of vertices of this cell.
*/
Point<2> vertices[4];
-
+
/**
* Data value from which the actual
* colors will be computed by
* in the <tt>EpsFlags</tt> class.
*/
float color_value;
-
+
/**
* Depth into the picture, which
* is defined as the distance from
* direction of the line of sight.
*/
float depth;
-
+
/**
* Comparison operator for
* sorting.
* Likewise, there is a function <tt>parse_parameters</tt> which reads
* these parameters and stores them in the flags associated with
* this object (see above).
- *
+ *
* Using these functions, you do not have to track which formats are
* presently implemented.
*
using DataOutBase::parse_output_format;
using DataOutBase::get_output_format_names;
using DataOutBase::determine_intermediate_format_dimensions;
-
+
/**
* Constructor.
*/
DataOutInterface ();
-
+
/**
* Destructor. Does nothing, but is
* declared virtual since this class has
* DataOut::write_povray.
*/
void write_povray (std::ostream &out) const;
-
+
/**
* Obtain data through get_patches()
* and write it to <tt>out</tt>
* that was used for writing.
*/
void write_deal_II_intermediate (std::ostream &out) const;
-
+
/**
* Write data and grid to <tt>out</tt>
* according to the given data
* Set the flags to be used for output in
* deal.II intermediate format.
*/
- void set_flags (const Deal_II_IntermediateFlags &deal_II_intermediate_flags);
+ void set_flags (const Deal_II_IntermediateFlags &deal_II_intermediate_flags);
/**
* A function that returns the same
* by the set_flags() function.
*/
void parse_parameters (ParameterHandler &prm);
-
+
/**
* Determine an estimate for
* the memory consumption (in
virtual
std::vector<std_cxx1x::tuple<unsigned int, unsigned int, std::string> >
get_vector_data_ranges () const;
-
+
/**
* The default number of
* subdivisions for patches. This
* or in a parameter file.
*/
OutputFormat default_fmt;
-
+
/**
* Flags to be used upon output
* of OpenDX data. Can be changed by
* using the <tt>set_flags</tt>
* function.
*/
- EpsFlags eps_flags;
+ EpsFlags eps_flags;
/**
* Flags to be used upon output
* demonstrated in step-19.
*/
void merge (const DataOutReader<dim,spacedim> &other);
-
+
/**
* Exception
*/
<< arg2 << "> or the space dimensions <"
<< arg3 << "> and <" << arg4
<< "> do not match!");
-
+
protected:
/**
* This is the function
* time we read a file.
*/
virtual std::vector<std::string> get_dataset_names () const;
-
+
/**
* This functions returns
* information about how the