Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Public Attributes | List of all members
internal::DataOutImplementation::DataEntryBase< DoFHandlerType > Class Template Referenceabstract

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

Inheritance diagram for internal::DataOutImplementation::DataEntryBase< DoFHandlerType >:
[legend]

Public Member Functions

 DataEntryBase (const DoFHandlerType *dofs, const std::vector< std::string > &names, const std::vector< DataComponentInterpretation::DataComponentInterpretation > &data_component_interpretation)
 
 DataEntryBase (const DoFHandlerType *dofs, const DataPostprocessor< DoFHandlerType::space_dimension > *data_postprocessor)
 
virtual ~DataEntryBase ()=default
 
virtual double get_cell_data_value (const unsigned int cell_number, const ComponentExtractor extract_component) const =0
 
virtual void get_function_values (const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &fe_patch_values, const ComponentExtractor extract_component, std::vector< double > &patch_values) const =0
 
virtual void get_function_values (const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &fe_patch_values, const ComponentExtractor extract_component, std::vector<::Vector< double >> &patch_values_system) const =0
 
virtual void get_function_gradients (const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &fe_patch_values, const ComponentExtractor extract_component, std::vector< Tensor< 1, DoFHandlerType::space_dimension >> &patch_gradients) const =0
 
virtual void get_function_gradients (const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &fe_patch_values, const ComponentExtractor extract_component, std::vector< std::vector< Tensor< 1, DoFHandlerType::space_dimension >>> &patch_gradients_system) const =0
 
virtual void get_function_hessians (const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &fe_patch_values, const ComponentExtractor extract_component, std::vector< Tensor< 2, DoFHandlerType::space_dimension >> &patch_hessians) const =0
 
virtual void get_function_hessians (const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &fe_patch_values, const ComponentExtractor extract_component, std::vector< std::vector< Tensor< 2, DoFHandlerType::space_dimension >>> &patch_hessians_system) const =0
 
virtual bool is_complex_valued () const =0
 
virtual void clear ()=0
 
virtual std::size_t memory_consumption () const =0
 

Public Attributes

SmartPointer< const DoFHandlerType > dof_handler
 
const std::vector< std::string > names
 
const std::vector< DataComponentInterpretation::DataComponentInterpretationdata_component_interpretation
 
SmartPointer< const ::DataPostprocessor< DoFHandlerType::space_dimension > > postprocessor
 
unsigned int n_output_variables
 

Detailed Description

template<typename DoFHandlerType>
class internal::DataOutImplementation::DataEntryBase< DoFHandlerType >

For each vector that has been added through the add_data_vector() functions, we need to keep track of a pointer to it, and allow data extraction from it when we generate patches. Unfortunately, we need to do this for a number of different vector types. Fortunately, they all have the same interface. So the way we go is to have a base class that provides the functions to access the vector's information, and to have a derived template class that can be instantiated for each vector type. Since the vectors all have the same interface, this is no big problem, as they can all use the same general templatized code.

Note
This class is an example of the type erasure design pattern.
Author
Wolfgang Bangerth, 2004

Definition at line 222 of file data_out_dof_data.h.

Constructor & Destructor Documentation

◆ DataEntryBase() [1/2]

template<typename DoFHandlerType >
internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::DataEntryBase ( const DoFHandlerType *  dofs,
const std::vector< std::string > &  names,
const std::vector< DataComponentInterpretation::DataComponentInterpretation > &  data_component_interpretation 
)

Constructor. Give a list of names for the individual components of the vector and their interpretation as scalar or vector data. This constructor assumes that no postprocessor is going to be used.

◆ DataEntryBase() [2/2]

template<typename DoFHandlerType >
internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::DataEntryBase ( const DoFHandlerType *  dofs,
const DataPostprocessor< DoFHandlerType::space_dimension > *  data_postprocessor 
)

Constructor when a data postprocessor is going to be used. In that case, the names and vector declarations are going to be acquired from the postprocessor.

◆ ~DataEntryBase()

template<typename DoFHandlerType >
virtual internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::~DataEntryBase ( )
virtualdefault

Destructor made virtual.

Member Function Documentation

◆ get_cell_data_value()

template<typename DoFHandlerType >
virtual double internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::get_cell_data_value ( const unsigned int  cell_number,
const ComponentExtractor  extract_component 
) const
pure virtual

Assuming that the stored vector is a cell vector, extract the given element from it.

◆ get_function_values() [1/2]

