Reference documentation for deal.II version Git 283ce71 2014-12-19 22:22:25 +0100
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | List of all members
DataOutRotation< dim, DH > Class Template Reference

#include <deal.II/numerics/data_out_rotation.h>

Inheritance diagram for DataOutRotation< dim, DH >:
[legend]

Public Types

typedef DataOut_DoFData< DH,
dimension+1 >::cell_iterator 
cell_iterator
 
- Public Types inherited from DataOut_DoFData< DH, DH::dimension+1 >
enum  DataVectorType
 
typedef Triangulation
< DH::dimension,
DH::space_dimension >
::cell_iterator 
cell_iterator
 
typedef Triangulation
< DH::dimension,
DH::space_dimension >
::active_cell_iterator 
active_cell_iterator
 

Public Member Functions

virtual void build_patches (const unsigned int n_patches_per_circle, const unsigned int n_subdivisions=0)
 
virtual cell_iterator first_cell ()
 
virtual cell_iterator next_cell (const cell_iterator &cell)
 
 DeclException1 (ExcInvalidNumberOfSubdivisions, int,<< "The number of subdivisions per patch, "<< arg1<< ", is not valid.")
 
 DeclException1 (ExcRadialVariableHasNegativeValues, double,<< "The radial variable attains a negative value of "<< arg1)
 
- Public Member Functions inherited from DataOut_DoFData< DH, DH::dimension+1 >
 DataOut_DoFData ()
 
virtual ~DataOut_DoFData ()
 
void attach_dof_handler (const DH &)
 
void attach_triangulation (const Triangulation< DH::dimension, DH::space_dimension > &)
 
void add_data_vector (const VECTOR &data, const std::vector< std::string > &names, const DataVectorType type=type_automatic, const std::vector< DataComponentInterpretation::DataComponentInterpretation > &data_component_interpretation=std::vector< DataComponentInterpretation::DataComponentInterpretation >())
 
void add_data_vector (const VECTOR &data, const std::string &name, const DataVectorType type=type_automatic, const std::vector< DataComponentInterpretation::DataComponentInterpretation > &data_component_interpretation=std::vector< DataComponentInterpretation::DataComponentInterpretation >())
 
void add_data_vector (const DH &dof_handler, const VECTOR &data, const std::vector< std::string > &names, const std::vector< DataComponentInterpretation::DataComponentInterpretation > &data_component_interpretation=std::vector< DataComponentInterpretation::DataComponentInterpretation >())
 
void add_data_vector (const DH &dof_handler, const VECTOR &data, const std::string &name, const std::vector< DataComponentInterpretation::DataComponentInterpretation > &data_component_interpretation=std::vector< DataComponentInterpretation::DataComponentInterpretation >())
 
void add_data_vector (const VECTOR &data, const DataPostprocessor< DH::space_dimension > &data_postprocessor)
 
void add_data_vector (const DH &dof_handler, const VECTOR &data, const DataPostprocessor< DH::space_dimension > &data_postprocessor)
 
void clear_data_vectors ()
 
void clear_input_data_references ()
 
void merge_patches (const DataOut_DoFData< DH2, patch_dim, patch_dim > &source, const Point< patch_dim > &shift=Point< patch_dim >())
 
virtual void clear ()
 
