template <int, int> class FEValuesBase;
-/**
- * A namespace for exceptions that are used throughout the DataOut*
- * collection of classes.
- */
-namespace DataOutExceptions
+namespace Exceptions
{
/**
- * Exception
+ * A namespace for exceptions that are used throughout the DataOut*
+ * collection of classes.
*/
- 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.");
+ namespace DataOut
+ {
+ /**
+ * 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 (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
+ */
+ 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.");
+ /**
+ * 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 "
+ << "set to be output logically form a vector instead of "
+ << "simply a set of scalar fields, you need to specify "
+ << "this for all relevant components. Furthermore, "
+ << "vectors must always consist of exactly <dim> "
+ << "components. However, the vector component at "
+ << "position " << arg1 << " with name <" << arg2
+ << "> does not satisfy these conditions.");
+ }
}
// check equality of component
// names
Assert (get_dataset_names() == source.get_dataset_names(),
- DataOutExceptions::ExcIncompatibleDatasetNames());
+ Exceptions::DataOut::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,
- DataOutExceptions::ExcIncompatiblePatchLists());
+ Exceptions::DataOut::ExcIncompatiblePatchLists());
Assert (patches[0].data.n_rows() == source_patches[0].data.n_rows(),
- DataOutExceptions::ExcIncompatiblePatchLists());
+ Exceptions::DataOut::ExcIncompatiblePatchLists());
Assert (patches[0].data.n_cols() == source_patches[0].data.n_cols(),
- DataOutExceptions::ExcIncompatiblePatchLists());
+ Exceptions::DataOut::ExcIncompatiblePatchLists());
// check equality of the vector data
// specifications
Assert (dim==DH::dimension, ExcDimensionMismatch(dim, DH::dimension));
Assert (this->triangulation != 0,
- DataOutExceptions::ExcNoTriangulationSelected());
+ Exceptions::DataOut::ExcNoTriangulationSelected());
const unsigned int n_subdivisions = (n_subdivisions_ != 0)
? n_subdivisions_
: this->default_subdivisions;
Assert (n_subdivisions >= 1,
- DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ Exceptions::DataOut::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,
- DataOutExceptions::ExcInvalidCharacter (names[i],
- names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "0123456789_<>()")));
+ Exceptions::DataOut::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,
- DataOutExceptions::ExcInvalidCharacter (names[i],
- names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "0123456789_<>()")));
+ Exceptions::DataOut::ExcInvalidCharacter (names[i],
+ names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "0123456789_<>()")));
}
attach_dof_handler (const DH &d)
{
Assert (dof_data.size() == 0,
- DataOutExceptions::ExcOldDataStillPresent());
+ Exceptions::DataOut::ExcOldDataStillPresent());
Assert (cell_data.size() == 0,
- DataOutExceptions::ExcOldDataStillPresent());
+ Exceptions::DataOut::ExcOldDataStillPresent());
triangulation = SmartPointer<const Triangulation<DH::dimension,DH::space_dimension> >(&d.get_tria(), typeid(*this).name());
dofs = SmartPointer<const DH>(&d, typeid(*this).name());
attach_triangulation (const Triangulation<DH::dimension,DH::space_dimension> &tria)
{
Assert (dof_data.size() == 0,
- DataOutExceptions::ExcOldDataStillPresent());
+ Exceptions::DataOut::ExcOldDataStillPresent());
Assert (cell_data.size() == 0,
- DataOutExceptions::ExcOldDataStillPresent());
+ Exceptions::DataOut::ExcOldDataStillPresent());
triangulation = SmartPointer<const Triangulation<DH::dimension,DH::space_dimension> >(&tria, typeid(*this).name());
}
const std::vector<DataComponentInterpretation::DataComponentInterpretation> &data_component_interpretation)
{
Assert (triangulation != 0,
- DataOutExceptions::ExcNoTriangulationSelected ());
+ Exceptions::DataOut::ExcNoTriangulationSelected ());
const unsigned int n_components =
dofs != 0 ? dofs->get_fe().n_components () : 1;
const std::vector<DataComponentInterpretation::DataComponentInterpretation> &data_component_interpretation_)
{
Assert (triangulation != 0,
- DataOutExceptions::ExcNoTriangulationSelected ());
+ Exceptions::DataOut::ExcNoTriangulationSelected ());
const std::vector<DataComponentInterpretation::DataComponentInterpretation> &
data_component_interpretation
ExcDimensionMismatch (vec.size(),
triangulation->n_active_cells()));
Assert (names.size() == 1,
- DataOutExceptions::ExcInvalidNumberOfNames (names.size(), 1));
+ Exceptions::DataOut::ExcInvalidNumberOfNames (names.size(), 1));
break;
case type_dof_data:
Assert (dofs != 0,
- DataOutExceptions::ExcNoDoFHandlerSelected ());
+ Exceptions::DataOut::ExcNoDoFHandlerSelected ());
Assert (vec.size() == dofs->n_dofs(),
- DataOutExceptions::ExcInvalidVectorSize (vec.size(),
- dofs->n_dofs(),
- triangulation->n_active_cells()));
+ Exceptions::DataOut::ExcInvalidVectorSize (vec.size(),
+ dofs->n_dofs(),
+ triangulation->n_active_cells()));
Assert (names.size() == dofs->get_fe().n_components(),
- DataOutExceptions::ExcInvalidNumberOfNames (names.size(),
- dofs->get_fe().n_components()));
+ Exceptions::DataOut::ExcInvalidNumberOfNames (names.size(),
+ dofs->get_fe().n_components()));
break;
case type_automatic:
// stuff and use a different constructor of DataEntry
Assert (dofs != 0,
- DataOutExceptions::ExcNoDoFHandlerSelected ());
+ Exceptions::DataOut::ExcNoDoFHandlerSelected ());
Assert (vec.size() == dofs->n_dofs(),
- DataOutExceptions::ExcInvalidVectorSize (vec.size(),
- dofs->n_dofs(),
- dofs->get_tria().n_active_cells()));
+ Exceptions::DataOut::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,
- DataOutExceptions::ExcInvalidVectorDeclaration (i,
- (*d)->names[i]));
+ Exceptions::DataOut::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,
- DataOutExceptions::ExcInvalidVectorDeclaration (i,
- (*d)->names[i]));
+ Exceptions::DataOut::ExcInvalidVectorDeclaration (i,
+ (*d)->names[i]));
// all seems alright, so figure out
// whether there is a common name
for (unsigned int i=0; i<this->dof_data.size(); ++i)
{
Assert (dof_data[i]->dof_handler != 0,
- DataOutExceptions::ExcNoDoFHandlerSelected ());
+ Exceptions::DataOut::ExcNoDoFHandlerSelected ());
// avoid creating too many finite elements and doing a lot of work on
// initializing FEValues downstream: if two DoFHandlers are the same
: this->default_subdivisions;
Assert (n_subdivisions >= 1,
- DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ Exceptions::DataOut::ExcInvalidNumberOfSubdivisions(n_subdivisions));
Assert (this->triangulation != 0,
- DataOutExceptions::ExcNoTriangulationSelected());
+ Exceptions::DataOut::ExcNoTriangulationSelected());
unsigned int n_datasets = this->cell_data.size();
for (unsigned int i=0; i<this->dof_data.size(); ++i)
// template parameter
Assert (dim==dimension, ExcDimensionMismatch(dim, dimension));
Assert (this->triangulation != 0,
- DataOutExceptions::ExcNoTriangulationSelected());
+ Exceptions::DataOut::ExcNoTriangulationSelected());
const unsigned int n_subdivisions = (nnnn_subdivisions != 0)
? nnnn_subdivisions
: this->default_subdivisions;
Assert (n_subdivisions >= 1,
- DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ Exceptions::DataOut::ExcInvalidNumberOfSubdivisions(n_subdivisions));
unsigned int n_datasets=this->cell_data.size();
for (unsigned int i=0; i<this->dof_data.size(); ++i)
const std::vector<std::string> &names)
{
Assert (dof_handler != 0,
- DataOutExceptions::ExcNoDoFHandlerSelected ());
+ Exceptions::DataOut::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())),
- DataOutExceptions::ExcInvalidNumberOfNames (names.size(),
- dof_handler->get_fe().n_components()));
+ Exceptions::DataOut::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,
- DataOutExceptions::ExcInvalidCharacter (names[i],
- names[i].find_first_not_of("abcdefghijklmnopqrstuvwxyz"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "0123456789_<>()")));
+ Exceptions::DataOut::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,
- DataOutExceptions::ExcInvalidNumberOfSubdivisions(n_subdivisions));
+ Exceptions::DataOut::ExcInvalidNumberOfSubdivisions(n_subdivisions));
Assert (dof_handler != 0,
- DataOutExceptions::ExcNoDoFHandlerSelected());
+ Exceptions::DataOut::ExcNoDoFHandlerSelected());
const unsigned int n_components = dof_handler->get_fe().n_components();
const unsigned int n_datasets = dof_data.size() * n_components +