template<typename DoFHandlerType >
virtual void internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::get_function_values ( const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &  fe_patch_values,
const ComponentExtractor  extract_component,
std::vector< double > &  patch_values 
) const
pure virtual

Given a FEValuesBase object, extract the values on the present cell from the vector we actually store.

◆ get_function_values() [2/2]

template<typename DoFHandlerType >
virtual void internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::get_function_values ( const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &  fe_patch_values,
const ComponentExtractor  extract_component,
std::vector<::Vector< double >> &  patch_values_system 
) const
pure virtual

Given a FEValuesBase object, extract the values on the present cell from the vector we actually store. This function does the same as the one above but for vector-valued finite elements.

◆ get_function_gradients() [1/2]

template<typename DoFHandlerType >
virtual void internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::get_function_gradients ( const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &  fe_patch_values,
const ComponentExtractor  extract_component,
std::vector< Tensor< 1, DoFHandlerType::space_dimension >> &  patch_gradients 
) const
pure virtual

Given a FEValuesBase object, extract the gradients on the present cell from the vector we actually store.

◆ get_function_gradients() [2/2]

template<typename DoFHandlerType >
virtual void internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::get_function_gradients ( const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &  fe_patch_values,
const ComponentExtractor  extract_component,
std::vector< std::vector< Tensor< 1, DoFHandlerType::space_dimension >>> &  patch_gradients_system 
) const
pure virtual

Given a FEValuesBase object, extract the gradients on the present cell from the vector we actually store. This function does the same as the one above but for vector-valued finite elements.

◆ get_function_hessians() [1/2]

template<typename DoFHandlerType >
virtual void internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::get_function_hessians ( const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &  fe_patch_values,
const ComponentExtractor  extract_component,
std::vector< Tensor< 2, DoFHandlerType::space_dimension >> &  patch_hessians 
) const
pure virtual

Given a FEValuesBase object, extract the second derivatives on the present cell from the vector we actually store.

◆ get_function_hessians() [2/2]

template<typename DoFHandlerType >
virtual void internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::get_function_hessians ( const FEValuesBase< DoFHandlerType::dimension, DoFHandlerType::space_dimension > &  fe_patch_values,
const ComponentExtractor  extract_component,
std::vector< std::vector< Tensor< 2, DoFHandlerType::space_dimension >>> &  patch_hessians_system 
) const
pure virtual

Given a FEValuesBase object, extract the second derivatives on the present cell from the vector we actually store. This function does the same as the one above but for vector-valued finite elements.

◆ is_complex_valued()

template<typename DoFHandlerType >
virtual bool internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::is_complex_valued ( ) const
pure virtual

Return whether the data represented by (a derived class of) this object represents a complex-valued (as opposed to real-valued) information.

◆ clear()

template<typename DoFHandlerType >
virtual void internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::clear ( )
pure virtual

Clear all references to the vectors.

◆ memory_consumption()

template<typename DoFHandlerType >
virtual std::size_t internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::memory_consumption ( ) const
pure virtual

Determine an estimate for the memory consumption (in bytes) of this object.

Member Data Documentation

◆ dof_handler

template<typename DoFHandlerType >
SmartPointer<const DoFHandlerType> internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::dof_handler

Pointer to the DoFHandler object that the vector is based on.

Definition at line 354 of file data_out_dof_data.h.

◆ names

template<typename DoFHandlerType >
const std::vector<std::string> internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::names

Names of the components of this data vector.

Definition at line 359 of file data_out_dof_data.h.

◆ data_component_interpretation

template<typename DoFHandlerType >
const std::vector< DataComponentInterpretation::DataComponentInterpretation> internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::data_component_interpretation

A vector that for each of the n_output_variables variables of the current data set indicates whether they are scalar fields, parts of a vector-field, or any of the other supported kinds of data.

Definition at line 368 of file data_out_dof_data.h.

◆ postprocessor

template<typename DoFHandlerType >
SmartPointer< const ::DataPostprocessor<DoFHandlerType::space_dimension> > internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::postprocessor

Pointer to a DataPostprocessing object which shall be applied to this data vector.

Definition at line 376 of file data_out_dof_data.h.

◆ n_output_variables

template<typename DoFHandlerType >
unsigned int internal::DataOutImplementation::DataEntryBase< DoFHandlerType >::n_output_variables

Number of output variables this dataset provides (either number of components in vector valued function / data vector or number of computed quantities, if DataPostprocessor is applied). This variable is determined via and thus equivalent to names.size().

Definition at line 384 of file data_out_dof_data.h.


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