std::size_t memory_consumption () const
 
 DeclException0 (ExcNoTriangulationSelected)
 
 DeclException0 (ExcNoDoFHandlerSelected)
 
 DeclException0 (ExcDataPostprocessingIsNotPossibleForCellData)
 
 DeclException0 (ExcOldDataStillPresent)
 
 DeclException0 (ExcNoPatches)
 
 DeclException0 (ExcIncompatibleDatasetNames)
 
 DeclException0 (ExcIncompatiblePatchLists)
 
 DeclException3 (ExcInvalidVectorSize, int, int, int,<< "The vector has size "<< arg1<< " but the DoFHandler objects says there are "<< arg2<< " degrees of freedom and there are "<< arg3<< " active cells.")
 
 DeclException2 (ExcInvalidCharacter, std::string, size_t,<< "Please use only the characters [a-zA-Z0-9_<>()] for"<< std::endl<< "description strings since some graphics formats will only accept these."<< std::endl<< "The string you gave was <"<< arg1<< ">, the invalid character is <"<< arg1[arg2]<< ">."<< std::endl)
 
 DeclException2 (ExcInvalidNumberOfNames, int, int,<< "You have to give one name per component in your "<< "data vector. The number you gave was "<< arg1<< ", but the number of components is "<< arg2)
 
 DeclException2 (ExcInvalidVectorDeclaration, int, std::string,<< "When declaring that a number of components in a data\n"<< "set to be output logically form a vector instead of\n"<< "simply a set of scalar fields, you need to specify\n"<< "this for all relevant components. Furthermore,\n"<< "vectors must always consist of exactly <dim>\n"<< "components. However, the vector component at\n"<< "position "<< arg1<< " with name <"<< arg2<< "> does not satisfy these conditions.")
 
- Public Member Functions inherited from DataOutInterface< patch_dim, patch_dim >
 DataOutInterface ()
 
virtual ~DataOutInterface ()
 
void write_dx (std::ostream &out) const
 
void write_eps (std::ostream &out) const
 
void write_gmv (std::ostream &out) const
 
void write_gnuplot (std::ostream &out) const
 
void write_povray (std::ostream &out) const
 
void write_tecplot (std::ostream &out) const
 
void write_tecplot_binary (std::ostream &out) const
 
void write_ucd (std::ostream &out) const
 
void write_vtk (std::ostream &out) const
 
void write_vtu (std::ostream &out) const
 
void write_vtu_in_parallel (const char *filename, MPI_Comm comm) const
 
void write_pvtu_record (std::ostream &out, const std::vector< std::string > &piece_names) const
 
void write_pvd_record (std::ostream &out, const std::vector< std::pair< double, std::string > > &times_and_names) const
 
void write_visit_record (std::ostream &out, const std::vector< std::string > &piece_names) const
 
void write_visit_record (std::ostream &out, const std::vector< std::vector< std::string > > &piece_names) const
 
void write_svg (std::ostream &out) const
 
void write_deal_II_intermediate (std::ostream &out) const
 
XDMFEntry create_xdmf_entry (const std::string &h5_filename, const double cur_time, MPI_Comm comm) const DEAL_II_DEPRECATED
 
XDMFEntry create_xdmf_entry (const DataOutBase::DataOutFilter &data_filter, const std::string &h5_filename, const double cur_time, MPI_Comm comm) const
 
XDMFEntry create_xdmf_entry (const DataOutBase::DataOutFilter &data_filter, const std::string &h5_mesh_filename, const std::string &h5_solution_filename, const double cur_time, MPI_Comm comm) const
 
void write_xdmf_file (const std::vector< XDMFEntry > &entries, const std::string &filename, MPI_Comm comm) const
 
void write_hdf5_parallel (const std::string &filename, MPI_Comm comm) const DEAL_II_DEPRECATED
 
void write_hdf5_parallel (const DataOutBase::DataOutFilter &data_filter, const std::string &filename, MPI_Comm comm) const
 
void write_hdf5_parallel (const DataOutBase::DataOutFilter &data_filter, const bool write_mesh_file, const std::string &mesh_filename, const std::string &solution_filename, MPI_Comm comm) const
 
void write_filtered_data (DataOutBase::DataOutFilter &filtered_data) const
 
void write (std::ostream &out, const DataOutBase::OutputFormat output_format=DataOutBase::default_format) const
 
void set_default_format (const DataOutBase::OutputFormat default_format)
 
void set_flags (const DataOutBase::DXFlags &dx_flags)
 
void set_flags (const DataOutBase::UcdFlags &ucd_flags)
 
void set_flags (const DataOutBase::GnuplotFlags &gnuplot_flags)
 
void set_flags (const DataOutBase::PovrayFlags &povray_flags)
 
