16#ifndef dealii_data_out_stack_h
17#define dealii_data_out_stack_h
36template <
int dim,
int spacedim>
115template <
int dim,
int spacedim = dim>
118 static_assert(dim < 3,
119 "Because this class stacks data into the (dim+1)st "
120 "dimension to create graphical output, it only works for "
122 static_assert(dim == spacedim,
123 "This class is not implemented for dim != spacedim.");
219 template <
typename number>
241 template <
typename number>
244 const std::vector<std::string> &names);
286 <<
"The data vector for which the first component has the name " << arg1
287 <<
" has not been added before.");
292 "You cannot start a new time/parameter step before calling "
293 "finish_parameter_value() on the previous step.");
299 "You cannot declare additional vectors after already calling "
300 "build_patches(). All data vectors need to be declared "
301 "before you call this function the first time.");
307 <<
"You tried to declare a component of a data vector with "
308 <<
"the name <" << arg1
309 <<
">, but that name is already used.");
333 std::vector<::DataOutBase::Patch<patch_dim, patch_spacedim>>
patches;
374 virtual const std::vector<
384 virtual std::vector<std::string>
std::size_t memory_consumption() const
static constexpr int patch_dim
void declare_data_vector(const std::string &name, const VectorType vector_type)
virtual std::vector< std::string > get_dataset_names() const override
std::vector< DataVector > cell_data
virtual ~DataOutStack() override=default
void new_parameter_value(const double parameter_value, const double parameter_step)
std::vector< DataVector > dof_data
SmartPointer< const DoFHandler< dim, spacedim >, DataOutStack< dim, spacedim > > dof_handler
void finish_parameter_value()
void attach_dof_handler(const DoFHandler< dim, spacedim > &dof_handler)
static constexpr int patch_spacedim
void build_patches(const unsigned int n_subdivisions=0)
std::vector<::DataOutBase::Patch< patch_dim, patch_spacedim > > patches
virtual const std::vector< ::DataOutBase::Patch< DataOutStack< dim, spacedim >::patch_dim, DataOutStack< dim, spacedim >::patch_spacedim > > & get_patches() const override
void add_data_vector(const Vector< number > &vec, const std::string &name)
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_CXX20_REQUIRES(condition)
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcDataNotCleared()
static ::ExceptionBase & ExcDataAlreadyAdded()
static ::ExceptionBase & ExcVectorNotDeclared(std::string arg1)
static ::ExceptionBase & ExcNameAlreadyUsed(std::string arg1)
#define DeclExceptionMsg(Exception, defaulttext)
#define DeclException1(Exception1, type1, outsequence)
std::size_t memory_consumption() const
std::vector< std::string > names