// ---------------------------------------------------------------------
//
-// Copyright (C) 1999 - 2014 by the deal.II authors
+// Copyright (C) 1999 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
*/
virtual cell_iterator next_cell (const cell_iterator &cell);
- /**
- * Exception
- */
- DeclException1 (ExcInvalidNumberOfSubdivisions,
- int,
- << "The number of subdivisions per patch, " << arg1
- << ", is not valid. It needs to be greater or equal "
- << "to one.");
-
private:
/**
template <int, int> class FEValuesBase;
+
+/**
+ * A namespace for exceptions that are used throughout the DataOut*
+ * collection of classes.
+ */
+namespace DataOutExceptions
+{
+ /**
+ * Exception
+ */
+ DeclException1 (ExcInvalidNumberOfSubdivisions,
+ int,
+ << "The number of subdivisions per patch, " << arg1
+ << ", is not valid. It needs to be greater or equal to "
+ "one, or zero if you want it to be determined "
+ "automatically.");
+
+ /**
+ * Exception
+ */
+ DeclExceptionMsg (ExcNoTriangulationSelected,
+ "For the operation you are attempting, you first need to "
+ "tell the DataOut or related object which DoFHandler or "
+ "triangulation you would like to work on.");
+
+ /**
+ * Exception
+ */
+ DeclExceptionMsg (ExcNoDoFHandlerSelected,
+ "For the operation you are attempting, you first need to "
+ "tell the DataOut or related object which DoFHandler "
+ "you would like to work on.");
+
+ /**
+ * Exception
+ */
+ DeclException3 (ExcInvalidVectorSize,
+ int, int, int,
+ << "The vector has size " << arg1
+ << " but the DoFHandler object says that there are " << arg2
+ << " degrees of freedom and there are " << arg3
+ << " active cells. The size of your vector needs to be"
+ << " either equal to the number of degrees of freedom, or"
+ << " equal to the number of active cells.");
+ /**
+ * Exception
+ */
+ 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
+ << ">, within which the invalid character is <" << arg1[arg2]
+ << ">." << std::endl);
+ /**
+ * Exception
+ */
+ DeclExceptionMsg (ExcOldDataStillPresent,
+ "When attaching a triangulation or DoFHandler object, it is "
+ "not allowed if old data vectors are still referenced. If "
+ "you want to reuse an object of the current type, you first "
+ "need to call the 'clear_data_vector()' function.");
+ /**
+ * Exception
+ */
+ 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);
+ /**
+ * Exception
+ */
+ DeclExceptionMsg (ExcIncompatibleDatasetNames,
+ "While merging sets of patches, the two sets to be merged "
+ "need to refer to data that agrees on the names of the "
+ "various variables represented. In other words, you "
+ "cannot merge sets of patches that originate from "
+ "entirely unrelated simulations.");
+ /**
+ * Exception
+ */
+ DeclExceptionMsg (ExcIncompatiblePatchLists,
+ "While merging sets of patches, the two sets to be merged "
+ "need to refer to data that agrees on the number of "
+ "subdivisions and other properties. In other words, you "
+ "cannot merge sets of patches that originate from "
+ "entirely unrelated simulations.");
+
+ 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.");
+}
+
+
namespace internal
{
namespace DataOut
*/
std::size_t memory_consumption () const;
- /**
- * Exception
- */
- DeclExceptionMsg (ExcNoTriangulationSelected,
- "For the operation you are attempting, you first need to "
- "tell the DataOut or related object which DoFHandler or "
- "triangulation you would like to work on.");
-
- /**
- * Exception
- */
- DeclExceptionMsg (ExcNoDoFHandlerSelected,
- "For the operation you are attempting, you first need to "
- "tell the DataOut or related object which DoFHandler "
- "you would like to work on.");
-
- /**
- * Exception
- */
- DeclException3 (ExcInvalidVectorSize,
- int, int, int,
- << "The vector has size " << arg1
- << " but the DoFHandler object says that there are " << arg2
- << " degrees of freedom and there are " << arg3
- << " active cells. The size of your vector needs to be"
- << " either equal to the number of degrees of freedom, or"
- << " equal to the number of active cells.");
- /**
- * Exception
- */
- 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
- << ">, within which the invalid character is <" << arg1[arg2]
- << ">." << std::endl);
- /**
- * Exception
- */
- DeclExceptionMsg (ExcOldDataStillPresent,
- "When attaching a triangulation or DoFHandler object, it is "
- "not allowed if old data vectors are still referenced. If "
- "you want to reuse an object of the current type, you first "
- "need to call the 'clear_data_vector()' function.");
- /**
- * Exception
- */
- 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);
- /**
- * Exception
- */
- DeclExceptionMsg (ExcIncompatibleDatasetNames,
- "While merging sets of patches, the two sets to be merged "
- "need to refer to data that agrees on the names of the "
- "various variables represented. In other words, you "
- "cannot merge sets of patches that originate from "
- "entirely unrelated simulations.");
- /**
- * Exception
- */
- DeclExceptionMsg (ExcIncompatiblePatchLists,
- "While merging sets of patches, the two sets to be merged "
- "need to refer to data that agrees on the number of "
- "subdivisions and other properties. In other words, you "
- "cannot merge sets of patches that originate from "
- "entirely unrelated simulations.");
-
- 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.");
-
protected:
/**
* Abbreviate the somewhat lengthy name for the Patch class.
// check equality of component
// names
Assert (get_dataset_names() == source.get_dataset_names(),
- ExcIncompatibleDatasetNames());
+ DataOutExceptions::ExcIncompatibleDatasetNames());
// make sure patches are compatible. we'll
// assume that if the first respective
// patches are ok that all the other ones
// are ok as well
Assert (patches[0].n_subdivisions == source_patches[0].n_subdivisions,
- ExcIncompatiblePatchLists());
+ DataOutExceptions::ExcIncompatiblePatchLists());
Assert (patches[0].data.n_rows() == source_patches[0].data.n_rows(),
- ExcIncompatiblePatchLists());
+ DataOutExceptions::ExcIncompatiblePatchLists());
Assert (patches[0].data.n_cols() == source_patches[0].data.n_cols(),
- ExcIncompatiblePatchLists());
+ DataOutExceptions::ExcIncompatiblePatchLists());
// check equality of the vector data
// specifications
// ---------------------------------------------------------------------
//
-// Copyright (C) 2000 - 2014 by the deal.II authors
+// Copyright (C) 2000 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
*/
virtual FaceDescriptor next_face (const FaceDescriptor &face);
- /**
- * Exception
- */
- DeclException1 (ExcInvalidNumberOfSubdivisions,
- int,
- << "The number of subdivisions per patch, " << arg1
- << ", is not valid. It needs to be greater or equal "
- << "to one.");
-
private:
/**
* Parameter deciding between surface meshes and full wire basket.
// ---------------------------------------------------------------------
//
-// Copyright (C) 2000 - 2014 by the deal.II authors
+// Copyright (C) 2000 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
*/
virtual cell_iterator next_cell (const cell_iterator &cell);
- /**
- * Exception
- */
- DeclException1 (ExcInvalidNumberOfSubdivisions,
- int,
- << "The number of subdivisions per patch, " << arg1
- << ", is not valid. It needs to be greater or equal to "
- "one, or zero if you want it to be determined "
- "automatically.");
/**
* Exception
*/
// ---------------------------------------------------------------------
//
-// Copyright (C) 1999 - 2014 by the deal.II authors
+// Copyright (C) 1999 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
#include <deal.II/base/data_out_base.h>
#include <deal.II/base/smartpointer.h>
#include <deal.II/lac/vector.h>
+#include <deal.II/numerics/data_out_dof_data.h>
#include <string>
#include <vector>
*/
std::size_t memory_consumption () const;
- /**
- * Exception
- */
- DeclExceptionMsg (ExcNoDoFHandlerSelected,
- "For the operation you are attempting, you first need to "
- "tell the DataOut or related object which DoFHandler "
- "you would like to work on.");
- /**
- * Exception
- */
- DeclException3 (ExcInvalidVectorSize,
- int, int, int,
- << "The vector has size " << arg1
- << " but the DoFHandler object says that there are " << arg2
- << " degrees of freedom and there are " << arg3
- << " active cells. The size of your vector needs to be"
- << " either equal to the number of degrees of freedom, or"
- << " equal to the number of active cells.");
- /**
- * Exception
- */
- 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
- << ">, within which the invalid character is <" << arg1[arg2]
- << ">." << std::endl);
- /**
- * Exception
- */
- 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);
/**
* Exception
*/
std::string,
<< "You tried to declare a component of a data vector with "
<< "the name <" << arg1 << ">, but that name is already used.");
- /**
- * Exception
- */
- DeclException1 (ExcInvalidNumberOfSubdivisions,
- int,
- << "The number of subdivisions per patch, " << arg1
- << ", is not valid. It needs to be greater or equal "
- << "to one.");
private:
/**
// ---------------------------------------------------------------------
//
-// Copyright (C) 1999 - 2014 by the deal.II authors
+// Copyright (C) 1999 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
// Check consistency of redundant template parameter
Assert (dim==DH::dimension, ExcDimensionMismatch(dim, DH::dimension));
- typedef DataOut_DoFData<DH, DH::dimension, DH::space_dimension> BaseClass;
Assert (this->triangulation != 0,
- typename BaseClass::ExcNoTriangulationSelected());
+ DataOutExceptions::ExcNoTriangulationSelected());
const unsigned int n_subdivisions = (n_subdivisions_ != 0)
? n_subdivisions_
: this->default_subdivisions;
Assert (n_subdivisions >= 1,
- ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
// First count the cells we want to create patches of. Also fill the object
// that maps the cell indices to the patch numbers, as this will be needed
Assert (names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789_<>()") == std::string::npos,
- typename dealii::DataOut<DH::dimension>::
- ExcInvalidCharacter (names[i],
- names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "0123456789_<>()")));
+ DataOutExceptions::ExcInvalidCharacter (names[i],
+ names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "0123456789_<>()")));
}
Assert (names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789_<>()") == std::string::npos,
- typename dealii::DataOut<DH::dimension>::
- ExcInvalidCharacter (names[i],
- names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "0123456789_<>()")));
+ DataOutExceptions::ExcInvalidCharacter (names[i],
+ names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "0123456789_<>()")));
}
DataOut_DoFData<DH,patch_dim,patch_space_dim>::
attach_dof_handler (const DH &d)
{
- Assert (dof_data.size() == 0, ExcOldDataStillPresent());
- Assert (cell_data.size() == 0, ExcOldDataStillPresent());
+ Assert (dof_data.size() == 0,
+ DataOutExceptions::ExcOldDataStillPresent());
+ Assert (cell_data.size() == 0,
+ DataOutExceptions::ExcOldDataStillPresent());
triangulation = SmartPointer<const Triangulation<DH::dimension,DH::space_dimension> >(&d.get_tria(), typeid(*this).name());
dofs = SmartPointer<const DH>(&d, typeid(*this).name());
DataOut_DoFData<DH,patch_dim,patch_space_dim>::
attach_triangulation (const Triangulation<DH::dimension,DH::space_dimension> &tria)
{
- Assert (dof_data.size() == 0, ExcOldDataStillPresent());
- Assert (cell_data.size() == 0, ExcOldDataStillPresent());
+ Assert (dof_data.size() == 0,
+ DataOutExceptions::ExcOldDataStillPresent());
+ Assert (cell_data.size() == 0,
+ DataOutExceptions::ExcOldDataStillPresent());
triangulation = SmartPointer<const Triangulation<DH::dimension,DH::space_dimension> >(&tria, typeid(*this).name());
}
const DataVectorType type,
const std::vector<DataComponentInterpretation::DataComponentInterpretation> &data_component_interpretation)
{
- Assert (triangulation != 0, ExcNoTriangulationSelected ());
+ Assert (triangulation != 0,
+ DataOutExceptions::ExcNoTriangulationSelected ());
const unsigned int n_components =
dofs != 0 ? dofs->get_fe().n_components () : 1;
const DataVectorType type,
const std::vector<DataComponentInterpretation::DataComponentInterpretation> &data_component_interpretation_)
{
- Assert (triangulation != 0, ExcNoTriangulationSelected ());
+ Assert (triangulation != 0,
+ DataOutExceptions::ExcNoTriangulationSelected ());
const std::vector<DataComponentInterpretation::DataComponentInterpretation> &
data_component_interpretation
ExcDimensionMismatch (vec.size(),
triangulation->n_active_cells()));
Assert (names.size() == 1,
- ExcInvalidNumberOfNames (names.size(), 1));
+ DataOutExceptions::ExcInvalidNumberOfNames (names.size(), 1));
break;
case type_dof_data:
- Assert (dofs != 0, ExcNoDoFHandlerSelected ());
+ Assert (dofs != 0,
+ DataOutExceptions::ExcNoDoFHandlerSelected ());
Assert (vec.size() == dofs->n_dofs(),
- ExcInvalidVectorSize (vec.size(),
- dofs->n_dofs(),
- triangulation->n_active_cells()));
+ DataOutExceptions::ExcInvalidVectorSize (vec.size(),
+ dofs->n_dofs(),
+ triangulation->n_active_cells()));
Assert (names.size() == dofs->get_fe().n_components(),
- ExcInvalidNumberOfNames (names.size(), dofs->get_fe().n_components()));
+ DataOutExceptions::ExcInvalidNumberOfNames (names.size(),
+ dofs->get_fe().n_components()));
break;
case type_automatic:
// things a bit simpler, we also don't need to deal with some of the other
// stuff and use a different constructor of DataEntry
- Assert (dofs != 0, ExcNoDoFHandlerSelected ());
+ Assert (dofs != 0,
+ DataOutExceptions::ExcNoDoFHandlerSelected ());
Assert (vec.size() == dofs->n_dofs(),
- ExcInvalidVectorSize (vec.size(),
- dofs->n_dofs(),
- dofs->get_tria().n_active_cells()));
+ DataOutExceptions::ExcInvalidVectorSize (vec.size(),
+ dofs->n_dofs(),
+ dofs->get_tria().n_active_cells()));
internal::DataOut::DataEntryBase<DH> *new_entry
= new internal::DataOut::DataEntry<DH,VECTOR>(dofs, &vec, &data_postprocessor);
// deal with vectors
Assert (i+patch_space_dim <=
(*d)->n_output_variables,
- ExcInvalidVectorDeclaration (i,
- (*d)->names[i]));
+ DataOutExceptions::ExcInvalidVectorDeclaration (i,
+ (*d)->names[i]));
for (unsigned int dd=1; dd<patch_space_dim; ++dd)
Assert ((*d)->data_component_interpretation[i+dd]
==
DataComponentInterpretation::component_is_part_of_vector,
- ExcInvalidVectorDeclaration (i,
- (*d)->names[i]));
+ DataOutExceptions::ExcInvalidVectorDeclaration (i,
+ (*d)->names[i]));
// all seems alright, so figure out
// whether there is a common name
finite_elements(this->dof_data.size());
for (unsigned int i=0; i<this->dof_data.size(); ++i)
{
- Assert (dof_data[i]->dof_handler != 0, ExcNoDoFHandlerSelected ());
+ Assert (dof_data[i]->dof_handler != 0,
+ DataOutExceptions::ExcNoDoFHandlerSelected ());
// avoid creating too many finite elements and doing a lot of work on
// initializing FEValues downstream: if two DoFHandlers are the same
// ---------------------------------------------------------------------
//
-// Copyright (C) 2000 - 2014 by the deal.II authors
+// Copyright (C) 2000 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
: this->default_subdivisions;
Assert (n_subdivisions >= 1,
- ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
- typedef DataOut_DoFData<DH,dimension+1> BaseClass;
Assert (this->triangulation != 0,
- typename BaseClass::ExcNoTriangulationSelected());
+ DataOutExceptions::ExcNoTriangulationSelected());
unsigned int n_datasets = this->cell_data.size();
for (unsigned int i=0; i<this->dof_data.size(); ++i)
// ---------------------------------------------------------------------
//
-// Copyright (C) 2000 - 2014 by the deal.II authors
+// Copyright (C) 2000 - 2015 by the deal.II authors
//
// This file is part of the deal.II library.
//
// Check consistency of redundant
// template parameter
Assert (dim==dimension, ExcDimensionMismatch(dim, dimension));
- typedef DataOut_DoFData<DH,dimension+1> BaseClass;
Assert (this->triangulation != 0,
- typename BaseClass::ExcNoTriangulationSelected());
+ DataOutExceptions::ExcNoTriangulationSelected());
const unsigned int n_subdivisions = (nnnn_subdivisions != 0)
? nnnn_subdivisions
: this->default_subdivisions;
Assert (n_subdivisions >= 1,
- ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
unsigned int n_datasets=this->cell_data.size();
for (unsigned int i=0; i<this->dof_data.size(); ++i)
void DataOutStack<dim,spacedim,DH>::add_data_vector (const Vector<number> &vec,
const std::vector<std::string> &names)
{
- Assert (dof_handler != 0, ExcNoDoFHandlerSelected ());
+ Assert (dof_handler != 0,
+ DataOutExceptions::ExcNoDoFHandlerSelected ());
// either cell data and one name,
// or dof data and n_components names
Assert (((vec.size() == dof_handler->get_tria().n_active_cells()) &&
||
((vec.size() == dof_handler->n_dofs()) &&
(names.size() == dof_handler->get_fe().n_components())),
- ExcInvalidNumberOfNames (names.size(), dof_handler->get_fe().n_components()));
+ DataOutExceptions::ExcInvalidNumberOfNames (names.size(),
+ dof_handler->get_fe().n_components()));
for (unsigned int i=0; i<names.size(); ++i)
Assert (names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789_<>()") == std::string::npos,
- ExcInvalidCharacter (names[i],
- names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "0123456789_<>()")));
+ DataOutExceptions::ExcInvalidCharacter (names[i],
+ names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "0123456789_<>()")));
if (vec.size() == dof_handler->n_dofs())
{
: this->default_subdivisions;
Assert (n_subdivisions >= 1,
- ExcInvalidNumberOfSubdivisions(n_subdivisions));
- Assert (dof_handler != 0, ExcNoDoFHandlerSelected());
+ DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ Assert (dof_handler != 0,
+ DataOutExceptions::ExcNoDoFHandlerSelected());
const unsigned int n_components = dof_handler->get_fe().n_components();
const unsigned int n_datasets = dof_data.size() * n_components +