void set_flags (const DataOutBase::EpsFlags &eps_flags)
 
void set_flags (const DataOutBase::GmvFlags &gmv_flags)
 
void set_flags (const DataOutBase::TecplotFlags &tecplot_flags)
 
void set_flags (const DataOutBase::VtkFlags &vtk_flags)
 
void set_flags (const DataOutBase::SvgFlags &svg_flags)
 
void set_flags (const DataOutBase::Deal_II_IntermediateFlags &deal_II_intermediate_flags)
 
std::string default_suffix (const DataOutBase::OutputFormat output_format=DataOutBase::default_format) const
 
void parse_parameters (ParameterHandler &prm)
 
std::size_t memory_consumption () const
 

Static Public Attributes

static const unsigned int dimension = DH::dimension
 
static const unsigned int space_dimension = DH::space_dimension
 

Private Member Functions

void build_one_patch (const cell_iterator *cell, internal::DataOutRotation::ParallelData< dimension, space_dimension > &data, std::vector< DataOutBase::Patch< dimension+1, space_dimension+1 > > &patches)
 

Additional Inherited Members

- Static Public Member Functions inherited from DataOutInterface< patch_dim, patch_dim >
static void declare_parameters (ParameterHandler &prm)
 
- Protected Types inherited from DataOut_DoFData< DH, DH::dimension+1 >
typedef ::DataOutBase::Patch
< patch_dim, patch_dim > 
Patch
 
- Protected Member Functions inherited from DataOut_DoFData< DH, DH::dimension+1 >
virtual const std::vector
< Patch > & 
get_patches () const
 
virtual std::vector< std::string > get_dataset_names () const
 
std::vector
< std_cxx11::shared_ptr
<::hp::FECollection
< DH::dimension,
DH::space_dimension > > > 
get_finite_elements () const
 
virtual std::vector
< std_cxx11::tuple< unsigned
int, unsigned int, std::string > > 
get_vector_data_ranges () const
 
- Protected Attributes inherited from DataOut_DoFData< DH, DH::dimension+1 >
SmartPointer< const
Triangulation< DH::dimension,
DH::space_dimension > > 
triangulation
 
SmartPointer< const DH > dofs
 
std::vector
< std_cxx11::shared_ptr
< internal::DataOut::DataEntryBase
< DH > > > 
dof_data
 
std::vector
< std_cxx11::shared_ptr
< internal::DataOut::DataEntryBase
< DH > > > 
cell_data
 
std::vector< Patchpatches
 
- Protected Attributes inherited from DataOutInterface< patch_dim, patch_dim >
unsigned int default_subdivisions
 

Detailed Description

template<int dim, class DH = DoFHandler<dim>>
class DataOutRotation< dim, DH >

This class generates output in the full domain of computations that were done using rotational symmetry of domain and solution. In particular, if a computation of a three dimensional problem with rotational symmetry around the z-axis (i.e. in the r-z-plane) was done, then this class can be used to generate the output in the original x-y-z space. In order to do so, it generates from each cell in the computational mesh a cell in the space with dimension one greater than that of the DoFHandler object. The resulting output will then consist of hexahedra forming an object that has rotational symmetry around the z-axis. As most graphical programs can not represent ring-like structures, the angular (rotation) variable is discretized into a finite number of intervals as well; the number of these intervals must be given to the build_patches function. It is noted, however, that while this function generates nice pictures of the whole domain, it often produces very large output files.

Interface

The interface of this class is copied from the DataOut class. Furthermore, they share the common parent class DataOut_DoFData(). See the reference of these two classes for a discussion of the interface and how to extend it by deriving further classes from this class.

Details for 1d computations

The one coordinate in the triangulation used by the DoFHandler object passed to this class is taken as the radial variable, and the output will then be either a circle or a ring domain. It is in the user's responsibility to assure that the radial coordinate only attains non- negative values.

Details for 2d computations

