DataOutBase::Patch< dim, spacedim > Struct Template Reference
[Graphical output]

List of all members.

Public Member Functions

 Patch ()
bool operator== (const Patch &patch) const
unsigned int memory_consumption () const
 DeclException2 (ExcInvalidCombinationOfDimensions, int, int,<< "It is not possible to have a structural dimension of "<< arg1<< " to be larger than the space dimension of the surrounding"<< " space "<< arg2)

Public Attributes

Point< spacedim > vertices [GeometryInfo< dim >::vertices_per_cell]
unsigned int neighbors [GeometryInfo< dim >::faces_per_cell]
unsigned int patch_index
unsigned int n_subdivisions
Table< 2, float > data
bool points_are_available

Static Public Attributes

static const unsigned int space_dim = spacedim
static const unsigned int no_neighbor = numbers::invalid_unsigned_int

Detailed Description

template<int dim, int spacedim = dim>
struct DataOutBase::Patch< dim, spacedim >

Data structure describing a patch of data in dim space dimensions.

A patch consists of the following data:

See the general documentation of the DataOutBase class for more information on its contents and purposes. In the case of two dimensions, the next picture ist an example of n_subdivision = 4 because the number of (sub)cells within each patch is equal to 2^dim.

Author:
Wolfgang Bangerth, Guido Kanschat

Constructor & Destructor Documentation

template<int dim, int spacedim = dim>
DataOutBase::Patch< dim, spacedim >::Patch (  ) 

Default constructor. Sets n_subdivisions to one.


Member Function Documentation

template<int dim, int spacedim = dim>
bool DataOutBase::Patch< dim, spacedim >::operator== ( const Patch< dim, spacedim > &  patch  )  const

Compare the present patch for equality with another one. This is used in a few of the automated tests in our testsuite.

template<int dim, int spacedim = dim>
unsigned int DataOutBase::Patch< dim, spacedim >::memory_consumption (  )  const

Determine an estimate for the memory consumption (in bytes) of this object. Since sometimes the size of objects can not be determined exactly (for example: what is the memory consumption of an STL std::map type with a certain number of elements?), this is only an estimate. however often quite close to the true value.


Member Data Documentation

template<int dim, int spacedim = dim>
const unsigned int DataOutBase::Patch< dim, spacedim >::space_dim = spacedim [static]

Make the spacedim template parameter available.

template<int dim, int spacedim = dim>
Point<spacedim> DataOutBase::Patch< dim, spacedim >::vertices[GeometryInfo< dim >::vertices_per_cell]

Corner points of a patch. Inner points are computed by a multilinear transform of the unit cell to the cell specified by these corner points. The order of points is the same as for cells in the triangulation.

template<int dim, int spacedim = dim>
unsigned int DataOutBase::Patch< dim, spacedim >::neighbors[GeometryInfo< dim >::faces_per_cell]

Numbers of neighbors of a patch. OpenDX format requires neighbor information for advanced output. Here the neighborship relationship of patches is stored. During output, this must be transformed into neighborship of sub-grid cells.

template<int dim, int spacedim = dim>
unsigned int DataOutBase::Patch< dim, spacedim >::patch_index

Number of this patch. Since we are not sure patches are handled in the same order, always, we better store this.

template<int dim, int spacedim = dim>
unsigned int DataOutBase::Patch< dim, spacedim >::n_subdivisions

Number of subdivisions with which this patch is to be written. 1 means no subdivision, 2 means bisection, 3 trisection, etc.

template<int dim, int spacedim = dim>
Table<2,float> DataOutBase::Patch< dim, spacedim >::data

Data vectors. The format is as follows: data(i,.) denotes the data belonging to the ith data vector. data.n() therefore equals the number of output points; this number is (subdivisions+1)^{dim}. data.m() equals the number of data vectors.

Within each column, data(.,j) are the data values at the output point j, where j denotes the usual lexicographic ordering in deal.II. This is also the order of points as provided by the QIterated class when used with the QTrapez class as subquadrature.

Since the number of data vectors is usually the same for all patches to be printed, data.size() should yield the same value for all patches provided. The exception are patches for which points_are_available are set, where the actual coordinates of the point are appended to the 'data' field, see the documentation of the points_are_available flag.

template<int dim, int spacedim = dim>
bool DataOutBase::Patch< dim, spacedim >::points_are_available

Bool flag indicating, whether the coordinates of the inner patch points are appended to the data table (@ true) or not (@ false), where the second is the standard and can be found for all cells in the interior of a domain.

On the boundary of a domain, patch points are evaluated using a Mapping and therefore have to be stored inside the patch, as the Mapping and the corresponding boundary information are no longer available later on when we actually write the patch out to an output stream.

template<int dim, int spacedim = dim>
const unsigned int DataOutBase::Patch< dim, spacedim >::no_neighbor = numbers::invalid_unsigned_int [static]

Value to be used if this patch has no neighbor on one side.

Referenced by DataOut_DoFData< DH, patch_dim, patch_space_dim >::merge_patches().


The documentation for this struct was generated from the following file:

deal.II documentation generated on Mon Nov 23 22:57:36 2009 by doxygen 1.6.1