We consider the computation (represented by the DoFHandler object that is attached to this class) to have happened in the r-z-plane, where r is the radial variable and z denotes the axis of revolution around which the solution is symmetric. The output is in x-y-z space, where the radial dependence is transformed to the x-y plane. At present, it is not possible to exchange the meaning of the first and second variable of the plane in which the simulation was made, i.e. generate output from a simulation where the first variable denoted the symmetry axis, and the second denoted the radial variable. You have to take that into account when first programming your application.

It is in the responsibility of the user to make sure that the radial variable attains only non-negative values.

Precondition
This class only makes sense if the first template argument, dim equals the dimension of the DoFHandler type given as the second template argument, i.e., if dim == DH::dimension. This redundancy is a historical relic from the time where the library had only a single DoFHandler class and this class consequently only a single template argument.
Author
Wolfgang Bangerth, 2000

Definition at line 119 of file data_out_rotation.h.

Member Typedef Documentation

template<int dim, class DH = DoFHandler<dim>>
typedef DataOut_DoFData<DH,dimension+1>::cell_iterator DataOutRotation< dim, DH >::cell_iterator

Typedef to the iterator type of the dof handler class under consideration.

Definition at line 138 of file data_out_rotation.h.

Member Function Documentation

template<int dim, class DH = DoFHandler<dim>>
virtual void DataOutRotation< dim, DH >::build_patches ( const unsigned int  n_patches_per_circle,
const unsigned int  n_subdivisions = 0 
)
virtual

This is the central function of this class since it builds the list of patches to be written by the low-level functions of the base class. See the general documentation of this class for further information.

In addition to the same parameters as found in the respective function of the DataOut class, the first parameter denotes into how many intervals the angular (rotation) variable is to be subdivided.

The function supports multithreading, if deal.II is compiled in multithreading mode.

template<int dim, class DH = DoFHandler<dim>>
virtual cell_iterator DataOutRotation< dim, DH >::first_cell ( )
virtual

Return the first cell which we want output for. The default implementation returns the first active cell, but you might want to return other cells in a derived class.

template<int dim, class DH = DoFHandler<dim>>
virtual cell_iterator DataOutRotation< dim, DH >::next_cell ( const cell_iterator cell)
virtual

Return the next cell after cell which we want output for. If there are no more cells, dofs->end() shall be returned.

The default implementation returns the next active cell, but you might want to return other cells in a derived class. Note that the default implementation assumes that the given cell is active, which is guaranteed as long as first_cell is also used from the default implementation. Overloading only one of the two functions might not be a good idea.

template<int dim, class DH = DoFHandler<dim>>
DataOutRotation< dim, DH >::DeclException1 ( ExcInvalidNumberOfSubdivisions  ,
int  ,
<< "The number of subdivisions per  patch,
"<< arg1<< "  ,
is not valid."   
)

Exception

template<int dim, class DH = DoFHandler<dim>>
DataOutRotation< dim, DH >::DeclException1 ( ExcRadialVariableHasNegativeValues  ,
double  ,
<< "The radial variable attains a negative value of "<<  arg1 
)

Exception

template<int dim, class DH = DoFHandler<dim>>
void DataOutRotation< dim, DH >::build_one_patch ( const cell_iterator cell,
internal::DataOutRotation< dim, DH >::ParallelData< dimension, space_dimension > &  data,
std::vector< DataOutBase::Patch< dimension+1, space_dimension+1 > > &  patches 
)
private

Builds every n_threads's patch. This function may be called in parallel. If multithreading is not used, the function is called once and generates all patches.

Member Data Documentation

template<int dim, class DH = DoFHandler<dim>>
const unsigned int DataOutRotation< dim, DH >::dimension = DH::dimension
static

An abbreviation for the dimension of the DoFHandler object we work with. Faces are then dimension-1 dimensional objects.

Definition at line 126 of file data_out_rotation.h.

template<int dim, class DH = DoFHandler<dim>>
const unsigned int DataOutRotation< dim, DH >::space_dimension = DH::space_dimension
static

An abbreviation for the spatial dimension within which the triangulation and DoFHandler are embedded in.

Definition at line 132 of file data_out_rotation.h.


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