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\}}\)
Modules | Namespaces | Classes | Macros | Typedefs | Enumerations | Enumerator | Functions | Variables | Friends

This module contains classes that are used in the exception mechanism of deal.II. More...

Collaboration diagram for Exceptions and assertions:

Modules

 TrilinosWrappers
 The classes in this module are wrappers around functionality provided by the Trilinos library. They provide a modern object-oriented interface that is compatible with the interfaces of the other linear algebra classes in deal.II. All classes and functions in this group reside in a namespace TrilinosWrappers.
 

Namespaces

 StandardExceptions
 
 deal_II_exceptions
 
 deal_II_exceptions::internals
 
 Patterns::Tools
 
 Patterns::Tools::internal
 
 Differentiation::SD::internal
 
 internal::LinearOperatorImplementation
 
 internal::GrowingVectorMemoryImplementation
 

Classes

struct  DataOutBase::EpsFlags::RgbValues
 
struct  DataOutBase::DataOutFilter::Point3Comp
 
class  ExceptionBase
 
class  StandardExceptions::ExcMPI
 
class  MultipleParameterLoop::UserClass
 
class  MultipleParameterLoop::Entry
 
struct  Patterns::Tools::Convert< T, Enable >
 
struct  Patterns::Tools::internal::RankInfo< T, Enable >
 
struct  Patterns::Tools::Convert< T, typename std::enable_if< std::is_arithmetic< T >::value >::type >
 
struct  Patterns::Tools::internal::is_list_compatible< T >
 
struct  Patterns::Tools::internal::is_list_compatible< std::array< T, N > >
 
struct  Patterns::Tools::internal::is_list_compatible< std::vector< Args... > >
 
struct  Patterns::Tools::internal::is_list_compatible< std::deque< Args... > >
 
struct  Patterns::Tools::internal::is_list_compatible< std::list< Args... > >
 
struct  Patterns::Tools::internal::is_list_compatible< std::set< Args... > >
 
struct  Patterns::Tools::internal::is_list_compatible< std::multiset< Args... > >
 
struct  Patterns::Tools::internal::is_list_compatible< std::unordered_set< Args... > >
 
struct  Patterns::Tools::internal::is_list_compatible< std::unordered_multiset< Args... > >
 
struct  Patterns::Tools::internal::is_map_compatible< T >
 
struct  Patterns::Tools::internal::is_map_compatible< std::map< Key, T, Compare, Allocator > >
 
struct  Patterns::Tools::internal::is_map_compatible< std::multimap< Key, T, Compare, Allocator > >
 
struct  Patterns::Tools::internal::is_map_compatible< std::unordered_map< Key, T, Hash, KeyEqual, Allocator > >
 
struct  Patterns::Tools::internal::is_map_compatible< std::unordered_multimap< Key, T, Hash, KeyEqual, Allocator > >
 
struct  Patterns::Tools::is_list_compatible< T >
 
struct  Patterns::Tools::is_map_compatible< T >
 
struct  Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_list_compatible< T >::value >::type >
 
struct  Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_map_compatible< T >::value >::type >
 
struct  Patterns::Tools::internal::RankInfo< Tensor< rank, dim, Number > >
 
struct  Patterns::Tools::internal::RankInfo< Point< dim, Number > >
 
struct  Patterns::Tools::internal::RankInfo< std::complex< Number > >
 
struct  Patterns::Tools::internal::RankInfo< std::unique_ptr< FunctionParser< dim > > >
 
struct  Patterns::Tools::internal::RankInfo< ComponentMask >
 
struct  Patterns::Tools::internal::RankInfo< std::pair< Key, Value > >
 
struct  Patterns::Tools::internal::RankInfo< std::tuple< Types... > >
 
struct  Patterns::Tools::Convert< T, typename std::enable_if< is_list_compatible< T >::value >::type >
 
struct  Patterns::Tools::Convert< T, typename std::enable_if< is_map_compatible< T >::value >::type >
 
struct  Patterns::Tools::Convert< Tensor< rank, dim, Number > >
 
struct  Patterns::Tools::Convert< Point< dim, Number > >
 
struct  Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >
 
struct  Patterns::Tools::Convert< ComponentMask >
 
struct  Patterns::Tools::Convert< std::complex< Number > >
 
struct  Patterns::Tools::Convert< std::string >
 
struct  Patterns::Tools::Convert< std::pair< Key, Value > >
 
struct  Patterns::Tools::Convert< std::tuple< Args... > >
 
struct  TableHandler::Column
 
class  Differentiation::SD::Expression
 
struct  Differentiation::SD::is_symengine_number< Expression >
 
struct  Differentiation::SD::is_sd_number< Expression >
 
class  Differentiation::SD::BatchOptimizer< ReturnType >
 
struct  Differentiation::SD::internal::DictionaryOptimizer< ReturnType, T >
 
struct  Differentiation::SD::internal::LambdaOptimizer< ReturnType, T >
 
struct  Differentiation::SD::internal::OptimizerHelper< ReturnType, Optimizer, T >
 
struct  BlockMatrixBase< MatrixType >::TemporaryData
 
class  internal::LinearOperatorImplementation::ReinitHelper< Vector >
 
class  internal::LinearOperatorImplementation::ReinitHelper< BlockVector< number > >
 
class  PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor
 
class  PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator
 
class  SparseMatrixEZ< number >::const_iterator::Accessor
 
class  VectorMemory< VectorType >::Pointer
 
struct  GrowingVectorMemory< VectorType >::Pool
 

Macros

#define DeclException0(Exception0)
 
#define DeclExceptionMsg(Exception, defaulttext)
 
#define DeclException1(Exception1, type1, outsequence)
 
#define DeclException2(Exception2, type1, type2, outsequence)
 
#define DeclException3(Exception3, type1, type2, type3, outsequence)
 
#define DeclException4(Exception4, type1, type2, type3, type4, outsequence)
 
#define DeclException5( Exception5, type1, type2, type3, type4, type5, outsequence)
 
#define Assert(cond, exc)
 
#define AssertNothrow(cond, exc)
 
#define AssertThrow(cond, exc)
 
#define AssertDimension(dim1, dim2)
 
#define AssertVectorVectorDimension(VEC, DIM1, DIM2)
 
#define AssertIndexRange(index, range)
 
#define AssertIsFinite(number)
 
#define AssertThrowMPI(error_code)   AssertThrow(error_code == MPI_SUCCESS, ::ExcMPI(error_code))
 
#define AssertCuda(error_code)
 
#define AssertNothrowCuda(error_code)
 
#define AssertCudaKernel()
 
#define AssertCusparse(error_code)
 
#define AssertNothrowCusparse(error_code)
 
#define AssertCusolver(error_code)
 

Typedefs

using DataOutBase::EpsFlags::ColorFunction = RgbValues(*)(const double value, const double min_value, const double max_value)
 
using DataOutBase::DataOutFilter::Map3DPoint = std::multimap< Point< 3 >, unsigned int, Point3Comp >
 
using ParameterHandler::ExcInvalidEntryForPatternXML = ExcValueDoesNotMatchPattern
 
using Patterns::Tools::Convert< Tensor< rank, dim, Number > >::T = Tensor< rank, dim, Number >
 
using Patterns::Tools::Convert< Point< dim, Number > >::T = Point< dim, Number >
 
using Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::T = std::unique_ptr< FunctionParser< dim > >
 
using Patterns::Tools::Convert< ComponentMask >::T = ComponentMask
 
using Patterns::Tools::Convert< std::complex< Number > >::T = std::complex< Number >
 
using Patterns::Tools::Convert< std::string >::T = std::string
 
using Patterns::Tools::Convert< std::pair< Key, Value > >::T = std::pair< Key, Value >
 
using Patterns::Tools::Convert< std::tuple< Args... > >::T = std::tuple< Args... >
 
using Subscriptor::map_value_type = decltype(counter_map)::value_type
 
using Subscriptor::map_iterator = decltype(counter_map)::iterator
 
using BlockVectorBase< VectorType >::BlockType = VectorType
 
using BlockVectorBase< VectorType >::value_type = typename BlockType::value_type
 
using BlockVectorBase< VectorType >::pointer = value_type *
 
using BlockVectorBase< VectorType >::const_pointer = const value_type *
 
using BlockVectorBase< VectorType >::iterator = ::internal::BlockVectorIterators::Iterator< BlockVectorBase, false >
 
using BlockVectorBase< VectorType >::const_iterator = ::internal::BlockVectorIterators::Iterator< BlockVectorBase, true >
 
using BlockVectorBase< VectorType >::reference = typename BlockType::reference
 
using BlockVectorBase< VectorType >::const_reference = typename BlockType::const_reference
 
using BlockVectorBase< VectorType >::size_type = types::global_dof_index
 
using BlockVectorBase< VectorType >::real_type = typename BlockType::real_type
 
using PreconditionBlockJacobi< MatrixType, inverse_type >::number = typename MatrixType::value_type
 
using PreconditionBlockJacobi< MatrixType, inverse_type >::size_type = types::global_dof_index
 
using PreconditionBlockSOR< MatrixType, inverse_type >::size_type = types::global_dof_index
 
using PreconditionBlockSOR< MatrixType, inverse_type >::number = typename MatrixType::value_type
 
using PreconditionBlockSSOR< MatrixType, inverse_type >::size_type = types::global_dof_index
 
using PreconditionBlockSSOR< MatrixType, inverse_type >::number = typename MatrixType::value_type
 
using SparsityPattern::size_type = SparsityPatternBase::size_type
 
using SparsityPattern::const_iterator = SparsityPatternBase::const_iterator
 
using SparsityPattern::iterator = SparsityPatternBase::iterator
 
using GrowingVectorMemory< VectorType >::size_type = types::global_dof_index
 
using GrowingVectorMemory< VectorType >::entry_type = std::pair< bool, std::unique_ptr< VectorType > >
 

Enumerations

enum  DataOutBase::EpsFlags::SizeType { DataOutBase::EpsFlags::width, DataOutBase::EpsFlags::height }
 
enum  DataOutBase::VtkFlags::ZlibCompressionLevel { DataOutBase::VtkFlags::no_compression, DataOutBase::VtkFlags::best_speed, DataOutBase::VtkFlags::best_compression, DataOutBase::VtkFlags::default_compression }
 
enum  MultipleParameterLoop::Entry::MultipleEntryType { MultipleParameterLoop::Entry::variant, MultipleParameterLoop::Entry::array }
 
enum  Patterns::FileName::FileType { Patterns::FileName::input = 0, Patterns::FileName::output = 1 }
 
enum  Differentiation::SD::OptimizerType { Differentiation::SD::OptimizerType::dictionary, Differentiation::SD::OptimizerType::lambda, Differentiation::SD::OptimizerType::llvm }
 
enum  Differentiation::SD::OptimizationFlags : unsigned char { Differentiation::SD::OptimizationFlags::optimize_default = 0, Differentiation::SD::OptimizationFlags::optimize_cse = 0x0001, Differentiation::SD::OptimizationFlags::optimize_aggressive = 0x0002, Differentiation::SD::OptimizationFlags::optimize_all = optimize_cse | optimize_aggressive }
 

Functions

static ::ExceptionBaseAnyData::ExcNameNotFound (std::string arg1)
 An entry with this name does not exist in the AnyData object. More...
 
static ::ExceptionBaseAnyData::ExcTypeMismatch (std::string arg1, std::string arg2)
 The requested type and the stored type are different. More...
 
static ::ExceptionBaseAnyData::ExcNameMismatch (int arg1, std::string arg2)
 
static ::ExceptionBaseConvergenceTable::ExcRateColumnAlreadyExists (std::string arg1)
 
 DataOutBase::Patch< dim, spacedim >::Patch ()
 
bool DataOutBase::Patch< dim, spacedim >::operator== (const Patch &patch) const
 
std::size_t DataOutBase::Patch< dim, spacedim >::memory_consumption () const
 
void DataOutBase::Patch< dim, spacedim >::swap (Patch< dim, spacedim > &other_patch)
 
static ::ExceptionBaseDataOutBase::Patch< dim, spacedim >::ExcInvalidCombinationOfDimensions (int arg1, int arg2)
 
 DataOutBase::Patch< 0, spacedim >::Patch ()
 
bool DataOutBase::Patch< 0, spacedim >::operator== (const Patch &patch) const
 
std::size_t DataOutBase::Patch< 0, spacedim >::memory_consumption () const
 
void DataOutBase::Patch< 0, spacedim >::swap (Patch< 0, spacedim > &other_patch)
 
static ::ExceptionBaseDataOutBase::Patch< 0, spacedim >::ExcInvalidCombinationOfDimensions (int arg1, int arg2)
 
static void DataOutBase::OutputFlagsBase< FlagsType >::declare_parameters (ParameterHandler &prm)
 
void DataOutBase::OutputFlagsBase< FlagsType >::parse_parameters (const ParameterHandler &prm)
 
std::size_t DataOutBase::OutputFlagsBase< FlagsType >::memory_consumption () const
 
 DataOutBase::DXFlags::DXFlags (const bool write_neighbors=false, const bool int_binary=false, const bool coordinates_binary=false, const bool data_binary=false)
 
static void DataOutBase::DXFlags::declare_parameters (ParameterHandler &prm)
 
void DataOutBase::DXFlags::parse_parameters (const ParameterHandler &prm)
 
 DataOutBase::UcdFlags::UcdFlags (const bool write_preamble=false)
 
static void DataOutBase::UcdFlags::declare_parameters (ParameterHandler &prm)
 
void DataOutBase::UcdFlags::parse_parameters (const ParameterHandler &prm)
 
 DataOutBase::GnuplotFlags::GnuplotFlags ()
 
 DataOutBase::GnuplotFlags::GnuplotFlags (const std::vector< std::string > &space_dimension_labels)
 
std::size_t DataOutBase::GnuplotFlags::memory_consumption () const
 
static ::ExceptionBaseDataOutBase::GnuplotFlags::ExcNotEnoughSpaceDimensionLabels ()
 
 DataOutBase::PovrayFlags::PovrayFlags (const bool smooth=false, const bool bicubic_patch=false, const bool external_data=false)
 
static void DataOutBase::PovrayFlags::declare_parameters (ParameterHandler &prm)
 
void DataOutBase::PovrayFlags::parse_parameters (const ParameterHandler &prm)
 
bool DataOutBase::EpsFlags::RgbValues::is_grey () const
 
static RgbValues DataOutBase::EpsFlags::default_color_function (const double value, const double min_value, const double max_value)
 
static RgbValues DataOutBase::EpsFlags::grey_scale_color_function (const double value, const double min_value, const double max_value)
 
static RgbValues DataOutBase::EpsFlags::reverse_grey_scale_color_function (const double value, const double min_value, const double max_value)
 
 DataOutBase::EpsFlags::EpsFlags (const unsigned int height_vector=0, const unsigned int color_vector=0, const SizeType size_type=width, const unsigned int size=300, const double line_width=0.5, const double azimut_angle=60, const double turn_angle=30, const double z_scaling=1.0, const bool draw_mesh=true, const bool draw_cells=true, const bool shade_cells=true, const ColorFunction color_function=&default_color_function)
 
static void DataOutBase::EpsFlags::declare_parameters (ParameterHandler &prm)
 
void DataOutBase::EpsFlags::parse_parameters (const ParameterHandler &prm)
 
 DataOutBase::TecplotFlags::TecplotFlags (const char *tecplot_binary_file_name=nullptr, const char *zone_name=nullptr, const double solution_time=-1.0)
 
std::size_t DataOutBase::TecplotFlags::memory_consumption () const
 
 DataOutBase::VtkFlags::VtkFlags (const double time=std::numeric_limits< double >::min(), const unsigned int cycle=std::numeric_limits< unsigned int >::min(), const bool print_date_and_time=true, const ZlibCompressionLevel compression_level=best_compression, const bool write_higher_order_cells=false)
 
 DataOutBase::SvgFlags::SvgFlags (const unsigned int height_vector=0, const int azimuth_angle=37, const int polar_angle=45, const unsigned int line_thickness=1, const bool margin=true, const bool draw_colorbar=true)
 
 DataOutBase::DataOutFilterFlags::DataOutFilterFlags (const bool filter_duplicate_vertices=false, const bool xdmf_hdf5_output=false)
 
static void DataOutBase::DataOutFilterFlags::declare_parameters (ParameterHandler &prm)
 
void DataOutBase::DataOutFilterFlags::parse_parameters (const ParameterHandler &prm)
 
std::size_t DataOutBase::DataOutFilterFlags::memory_consumption () const
 
 DataOutBase::DataOutFilter::DataOutFilter ()
 
 DataOutBase::DataOutFilter::DataOutFilter (const DataOutBase::DataOutFilterFlags &flags)
 
template<int dim>
void DataOutBase::DataOutFilter::write_point (const unsigned int index, const Point< dim > &p)
 
template<int dim>
void DataOutBase::DataOutFilter::write_cell (const unsigned int index, const unsigned int start, const unsigned int d1, const unsigned int d2, const unsigned int d3)
 
void DataOutBase::DataOutFilter::write_data_set (const std::string &name, const unsigned int dimension, const unsigned int set_num, const Table< 2, double > &data_vectors)
 
void DataOutBase::DataOutFilter::fill_node_data (std::vector< double > &node_data) const
 
void DataOutBase::DataOutFilter::fill_cell_data (const unsigned int local_node_offset, std::vector< unsigned int > &cell_data) const
 
std::string DataOutBase::DataOutFilter::get_data_set_name (const unsigned int set_num) const
 
unsigned int DataOutBase::DataOutFilter::get_data_set_dim (const unsigned int set_num) const
 
const doubleDataOutBase::DataOutFilter::get_data_set (const unsigned int set_num) const
 
unsigned int DataOutBase::DataOutFilter::n_nodes () const
 
unsigned int DataOutBase::DataOutFilter::n_cells () const
 
unsigned int DataOutBase::DataOutFilter::n_data_sets () const
 
void DataOutBase::DataOutFilter::flush_points ()
 
void DataOutBase::DataOutFilter::flush_cells ()
 
bool DataOutBase::DataOutFilter::Point3Comp::operator() (const Point< 3 > &one, const Point< 3 > &two) const
 
void DataOutBase::DataOutFilter::internal_add_cell (const unsigned int cell_index, const unsigned int pt_index)
 
static ::ExceptionBaseDataOutBase::ExcInvalidDatasetSize (int arg1, int arg2)
 
static ::ExceptionBaseDataOutBase::ExcNoPatches ()
 
static ::ExceptionBaseDataOutBase::ExcTecplotAPIError ()
 
static ::ExceptionBaseDataOutBase::ExcErrorOpeningTecplotFile (char *arg1)
 
 DataOutInterface< dim, spacedim >::DataOutInterface ()
 
virtual DataOutInterface< dim, spacedim >::~DataOutInterface ()=default
 
void DataOutInterface< dim, spacedim >::write_dx (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_eps (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_gmv (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_gnuplot (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_povray (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_tecplot (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_tecplot_binary (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_ucd (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_vtk (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_vtu (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_vtu_in_parallel (const std::string &filename, MPI_Comm comm) const
 
void DataOutInterface< dim, spacedim >::write_pvtu_record (std::ostream &out, const std::vector< std::string > &piece_names) const
 
std::string DataOutInterface< dim, spacedim >::write_vtu_with_pvtu_record (const std::string &directory, const std::string &filename_without_extension, const unsigned int counter, const MPI_Comm &mpi_communicator, const unsigned int n_digits_for_counter=numbers::invalid_unsigned_int, const unsigned int n_groups=0) const
 
void DataOutInterface< dim, spacedim >::write_svg (std::ostream &out) const
 
void DataOutInterface< dim, spacedim >::write_deal_II_intermediate (std::ostream &out) const
 
XDMFEntry DataOutInterface< dim, spacedim >::create_xdmf_entry (const DataOutBase::DataOutFilter &data_filter, const std::string &h5_filename, const double cur_time, MPI_Comm comm) const
 
XDMFEntry DataOutInterface< dim, spacedim >::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 DataOutInterface< dim, spacedim >::write_xdmf_file (const std::vector< XDMFEntry > &entries, const std::string &filename, MPI_Comm comm) const
 
void DataOutInterface< dim, spacedim >::write_hdf5_parallel (const DataOutBase::DataOutFilter &data_filter, const std::string &filename, MPI_Comm comm) const
 
void DataOutInterface< dim, spacedim >::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 DataOutInterface< dim, spacedim >::write_filtered_data (DataOutBase::DataOutFilter &filtered_data) const
 
void DataOutInterface< dim, spacedim >::write (std::ostream &out, const DataOutBase::OutputFormat output_format=DataOutBase::default_format) const
 
void DataOutInterface< dim, spacedim >::set_default_format (const DataOutBase::OutputFormat default_format)
 
template<typename FlagType >
void DataOutInterface< dim, spacedim >::set_flags (const FlagType &flags)
 
std::string DataOutInterface< dim, spacedim >::default_suffix (const DataOutBase::OutputFormat output_format=DataOutBase::default_format) const
 
static void DataOutInterface< dim, spacedim >::declare_parameters (ParameterHandler &prm)
 
void DataOutInterface< dim, spacedim >::parse_parameters (ParameterHandler &prm)
 
std::size_t DataOutInterface< dim, spacedim >::memory_consumption () const
 
virtual const std::vector< DataOutBase::Patch< dim, spacedim > > & DataOutInterface< dim, spacedim >::get_patches () const =0
 
virtual std::vector< std::string > DataOutInterface< dim, spacedim >::get_dataset_names () const =0
 
virtual std::vector< std::tuple< unsigned int, unsigned int, std::string, DataComponentInterpretation::DataComponentInterpretation > > DataOutInterface< dim, spacedim >::get_nonscalar_data_ranges () const
 
void DataOutInterface< dim, spacedim >::validate_dataset_names () const
 
void DataOutReader< dim, spacedim >::read (std::istream &in)
 
void DataOutReader< dim, spacedim >::merge (const DataOutReader< dim, spacedim > &other)
 
static ::ExceptionBaseDataOutReader< dim, spacedim >::ExcIncompatibleDatasetNames ()
 
static ::ExceptionBaseDataOutReader< dim, spacedim >::ExcIncompatiblePatchLists ()
 
static ::ExceptionBaseDataOutReader< dim, spacedim >::ExcIncompatibleDimensions (int arg1, int arg2, int arg3, int arg4)
 
virtual const std::vector<::DataOutBase::Patch< dim, spacedim > > & DataOutReader< dim, spacedim >::get_patches () const override
 
virtual std::vector< std::string > DataOutReader< dim, spacedim >::get_dataset_names () const override
 
virtual std::vector< std::tuple< unsigned int, unsigned int, std::string, DataComponentInterpretation::DataComponentInterpretation > > DataOutReader< dim, spacedim >::get_nonscalar_data_ranges () const override
 
 XDMFEntry::XDMFEntry ()
 
 XDMFEntry::XDMFEntry (const std::string &filename, const double time, const unsigned int nodes, const unsigned int cells, const unsigned int dim)
 
 XDMFEntry::XDMFEntry (const std::string &mesh_filename, const std::string &solution_filename, const double time, const unsigned int nodes, const unsigned int cells, const unsigned int dim)
 
 XDMFEntry::XDMFEntry (const std::string &mesh_filename, const std::string &solution_filename, const double time, const unsigned int nodes, const unsigned int cells, const unsigned int dim, const unsigned int spacedim)
 
void XDMFEntry::add_attribute (const std::string &attr_name, const unsigned int dimension)
 
template<class Archive >
void XDMFEntry::serialize (Archive &ar, const unsigned int)
 
std::string XDMFEntry::get_xdmf_content (const unsigned int indent_level) const
 
template<int dim, int spacedim>
std::ostream & DataOutBase::operator<< (std::ostream &out, const Patch< dim, spacedim > &patch)
 
template<int dim, int spacedim>
std::istream & DataOutBase::operator>> (std::istream &in, Patch< dim, spacedim > &patch)
 
static ::ExceptionBaseDerivativeForm< order, dim, spacedim, Number >::ExcInvalidTensorIndex (int arg1)
 
static ::ExceptionBaseStandardExceptions::ExcDivideByZero ()
 
static ::ExceptionBaseStandardExceptions::ExcNumberNotFinite (std::complex< double > arg1)
 
static ::ExceptionBaseStandardExceptions::ExcOutOfMemory (std::size_t arg1)
 
static ::ExceptionBaseStandardExceptions::ExcMemoryLeak (int arg1)
 
static ::ExceptionBaseStandardExceptions::ExcIO ()
 
static ::ExceptionBaseStandardExceptions::ExcFileNotOpen (std::string arg1)
 
static ::ExceptionBaseStandardExceptions::ExcNotImplemented ()
 
static ::ExceptionBaseStandardExceptions::ExcInternalError ()
 
static ::ExceptionBaseStandardExceptions::ExcPureFunctionCalled ()
 
static ::ExceptionBaseStandardExceptions::ExcNotInitialized ()
 
static ::ExceptionBaseStandardExceptions::ExcInvalidState ()
 
static ::ExceptionBaseStandardExceptions::ExcImpossibleInDim (int arg1)
 
static ::ExceptionBaseStandardExceptions::ExcImpossibleInDimSpacedim (int arg1, int arg2)
 
static ::ExceptionBaseStandardExceptions::ExcZero ()
 
static ::ExceptionBaseStandardExceptions::ExcEmptyObject ()
 
static ::ExceptionBaseStandardExceptions::ExcDimensionMismatch (std::size_t arg1, std::size_t arg2)
 
static ::ExceptionBaseStandardExceptions::ExcDimensionMismatch2 (int arg1, int arg2, int arg3)
 
static ::ExceptionBaseStandardExceptions::ExcIndexRange (int arg1, int arg2, int arg3)
 
template<typename T >
static ::ExceptionBaseStandardExceptions::ExcIndexRangeType (T arg1, T arg2, T arg3)
 
static ::ExceptionBaseStandardExceptions::ExcLowerRange (int arg1, int arg2)
 
template<typename T >
static ::ExceptionBaseStandardExceptions::ExcLowerRangeType (T arg1, T arg2)
 
static ::ExceptionBaseStandardExceptions::ExcNotMultiple (int arg1, int arg2)
 
static ::ExceptionBaseStandardExceptions::ExcInvalidIterator ()
 
static ::ExceptionBaseStandardExceptions::ExcIteratorPastEnd ()
 
static ::ExceptionBaseStandardExceptions::ExcMessage (std::string arg1)
 
static ::ExceptionBaseStandardExceptions::ExcGhostsPresent ()
 
static ::ExceptionBaseStandardExceptions::ExcScalarAssignmentOnlyForZeroValue ()
 
static ::ExceptionBaseStandardExceptions::ExcNeedsLAPACK ()
 
static ::ExceptionBaseStandardExceptions::ExcNeedsMPI ()
 
static ::ExceptionBaseStandardExceptions::ExcNeedsNetCDF ()
 
static ::ExceptionBaseStandardExceptions::ExcNeedsFunctionparser ()
 
static ::ExceptionBaseStandardExceptions::ExcNeedsAssimp ()
 
static ::ExceptionBaseStandardExceptions::ExcCudaError (const char *arg1)
 
static ::ExceptionBaseStandardExceptions::ExcCusparseError (std::string arg1)
 
static ::ExceptionBaseFunctions::ExcCSplineEmpty (int arg1)
 
static ::ExceptionBaseFunctions::ExcCSplineSizeMismatch (int arg1, int arg2)
 
static ::ExceptionBaseFunctions::ExcCSplineOrder (int arg1, double arg2, double arg3)
 
static ::ExceptionBaseFunctions::ExcCSplineRange (double arg1, double arg2, double arg3)
 
static ::ExceptionBaseFunctionParser< dim >::ExcParseError (int arg1, std::string arg2)
 
static ::ExceptionBaseFunctionParser< dim >::ExcInvalidExpressionSize (int arg1, int arg2)
 
void FunctionParser< dim >::init_muparser () const
 
static ::ExceptionBaseRefinementCase< dim >::ExcInvalidRefinementCase (int arg1)
 
static ::ExceptionBaseinternal::SubfaceCase< dim >::ExcInvalidSubfaceCase (int arg1)
 
static ::ExceptionBaseGeometryInfo< dim >::ExcInvalidCoordinate (double arg1)
 
static ::ExceptionBaseGeometryInfo< dim >::ExcInvalidSubface (int arg1, int arg2, int arg3)
 
static ::ExceptionBaseIndexSet::ExcIndexNotPresent (size_type arg1)
 
static ::ExceptionBaseParameterHandler::ExcEntryAlreadyExists (std::string arg1)
 
static ::ExceptionBaseParameterHandler::ExcValueDoesNotMatchPattern (std::string arg1, std::string arg2)
 
static ::ExceptionBaseParameterHandler::ExcAlreadyAtTopLevel ()
 
static ::ExceptionBaseParameterHandler::ExcEntryUndeclared (std::string arg1)
 
static ::ExceptionBaseParameterHandler::ExcUnbalancedSubsections (std::string arg1, std::string arg2)
 
static ::ExceptionBaseParameterHandler::ExcNoSubsection (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseParameterHandler::ExcCannotParseLine (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseParameterHandler::ExcInvalidEntryForPattern (int arg1, std::string arg2, std::string arg3, std::string arg4, std::string arg5)
 
static ::ExceptionBaseParameterHandler::ExcInvalidXMLParameterFile ()
 
static ::ExceptionBaseParameterHandler::ExcCannotOpenIncludeStatementFile (int arg1, std::string arg2, std::string arg3)
 
std::string ParameterHandler::get_current_path () const
 
std::string ParameterHandler::get_current_full_path (const std::string &name) const
 
std::string ParameterHandler::get_current_full_path (const std::vector< std::string > &sub_path, const std::string &name) const
 
void ParameterHandler::scan_line (std::string line, const std::string &input_filename, const unsigned int current_line_n, const bool skip_undefined)
 
void ParameterHandler::recursively_print_parameters (const boost::property_tree::ptree &tree, const std::vector< std::string > &target_subsection_path, const ParameterHandler::OutputStyle style, const unsigned int indent_level, std::ostream &out) const
 
virtual MultipleParameterLoop::UserClass::~UserClass ()=default
 
virtual void MultipleParameterLoop::UserClass::create_new (const unsigned int run_no)=0
 
virtual void MultipleParameterLoop::UserClass::run (ParameterHandler &prm)=0
 
 MultipleParameterLoop::MultipleParameterLoop ()
 
virtual MultipleParameterLoop::~MultipleParameterLoop () override=default
 
virtual void MultipleParameterLoop::parse_input (std::istream &input, const std::string &filename="input file", const std::string &last_line="", const bool skip_undefined=false) override
 
void MultipleParameterLoop::loop (UserClass &uc)
 
std::size_t MultipleParameterLoop::memory_consumption () const
 
 MultipleParameterLoop::Entry::Entry ()
 
 MultipleParameterLoop::Entry::Entry (const std::vector< std::string > &Path, const std::string &Name, const std::string &Value)
 
void MultipleParameterLoop::Entry::split_different_values ()
 
std::size_t MultipleParameterLoop::Entry::memory_consumption () const
 
void MultipleParameterLoop::init_branches ()
 
void MultipleParameterLoop::init_branches_current_section ()
 
void MultipleParameterLoop::fill_entry_values (const unsigned int run_no)
 
static ::ExceptionBaseUtilities::MPI::Partitioner::ExcIndexNotPresent (types::global_dof_index arg1, unsigned int arg2)
 
static ::ExceptionBaseUtilities::MPI::Partitioner::ExcGhostIndexArrayHasWrongSize (unsigned int arg1, unsigned int arg2, unsigned int arg3)
 
static ::ExceptionBasePathSearch::ExcNoClass (std::string arg1)
 
static ::ExceptionBasePathSearch::ExcFileNotFound (std::string arg1, std::string arg2)
 
static ::ExceptionBasePatterns::List::ExcInvalidRange (int arg1, int arg2)
 
 Patterns::Map::Map (const PatternBase &key_pattern, const PatternBase &value_pattern, const unsigned int min_elements=0, const unsigned int max_elements=max_int_value, const std::string &separator=",", const std::string &key_value_separator=":")
 
 Patterns::Map::Map (const Map &other)
 
virtual bool Patterns::Map::match (const std::string &test_string) const override
 
virtual std::string Patterns::Map::description (const OutputStyle style=Machine) const override
 
virtual std::unique_ptr< PatternBasePatterns::Map::clone () const override
 
static std::unique_ptr< MapPatterns::Map::create (const std::string &description)
 
std::size_t Patterns::Map::memory_consumption () const override
 
const PatternBasePatterns::Map::get_key_pattern () const
 
const PatternBasePatterns::Map::get_value_pattern () const
 
const std::string & Patterns::Map::get_separator () const
 
const std::string & Patterns::Map::get_key_value_separator () const
 
static ::ExceptionBasePatterns::Map::ExcInvalidRange (int arg1, int arg2)
 
 Patterns::Tuple::Tuple (const std::vector< std::unique_ptr< PatternBase >> &patterns, const std::string &separator=":")
 
 Patterns::Tuple::Tuple (const std::vector< std::unique_ptr< PatternBase >> &patterns, const char *separator)
 
template<class... PatternTypes>
 Patterns::Tuple::Tuple (const std::string &separator, const PatternTypes &... patterns)
 
template<class... PatternTypes>
 Patterns::Tuple::Tuple (const char *separator, const PatternTypes &... patterns)
 
template<typename... Patterns>
 Patterns::Tuple::Tuple (const Patterns &... patterns)
 
 Patterns::Tuple::Tuple (const Tuple &other)
 
virtual bool Patterns::Tuple::match (const std::string &test_string) const override
 
virtual std::string Patterns::Tuple::description (const OutputStyle style=Machine) const override
 
virtual std::unique_ptr< PatternBasePatterns::Tuple::clone () const override
 
static std::unique_ptr< TuplePatterns::Tuple::create (const std::string &description)
 
std::size_t Patterns::Tuple::memory_consumption () const override
 
const PatternBasePatterns::Tuple::get_pattern (const unsigned int i) const
 
const std::string & Patterns::Tuple::get_separator () const
 
 Patterns::MultipleSelection::MultipleSelection (const std::string &seq)
 
virtual bool Patterns::MultipleSelection::match (const std::string &test_string) const override
 
virtual std::string Patterns::MultipleSelection::description (const OutputStyle style=Machine) const override
 
virtual std::unique_ptr< PatternBasePatterns::MultipleSelection::clone () const override
 
static std::unique_ptr< MultipleSelectionPatterns::MultipleSelection::create (const std::string &description)
 
std::size_t Patterns::MultipleSelection::memory_consumption () const override
 
static ::ExceptionBasePatterns::MultipleSelection::ExcCommasNotAllowed (int arg1)
 
 Patterns::Bool::Bool ()
 
virtual std::string Patterns::Bool::description (const OutputStyle style=Machine) const override
 
virtual std::unique_ptr< PatternBasePatterns::Bool::clone () const override
 
static std::unique_ptr< BoolPatterns::Bool::create (const std::string &description)
 
 Patterns::Anything::Anything ()=default
 
virtual bool Patterns::Anything::match (const std::string &test_string) const override
 
virtual std::string Patterns::Anything::description (const OutputStyle style=Machine) const override
 
virtual std::unique_ptr< PatternBasePatterns::Anything::clone () const override
 
static std::unique_ptr< AnythingPatterns::Anything::create (const std::string &description)
 
 Patterns::FileName::FileName (const FileType type=input)
 
virtual bool Patterns::FileName::match (const std::string &test_string) const override
 
virtual std::string Patterns::FileName::description (const OutputStyle style=Machine) const override
 
virtual std::unique_ptr< PatternBasePatterns::FileName::clone () const override
 
static std::unique_ptr< FileNamePatterns::FileName::create (const std::string &description)
 
 Patterns::DirectoryName::DirectoryName ()=default
 
virtual bool Patterns::DirectoryName::match (const std::string &test_string) const override
 
virtual std::string Patterns::DirectoryName::description (const OutputStyle style=Machine) const override
 
virtual std::unique_ptr< PatternBasePatterns::DirectoryName::clone () const override
 
static std::unique_ptr< DirectoryNamePatterns::DirectoryName::create (const std::string &description)
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< T, Enable >::to_pattern ()=delete
 
static std::string Patterns::Tools::Convert< T, Enable >::to_string (const T &s, const std::unique_ptr< Patterns::PatternBase > &p=Convert< T >::to_pattern())=delete
 
static T Patterns::Tools::Convert< T, Enable >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &p=Convert< T >::to_pattern())=delete
 
template<typename T >
std::string Patterns::Tools::to_string (const T &t)
 
template<typename T >
void Patterns::Tools::to_value (const std::string &s, T &t)
 
static ::ExceptionBasePatterns::Tools::ExcNoMatch (std::string arg1, std::string arg2)
 
template<typename Dummy = T>
static std::enable_if< std::is_same< Dummy, T >::value &&std::is_same< T, bool >::value, std::unique_ptr< Patterns::PatternBase > >::type Patterns::Tools::Convert< T, typename std::enable_if< std::is_arithmetic< T >::value >::type >::to_pattern ()
 
static std::string Patterns::Tools::Convert< T, typename std::enable_if< std::is_arithmetic< T >::value >::type >::to_string (const T &value, const std::unique_ptr< Patterns::PatternBase > &p=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< T, typename std::enable_if< std::is_arithmetic< T >::value >::type >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &p=Convert< T >::to_pattern())
 
template<class T >
constexpr int Patterns::Tools::internal::max_list_rank ()
 
template<class T1 , class T2 , class... Types>
constexpr int Patterns::Tools::internal::max_list_rank ()
 
template<class T >
constexpr int Patterns::Tools::internal::max_map_rank ()
 
template<class T1 , class T2 , class... Types>
constexpr int Patterns::Tools::internal::max_map_rank ()
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< T, typename std::enable_if< is_list_compatible< T >::value >::type >::to_pattern ()
 
static std::string Patterns::Tools::Convert< T, typename std::enable_if< is_list_compatible< T >::value >::type >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< T, typename std::enable_if< is_list_compatible< T >::value >::type >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< T, typename std::enable_if< is_map_compatible< T >::value >::type >::to_pattern ()
 
static std::string Patterns::Tools::Convert< T, typename std::enable_if< is_map_compatible< T >::value >::type >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< T, typename std::enable_if< is_map_compatible< T >::value >::type >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< Tensor< rank, dim, Number > >::to_pattern ()
 
static std::string Patterns::Tools::Convert< Tensor< rank, dim, Number > >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< Tensor< rank, dim, Number > >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< Point< dim, Number > >::to_pattern ()
 
static std::string Patterns::Tools::Convert< Point< dim, Number > >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< Point< dim, Number > >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::to_pattern ()
 
static std::string Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< ComponentMask >::to_pattern ()
 
static std::string Patterns::Tools::Convert< ComponentMask >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< ComponentMask >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< std::complex< Number > >::to_pattern ()
 
static std::string Patterns::Tools::Convert< std::complex< Number > >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< std::complex< Number > >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< std::string >::to_pattern ()
 
static std::string Patterns::Tools::Convert< std::string >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< std::string >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< std::pair< Key, Value > >::to_pattern ()
 
static std::string Patterns::Tools::Convert< std::pair< Key, Value > >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< std::pair< Key, Value > >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static std::unique_ptr< Patterns::PatternBasePatterns::Tools::Convert< std::tuple< Args... > >::to_pattern ()
 
static std::string Patterns::Tools::Convert< std::tuple< Args... > >::to_string (const T &t, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
static T Patterns::Tools::Convert< std::tuple< Args... > >::to_value (const std::string &s, const std::unique_ptr< Patterns::PatternBase > &pattern=Convert< T >::to_pattern())
 
template<std::size_t... U>
static std::array< std::string, std::tuple_size< T >::valuePatterns::Tools::Convert< std::tuple< Args... > >::to_string_internal_1 (const T &t, const Patterns::Tuple &pattern, std_cxx14::index_sequence< U... >)
 
static std::array< std::string, std::tuple_size< T >::valuePatterns::Tools::Convert< std::tuple< Args... > >::to_string_internal_2 (const T &t, const Patterns::Tuple &pattern)
 
template<std::size_t... U>
static T Patterns::Tools::Convert< std::tuple< Args... > >::to_value_internal_1 (const std::vector< std::string > &s, const Patterns::Tuple &pattern, std_cxx14::index_sequence< U... >)
 
static T Patterns::Tools::Convert< std::tuple< Args... > >::to_value_internal_2 (const std::vector< std::string > &s, const Patterns::Tuple &pattern)
 
static ::ExceptionBaseQIterated< dim >::ExcInvalidQuadratureFormula ()
 
static ::ExceptionBaseCellDataStorage< CellIteratorType, DataType >::ExcCellDataTypeMismatch ()
 
static ::ExceptionBaseCellDataStorage< CellIteratorType, DataType >::ExcTriangulationMismatch ()
 
static ::ExceptionBaseQuadratureSelector< dim >::ExcInvalidQGaussOrder (int arg1)
 
static ::ExceptionBaseQuadratureSelector< dim >::ExcInvalidOrder (std::string arg1, unsigned int arg2)
 
static ::ExceptionBaseQuadratureSelector< dim >::ExcInvalidQuadrature (std::string arg1)
 
static Quadrature< dim > QuadratureSelector< dim >::create_quadrature (const std::string &s, const unsigned int order)
 
static ::ExceptionBaseSubscriptor::ExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseSubscriptor::ExcNoSubscriber (std::string arg1, std::string arg2)
 
template<class Archive >
void Subscriptor::serialize (Archive &ar, const unsigned int version)
 
void Subscriptor::check_no_subscribers () const noexcept
 
static ::ExceptionBaseinternal::TableBaseAccessors::Accessor< N, T, C, P >::ExcIndexRange (size_type arg1, size_type arg2, size_type arg3)
 
static ::ExceptionBaseTableHandler::ExcColumnNotExistent (std::string arg1)
 
static ::ExceptionBaseTableHandler::ExcSuperColumnNotExistent (std::string arg1)
 
static ::ExceptionBaseTableHandler::ExcColumnOrSuperColumnNotExistent (std::string arg1)
 
static ::ExceptionBaseTableHandler::ExcWrongNumberOfDataEntries (std::string arg1, int arg2, std::string arg3, int arg4)
 
static ::ExceptionBaseTableHandler::ExcUndefinedTexFormat (std::string arg1)
 
 TableHandler::Column::Column ()
 
 TableHandler::Column::Column (const std::string &tex_caption)
 
void TableHandler::Column::pad_column_below (const unsigned int length)
 
template<class Archive >
void TableHandler::Column::save (Archive &ar, const unsigned int version) const
 
template<class Archive >
void TableHandler::Column::load (Archive &ar, const unsigned int version)
 
template<class Archive >
void TableHandler::Column::serialize (Archive &archive, const unsigned int version)
 
void TableHandler::Column::invalidate_cache ()
 
void TableHandler::get_selected_columns (std::vector< std::string > &sel_columns) const
 
unsigned int TableHandler::n_rows () const
 
static ::ExceptionBaseTensorFunctionParser< rank, dim, Number >::ExcParseError (int arg1, std::string arg2)
 
static ::ExceptionBaseTensorFunctionParser< rank, dim, Number >::ExcInvalidExpressionSize (int arg1, int arg2)
 
void TensorFunctionParser< rank, dim, Number >::init_muparser () const
 
static ::ExceptionBaseThreads::Task< RT >::ExcNoTask ()
 
TaskGroupThreads::TaskGroup< RT >::operator+= (const Task< RT > &t)
 
std::size_t Threads::TaskGroup< RT >::size () const
 
void Threads::TaskGroup< RT >::join_all () const
 
static ::ExceptionBaseDifferentiation::AD::ExcRequiresADNumberSpecialization ()
 
static ::ExceptionBaseDifferentiation::AD::ExcRequiresADOLC ()
 
static ::ExceptionBaseDifferentiation::AD::ExcSupportedDerivativeLevels (std::size_t arg1, std::size_t arg2)
 
static ::ExceptionBaseExcADOLCAdvancedBranching ()
 
static ::ExceptionBaseDifferentiation::SD::ExcSymEngineParserError (std::string arg1)
 
static ::ExceptionBaseDifferentiation::SD::ExcSymEngineLLVMNotAvailable ()
 
static ::ExceptionBaseDifferentiation::SD::ExcSymEngineLLVMReturnTypeNotSupported ()
 
template<class StreamType >
StreamType & Differentiation::SD::operator<< (StreamType &s, OptimizerType o)
 
OptimizationFlags Differentiation::SD::operator| (const OptimizationFlags f1, const OptimizationFlags f2)
 
OptimizationFlagsDifferentiation::SD::operator|= (OptimizationFlags &f1, const OptimizationFlags f2)
 
OptimizationFlags Differentiation::SD::operator& (const OptimizationFlags f1, const OptimizationFlags f2)
 
OptimizationFlagsDifferentiation::SD::operator&= (OptimizationFlags &f1, const OptimizationFlags f2)
 
bool Differentiation::SD::internal::use_symbolic_CSE (const enum OptimizationFlags &flags)
 
int Differentiation::SD::internal::get_LLVM_optimization_level (const enum OptimizationFlags &flags)
 
template<class StreamType >
StreamType & Differentiation::SD::operator<< (StreamType &s, OptimizationFlags o)
 
template<typename NumberType , int rank, int dim, template< int, int, typename > class TensorType>
TensorType< rank, dim, NumberType > Differentiation::SD::internal::tensor_evaluate_optimized (const TensorType< rank, dim, Expression > &symbol_tensor, const BatchOptimizer< NumberType > &optimizer)
 
template<typename NumberType , int dim>
SymmetricTensor< 4, dim, NumberType > Differentiation::SD::internal::tensor_evaluate_optimized (const SymmetricTensor< 4, dim, Expression > &symbol_tensor, const BatchOptimizer< NumberType > &optimizer)
 
template<typename NumberType , typename T >
void Differentiation::SD::internal::register_functions (BatchOptimizer< NumberType > &optimizer, const T &function)
 
template<typename NumberType , typename T >
void Differentiation::SD::internal::register_functions (BatchOptimizer< NumberType > &optimizer, const std::vector< T > &functions)
 
template<typename NumberType , typename T , typename... Args>
void Differentiation::SD::internal::register_functions (BatchOptimizer< NumberType > &optimizer, const T &function, const Args &... other_functions)
 
template<int rank, int dim, template< int, int, typename > class TensorType>
types::symbol_vector Differentiation::SD::internal::unroll_to_expression_vector (const TensorType< rank, dim, Expression > &symbol_tensor)
 
template<int dim>
types::symbol_vector Differentiation::SD::internal::unroll_to_expression_vector (const SymmetricTensor< 4, dim, Expression > &symbol_tensor)
 
 Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer ()
 
 Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer (const enum OptimizerType &optimization_method, const enum OptimizationFlags &optimization_flags=OptimizationFlags::optimize_all)
 
 Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer (const BatchOptimizer &other)
 
 Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer (BatchOptimizer &&)=default
 
 Differentiation::SD::BatchOptimizer< ReturnType >::~BatchOptimizer ()=default
 
template<typename Stream >
void Differentiation::SD::BatchOptimizer< ReturnType >::print (Stream &stream, const bool print_cse=false) const
 
template<class Archive >
void Differentiation::SD::BatchOptimizer< ReturnType >::save (Archive &archive, const unsigned int version) const
 
template<class Archive >
void Differentiation::SD::BatchOptimizer< ReturnType >::load (Archive &archive, const unsigned int version)
 
template<class Archive >
void Differentiation::SD::BatchOptimizer< ReturnType >::serialize (Archive &archive, const unsigned int version)
 
static ::ExceptionBaseDoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcInvalidObject ()
 
static ::ExceptionBaseDoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcVectorNotEmpty ()
 
static ::ExceptionBaseDoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcVectorDoesNotMatch ()
 
static ::ExceptionBaseDoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcMatrixDoesNotMatch ()
 
static ::ExceptionBaseDoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcNotActive ()
 
static ::ExceptionBaseDoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcCantCompareIterators ()
 
static ::ExceptionBaseDoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcInvalidObject ()
 
static ::ExceptionBaseDoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcVectorNotEmpty ()
 
static ::ExceptionBaseDoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcVectorDoesNotMatch ()
 
static ::ExceptionBaseDoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcMatrixDoesNotMatch ()
 
static ::ExceptionBaseDoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcNotActive ()
 
static ::ExceptionBaseDoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcCantCompareIterators ()
 
static ::ExceptionBaseDoFRenumbering::ExcDoFHandlerNotInitialized ()
 
static ::ExceptionBaseDoFRenumbering::ExcInvalidComponentOrder ()
 
static ::ExceptionBaseDoFRenumbering::ExcNotDGFEM ()
 
static ::ExceptionBaseComponentMask::ExcNoComponentSelected ()
 
static ::ExceptionBaseFESubfaceValues< dim, spacedim >::ExcReinitCalledWithBoundaryFace ()
 
static ::ExceptionBaseFESubfaceValues< dim, spacedim >::ExcFaceHasNoSubfaces ()
 
static ::ExceptionBaseMappingFEField< dim, spacedim, VectorType, DoFHandlerType >::ExcInactiveCell ()
 
static ::ExceptionBaseMappingQ1Eulerian< dim, VectorType, spacedim >::ExcInactiveCell ()
 
static ::ExceptionBaseMappingQEulerian< dim, VectorType, spacedim >::ExcInactiveCell ()
 
static ::ExceptionBaseFilteredIterator< BaseIterator >::ExcInvalidElement (BaseIterator arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcUnknownSectionType (int arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcUnknownElementType (int arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcUnknownIdentifier (std::string arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcNoTriangulationSelected ()
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcInvalidVertexIndex (int arg1, int arg2)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcInvalidVertexIndexGmsh (int arg1, int arg2, int arg3)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcInvalidDBMeshFormat ()
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcInvalidDBMESHInput (std::string arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcDBMESHWrongDimension (int arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcInvalidGMSHInput (std::string arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcGmshUnsupportedGeometry (int arg1)
 
static ::ExceptionBaseGridIn< dim, spacedim >::ExcGmshNoCellInformation ()
 
static ::ExceptionBaseGridOut::ExcInvalidState ()
 
static ::ExceptionBaseGridRefinement::ExcNegativeCriteria ()
 
static ::ExceptionBaseGridRefinement::ExcInvalidParameterValue ()
 
static ::ExceptionBaseExcMeshNotOrientable ()
 
static ::ExceptionBaseInterGridMap< MeshType >::ExcInvalidKey (cell_iterator arg1)
 
static ::ExceptionBaseInterGridMap< MeshType >::ExcIncompatibleGrids ()
 
static ::ExceptionBaseFlatManifold< dim, spacedim >::ExcPeriodicBox (int arg1, Point< spacedim > arg2, double arg3)
 
static ::ExceptionBasePersistentTriangulation< dim, spacedim >::ExcTriaNotEmpty ()
 
static ::ExceptionBasePersistentTriangulation< dim, spacedim >::ExcFlagsNotCleared ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcCellNotUsed ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcCellNotActive ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcCellHasNoChildren ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcCellHasNoParent ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcCantSetChildren (int arg1)
 
template<typename AccessorType >
static ::ExceptionBaseTriaAccessorExceptions::ExcDereferenceInvalidObject (AccessorType arg1)
 
static ::ExceptionBaseTriaAccessorExceptions::ExcCantCompareIterators ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcNeighborIsCoarser ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcNeighborIsNotCoarser ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcFacesHaveNoLevel ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcNoPeriodicNeighbor ()
 
static ::ExceptionBaseTriaAccessorExceptions::ExcSetOnlyEvenChildren (int arg1)
 
static ::ExceptionBaseCellAccessor< dim, spacedim >::ExcRefineCellNotActive ()
 
static ::ExceptionBaseCellAccessor< dim, spacedim >::ExcCellFlaggedForRefinement ()
 
static ::ExceptionBaseCellAccessor< dim, spacedim >::ExcCellFlaggedForCoarsening ()
 
static ::ExceptionBaseinternal::TriangulationImplementation::TriaLevel< dim >::ExcMemoryInexact (int arg1, int arg2)
 
static ::ExceptionBaseinternal::TriangulationImplementation::TriaLevel< 3 >::ExcMemoryInexact (int arg1, int arg2)
 
static ::ExceptionBaseinternal::TriangulationImplementation::TriaObjects< G >::ExcMemoryInexact (int arg1, int arg2)
 
static ::ExceptionBaseinternal::TriangulationImplementation::TriaObjects< G >::ExcPointerIndexClash ()
 
static ::ExceptionBasehp::QCollection< dim >::ExcNoQuadrature ()
 
static ::ExceptionBaseAffineConstraints< number >::ExcMatrixIsClosed ()
 
static ::ExceptionBaseAffineConstraints< number >::ExcMatrixNotClosed ()
 
static ::ExceptionBaseAffineConstraints< number >::ExcLineInexistant (size_type arg1)
 
static ::ExceptionBaseAffineConstraints< number >::ExcEntryAlreadyExists (size_type arg1, size_type arg2, number arg3, number arg4)
 
static ::ExceptionBaseAffineConstraints< number >::ExcDoFConstrainedToConstrainedDoF (int arg1, int arg2)
 
static ::ExceptionBaseAffineConstraints< number >::ExcDoFIsConstrainedFromBothObjects (size_type arg1)
 
static ::ExceptionBaseAffineConstraints< number >::ExcDoFIsConstrainedToConstrainedDoF (size_type arg1)
 
static ::ExceptionBaseAffineConstraints< number >::ExcRowNotStoredHere (size_type arg1)
 
static ::ExceptionBaseAffineConstraints< number >::ExcColumnNotStoredHere (size_type arg1, size_type arg2)
 
static ::ExceptionBaseAffineConstraints< number >::ExcIncorrectConstraint (int arg1, int arg2)
 
static ::ExceptionBaseArpackSolver::ArpackExcInvalidNumberofEigenvalues (int arg1, int arg2)
 
static ::ExceptionBaseArpackSolver::ArpackExcInvalidEigenvectorSize (int arg1, int arg2)
 
static ::ExceptionBaseArpackSolver::ArpackExcInvalidEigenvectorSizeNonsymmetric (int arg1, int arg2)
 
static ::ExceptionBaseArpackSolver::ArpackExcInvalidEigenvalueSize (int arg1, int arg2)
 
static ::ExceptionBaseArpackSolver::ArpackExcInvalidNumberofArnoldiVectors (int arg1, int arg2)
 
static ::ExceptionBaseArpackSolver::ArpackExcSmallNumberofArnoldiVectors (int arg1, int arg2)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackIdo (int arg1)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackMode (int arg1)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackInfodsaupd (int arg1)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackInfodnaupd (int arg1)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackInfodseupd (int arg1)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackInfodneupd (int arg1)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackInfoMaxIt (int arg1)
 
static ::ExceptionBaseArpackSolver::ArpackExcArpackNoShifts ()
 
static ::ExceptionBaseBlockMatrixBase< MatrixType >::ExcIncompatibleRowNumbers (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBaseBlockMatrixBase< MatrixType >::ExcIncompatibleColNumbers (int arg1, int arg2, int arg3, int arg4)
 
void BlockMatrixBase< MatrixType >::clear ()
 
void BlockMatrixBase< MatrixType >::collect_sizes ()
 
template<class BlockVectorType >
void BlockMatrixBase< MatrixType >::vmult_block_block (BlockVectorType &dst, const BlockVectorType &src) const
 
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::vmult_block_nonblock (BlockVectorType &dst, const VectorType &src) const
 
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::vmult_nonblock_block (VectorType &dst, const BlockVectorType &src) const
 
template<class VectorType >
void BlockMatrixBase< MatrixType >::vmult_nonblock_nonblock (VectorType &dst, const VectorType &src) const
 
template<class BlockVectorType >
void BlockMatrixBase< MatrixType >::Tvmult_block_block (BlockVectorType &dst, const BlockVectorType &src) const
 
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::Tvmult_block_nonblock (BlockVectorType &dst, const VectorType &src) const
 
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::Tvmult_nonblock_block (VectorType &dst, const BlockVectorType &src) const
 
template<class VectorType >
void BlockMatrixBase< MatrixType >::Tvmult_nonblock_nonblock (VectorType &dst, const VectorType &src) const
 
void BlockMatrixBase< MatrixType >::prepare_add_operation ()
 
void BlockMatrixBase< MatrixType >::prepare_set_operation ()
 
TemporaryDataBlockMatrixBase< MatrixType >::TemporaryData::operator= (const TemporaryData &)
 
static ::ExceptionBaseBlockSparsityPatternBase< SparsityPatternType >::ExcIncompatibleRowNumbers (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBaseBlockSparsityPatternBase< SparsityPatternType >::ExcIncompatibleColNumbers (int arg1, int arg2, int arg3, int arg4)
 
 BlockSparsityPattern::BlockSparsityPattern ()=default
 
 BlockSparsityPattern::BlockSparsityPattern (const size_type n_rows, const size_type n_columns)
 
void BlockSparsityPattern::reinit (const size_type n_block_rows, const size_type n_block_columns)
 
void BlockSparsityPattern::reinit (const BlockIndices &row_indices, const BlockIndices &col_indices, const std::vector< std::vector< unsigned int >> &row_lengths)
 
bool BlockSparsityPattern::is_compressed () const
 
std::size_t BlockSparsityPattern::memory_consumption () const
 
void BlockSparsityPattern::copy_from (const BlockDynamicSparsityPattern &dsp)
 
 BlockDynamicSparsityPattern::BlockDynamicSparsityPattern ()=default
 
 BlockDynamicSparsityPattern::BlockDynamicSparsityPattern (const size_type n_rows, const size_type n_columns)
 
 BlockDynamicSparsityPattern::BlockDynamicSparsityPattern (const std::vector< size_type > &row_block_sizes, const std::vector< size_type > &col_block_sizes)
 
 BlockDynamicSparsityPattern::BlockDynamicSparsityPattern (const std::vector< IndexSet > &partitioning)
 
 BlockDynamicSparsityPattern::BlockDynamicSparsityPattern (const BlockIndices &row_indices, const BlockIndices &col_indices)
 
void BlockDynamicSparsityPattern::reinit (const std::vector< size_type > &row_block_sizes, const std::vector< size_type > &col_block_sizes)
 
void BlockDynamicSparsityPattern::reinit (const std::vector< IndexSet > &partitioning)
 
void BlockDynamicSparsityPattern::reinit (const BlockIndices &row_indices, const BlockIndices &col_indices)
 
size_type BlockDynamicSparsityPattern::column_number (const size_type row, const unsigned int index) const
 
static ::ExceptionBaseBlockVector< Number >::ExcIteratorRangeDoesNotMatchVectorSize ()
 
template<typename Matrix >
static void internal::LinearOperatorImplementation::ReinitHelper< BlockVector< number > >::reinit_range_vector (const Matrix &matrix, BlockVector< number > &v, bool omit_zeroing_entries)
 
template<typename Matrix >
static void internal::LinearOperatorImplementation::ReinitHelper< BlockVector< number > >::reinit_domain_vector (const Matrix &matrix, BlockVector< number > &v, bool omit_zeroing_entries)
 
static ::ExceptionBaseinternal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::ExcPointerToDifferentVectors ()
 
void internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::move_forward ()
 
void internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::move_backward ()
 
 BlockVectorBase< VectorType >::BlockVectorBase ()=default
 
 BlockVectorBase< VectorType >::BlockVectorBase (const BlockVectorBase &)=default
 
 BlockVectorBase< VectorType >::BlockVectorBase (BlockVectorBase &&) noexcept=default
 
void BlockVectorBase< VectorType >::collect_sizes ()
 
void BlockVectorBase< VectorType >::compress (::VectorOperation::values operation)
 
BlockTypeBlockVectorBase< VectorType >::block (const unsigned int i)
 
const BlockTypeBlockVectorBase< VectorType >::block (const unsigned int i) const
 
const BlockIndicesBlockVectorBase< VectorType >::get_block_indices () const
 
unsigned int BlockVectorBase< VectorType >::n_blocks () const
 
std::size_t BlockVectorBase< VectorType >::size () const
 
IndexSet BlockVectorBase< VectorType >::locally_owned_elements () const
 
iterator BlockVectorBase< VectorType >::begin ()
 
const_iterator BlockVectorBase< VectorType >::begin () const
 
iterator BlockVectorBase< VectorType >::end ()
 
const_iterator BlockVectorBase< VectorType >::end () const
 
value_type BlockVectorBase< VectorType >::operator() (const size_type i) const
 
reference BlockVectorBase< VectorType >::operator() (const size_type i)
 
value_type BlockVectorBase< VectorType >::operator[] (const size_type i) const
 
reference BlockVectorBase< VectorType >::operator[] (const size_type i)
 
template<typename OtherNumber >
void BlockVectorBase< VectorType >::extract_subvector_to (const std::vector< size_type > &indices, std::vector< OtherNumber > &values) const
 
template<typename ForwardIterator , typename OutputIterator >
void BlockVectorBase< VectorType >::extract_subvector_to (ForwardIterator indices_begin, const ForwardIterator indices_end, OutputIterator values_begin) const
 
BlockVectorBaseBlockVectorBase< VectorType >::operator= (const value_type s)
 
BlockVectorBaseBlockVectorBase< VectorType >::operator= (const BlockVectorBase &V)
 
BlockVectorBaseBlockVectorBase< VectorType >::operator= (BlockVectorBase &&)=default
 
template<class VectorType2 >
BlockVectorBaseBlockVectorBase< VectorType >::operator= (const BlockVectorBase< VectorType2 > &V)
 
BlockVectorBaseBlockVectorBase< VectorType >::operator= (const VectorType &v)
 
template<class VectorType2 >
bool BlockVectorBase< VectorType >::operator== (const BlockVectorBase< VectorType2 > &v) const
 
value_type BlockVectorBase< VectorType >::operator* (const BlockVectorBase &V) const
 
real_type BlockVectorBase< VectorType >::norm_sqr () const
 
value_type BlockVectorBase< VectorType >::mean_value () const
 
real_type BlockVectorBase< VectorType >::l1_norm () const
 
real_type BlockVectorBase< VectorType >::l2_norm () const
 
real_type BlockVectorBase< VectorType >::linfty_norm () const
 
value_type BlockVectorBase< VectorType >::add_and_dot (const value_type a, const BlockVectorBase &V, const BlockVectorBase &W)
 
bool BlockVectorBase< VectorType >::in_local_range (const size_type global_index) const
 
bool BlockVectorBase< VectorType >::all_zero () const
 
bool BlockVectorBase< VectorType >::is_non_negative () const
 
BlockVectorBaseBlockVectorBase< VectorType >::operator+= (const BlockVectorBase &V)
 
BlockVectorBaseBlockVectorBase< VectorType >::operator-= (const BlockVectorBase &V)
 
template<typename Number >
void BlockVectorBase< VectorType >::add (const std::vector< size_type > &indices, const std::vector< Number > &values)
 
template<typename Number >
void BlockVectorBase< VectorType >::add (const std::vector< size_type > &indices, const Vector< Number > &values)
 
template<typename Number >
void BlockVectorBase< VectorType >::add (const size_type n_elements, const size_type *indices, const Number *values)
 
void BlockVectorBase< VectorType >::add (const value_type s)
 
void BlockVectorBase< VectorType >::add (const value_type a, const BlockVectorBase &V)
 
void BlockVectorBase< VectorType >::add (const value_type a, const BlockVectorBase &V, const value_type b, const BlockVectorBase &W)
 
void BlockVectorBase< VectorType >::sadd (const value_type s, const BlockVectorBase &V)
 
void BlockVectorBase< VectorType >::sadd (const value_type s, const value_type a, const BlockVectorBase &V)
 
void BlockVectorBase< VectorType >::sadd (const value_type s, const value_type a, const BlockVectorBase &V, const value_type b, const BlockVectorBase &W)
 
void BlockVectorBase< VectorType >::sadd (const value_type s, const value_type a, const BlockVectorBase &V, const value_type b, const BlockVectorBase &W, const value_type c, const BlockVectorBase &X)
 
BlockVectorBaseBlockVectorBase< VectorType >::operator*= (const value_type factor)
 
BlockVectorBaseBlockVectorBase< VectorType >::operator/= (const value_type factor)
 
template<class BlockVector2 >
void BlockVectorBase< VectorType >::scale (const BlockVector2 &v)
 
template<class BlockVector2 >
void BlockVectorBase< VectorType >::equ (const value_type a, const BlockVector2 &V)
 
void BlockVectorBase< VectorType >::update_ghost_values () const
 
std::size_t BlockVectorBase< VectorType >::memory_consumption () const
 
static ::ExceptionBaseChunkSparsityPattern::ExcInvalidNumber (size_type arg1)
 
static ::ExceptionBaseChunkSparsityPattern::ExcInvalidIndex (size_type arg1, size_type arg2)
 
static ::ExceptionBaseChunkSparsityPattern::ExcNotEnoughSpace (size_type arg1, size_type arg2)
 
static ::ExceptionBaseChunkSparsityPattern::ExcNotCompressed ()
 
static ::ExceptionBaseChunkSparsityPattern::ExcMatrixIsCompressed ()
 
static ::ExceptionBaseChunkSparsityPattern::ExcEmptyObject ()
 
static ::ExceptionBaseChunkSparsityPattern::ExcIteratorRange (size_type arg1, size_type arg2)
 
static ::ExceptionBaseChunkSparsityPattern::ExcMETISNotInstalled ()
 
static ::ExceptionBaseChunkSparsityPattern::ExcInvalidNumberOfPartitions (size_type arg1)
 
static ::ExceptionBaseChunkSparsityPattern::ExcInvalidArraySize (size_type arg1, size_type arg2)
 
static ::ExceptionBaseLinearAlgebra::CUDAWrappers::Vector< Number >::ExcVectorTypeNotCompatible ()
 
static ::ExceptionBaseDynamicSparsityPatternIterators::Accessor::DummyAccessor ()
 
static ::ExceptionBaseLACExceptions::ExcNotQuadratic ()
 
static ::ExceptionBaseLACExceptions::ExcSingular ()
 
static ::ExceptionBaseLACExceptions::ExcDifferentBlockIndices ()
 
static ::ExceptionBaseLACExceptions::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseLinearAlgebra::Vector< Number >::ExcVectorTypeNotCompatible ()
 
static ::ExceptionBaseLAPACKSupport::ExcErrorCode (std::string arg1, types::blas_int arg2)
 
static ::ExceptionBaseLAPACKSupport::ExcState (State arg1)
 
static ::ExceptionBaseLAPACKSupport::ExcProperty (Property arg1)
 
static ::ExceptionBaseLAPACKSupport::ExcMissing (std::string arg1)
 
static ::ExceptionBaseMatrixBlock< MatrixType >::ExcBlockIndexMismatch (size_type arg1, size_type arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcConvergedEigenvectors (int arg1, int arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInvalidNumberofEigenvalues (int arg1, int arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInvalidEigenvectorSize (int arg1, int arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInvalidEigenvectorSizeNonsymmetric (int arg1, int arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInvalidEigenvalueSize (int arg1, int arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInvalidNumberofArnoldiVectors (int arg1, int arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcSmallNumberofArnoldiVectors (int arg1, int arg2)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcIdo (int arg1)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcMode (int arg1)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInfoPdnaupd (int arg1)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInfoPdneupd (int arg1)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcInfoMaxIt (int arg1)
 
static ::ExceptionBasePArpackSolver< VectorType >::PArpackExcNoShifts (int arg1)
 
static ::ExceptionBasePETScWrappers::MPI::BlockVector::ExcIteratorRangeDoesNotMatchVectorSize ()
 
static ::ExceptionBasePETScWrappers::MPI::BlockVector::ExcNonMatchingBlockVectors ()
 
static ::ExceptionBasePETScWrappers::MatrixIterators::const_iterator::Accessor::ExcBeyondEndOfMatrix ()
 
static ::ExceptionBasePETScWrappers::MatrixIterators::const_iterator::Accessor::ExcAccessToNonlocalRow (int arg1, int arg2, int arg3)
 
static ::ExceptionBasePETScWrappers::MatrixIterators::const_iterator::ExcInvalidIndexWithinRow (int arg1, int arg2)
 
static ::ExceptionBasePETScWrappers::MatrixBase::ExcSourceEqualsDestination ()
 
static ::ExceptionBasePETScWrappers::MatrixBase::ExcWrongMode (int arg1, int arg2)
 
static ::ExceptionBasePETScWrappers::MPI::SparseMatrix::ExcLocalRowsTooLarge (int arg1, int arg2)
 
PetscScalar PETScWrappers::MPI::SparseMatrix::matrix_norm_square (const Vector &v) const
 
PetscScalar PETScWrappers::MPI::SparseMatrix::matrix_scalar_product (const Vector &u, const Vector &v) const
 
IndexSet PETScWrappers::MPI::SparseMatrix::locally_owned_domain_indices () const
 
IndexSet PETScWrappers::MPI::SparseMatrix::locally_owned_range_indices () const
 
void PETScWrappers::MPI::SparseMatrix::mmult (SparseMatrix &C, const SparseMatrix &B, const MPI::Vector &V=MPI::Vector()) const
 
void PETScWrappers::MPI::SparseMatrix::Tmmult (SparseMatrix &C, const SparseMatrix &B, const MPI::Vector &V=MPI::Vector()) const
 
void PETScWrappers::MPI::SparseMatrix::do_reinit (const size_type m, const size_type n, const size_type local_rows, const size_type local_columns, const size_type n_nonzero_per_row, const bool is_symmetric=false, const size_type n_offdiag_nonzero_per_row=0)
 
void PETScWrappers::MPI::SparseMatrix::do_reinit (const size_type m, const size_type n, const size_type local_rows, const size_type local_columns, const std::vector< size_type > &row_lengths, const bool is_symmetric=false, const std::vector< size_type > &offdiag_row_lengths=std::vector< size_type >())
 
template<typename SparsityPatternType >
void PETScWrappers::MPI::SparseMatrix::do_reinit (const SparsityPatternType &sparsity_pattern, const std::vector< size_type > &local_rows_per_process, const std::vector< size_type > &local_columns_per_process, const unsigned int this_process, const bool preset_nonzero_locations)
 
template<typename SparsityPatternType >
void PETScWrappers::MPI::SparseMatrix::do_reinit (const IndexSet &local_rows, const IndexSet &local_columns, const SparsityPatternType &sparsity_pattern)
 
 PreconditionBlock< MatrixType, inverse_type >::AdditionalData::AdditionalData (const size_type block_size, const double relaxation=1., const bool invert_diagonal=true, const bool same_diagonal=false)
 
static ::ExceptionBasePreconditionBlock< MatrixType, inverse_type >::ExcWrongBlockSize (int arg1, int arg2)
 
static ::ExceptionBasePreconditionBlock< MatrixType, inverse_type >::ExcInverseMatricesAlreadyExist ()
 
 PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::Accessor (const PreconditionBlockJacobi< MatrixType, inverse_type > *matrix, const size_type row)
 
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::row () const
 
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::column () const
 
inverse_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::value () const
 
 PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::const_iterator (const PreconditionBlockJacobi< MatrixType, inverse_type > *matrix, const size_type row)
 
const_iteratorPreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator++ ()
 
const AccessorPreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator* () const
 
const AccessorPreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator-> () const
 
bool PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator== (const const_iterator &) const
 
bool PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator!= (const const_iterator &) const
 
bool PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator< (const const_iterator &) const
 
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::vmult (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::Tvmult (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::vmult_add (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::Tvmult_add (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::step (Vector< number2 > &dst, const Vector< number2 > &rhs) const
 
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::Tstep (Vector< number2 > &dst, const Vector< number2 > &rhs) const
 
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::begin () const
 
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::end () const
 
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::begin (const size_type r) const
 
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::end (const size_type r) const
 
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::do_vmult (Vector< number2 > &, const Vector< number2 > &, bool adding) const
 
 PreconditionBlockSOR< MatrixType, inverse_type >::PreconditionBlockSOR ()
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::vmult (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::vmult_add (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::Tvmult (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::Tvmult_add (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::step (Vector< number2 > &dst, const Vector< number2 > &rhs) const
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::Tstep (Vector< number2 > &dst, const Vector< number2 > &rhs) const
 
 PreconditionBlockSOR< MatrixType, inverse_type >::PreconditionBlockSOR (bool store)
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::forward (Vector< number2 > &, const Vector< number2 > &, const bool transpose_diagonal, const bool adding) const
 
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::backward (Vector< number2 > &, const Vector< number2 > &, const bool transpose_diagonal, const bool adding) const
 
 PreconditionBlockSSOR< MatrixType, inverse_type >::PreconditionBlockSSOR ()
 
template<typename number2 >
void PreconditionBlockSSOR< MatrixType, inverse_type >::vmult (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockSSOR< MatrixType, inverse_type >::Tvmult (Vector< number2 > &, const Vector< number2 > &) const
 
template<typename number2 >
void PreconditionBlockSSOR< MatrixType, inverse_type >::step (Vector< number2 > &dst, const Vector< number2 > &rhs) const
 
template<typename number2 >
void PreconditionBlockSSOR< MatrixType, inverse_type >::Tstep (Vector< number2 > &dst, const Vector< number2 > &rhs) const
 
static ::ExceptionBasePreconditionBlockBase< number >::ExcDiagonalsNotStored ()
 
static ::ExceptionBasePreconditionBlockBase< number >::ExcInverseNotAvailable ()
 
static ::ExceptionBasePreconditionSelector< MatrixType, VectorType >::ExcNoMatrixGivenToUse ()
 
static ::ExceptionBaseSLEPcWrappers::SolverBase::ExcSLEPcWrappersUsageError ()
 
static ::ExceptionBaseSLEPcWrappers::SolverBase::ExcSLEPcError (int arg1)
 
static ::ExceptionBaseSLEPcWrappers::SolverBase::ExcSLEPcEigenvectorConvergenceMismatchError (int arg1, int arg2)
 
static ::ExceptionBaseSolverControl::ExcHistoryDataRequired ()
 
static ::ExceptionBaseSolverGMRES< VectorType >::ExcTooFewTmpVectors (int arg1)
 
static ::ExceptionBaseSolverMinRes< VectorType >::ExcPreconditionerNotDefinite ()
 
virtual double SolverMinRes< VectorType >::criterion ()
 
virtual void SolverMinRes< VectorType >::print_vectors (const unsigned int step, const VectorType &x, const VectorType &r, const VectorType &d) const
 
static ::ExceptionBaseSolverSelector< VectorType >::ExcSolverDoesNotExist (std::string arg1)
 
 SparseLUDecomposition< number >::AdditionalData::AdditionalData (const double strengthen_diagonal=0, const unsigned int extra_off_diagonals=0, const bool use_previous_sparsity=false, const SparsityPattern *use_this_sparsity=nullptr)
 
static ::ExceptionBaseSparseLUDecomposition< number >::ExcInvalidStrengthening (double arg1)
 
template<typename somenumber >
void SparseLUDecomposition< number >::copy_from (const SparseMatrix< somenumber > &matrix)
 
virtual void SparseLUDecomposition< number >::strengthen_diagonal_impl ()
 
virtual number SparseLUDecomposition< number >::get_strengthen_diagonal (const number rowsum, const size_type row) const
 
void SparseLUDecomposition< number >::prebuild_lower_bound ()
 
static ::ExceptionBaseSparseDirectUMFPACK::ExcUMFPACKError (std::string arg1, int arg2)
 
static ::ExceptionBaseSparseILU< number >::ExcInvalidStrengthening (double arg1)
 
static ::ExceptionBaseSparseILU< number >::ExcZeroPivot (size_type arg1)
 
 SparseMatrixEZ< number >::Entry::Entry ()
 
 SparseMatrixEZ< number >::Entry::Entry (const size_type column, const number &value)
 
 SparseMatrixEZ< number >::RowInfo::RowInfo (const size_type start=Entry::invalid)
 
 SparseMatrixEZ< number >::const_iterator::Accessor::Accessor (const SparseMatrixEZ< number > *matrix, const size_type row, const unsigned short index)
 
size_type SparseMatrixEZ< number >::const_iterator::Accessor::row () const
 
unsigned short SparseMatrixEZ< number >::const_iterator::Accessor::index () const
 
size_type SparseMatrixEZ< number >::const_iterator::Accessor::column () const
 
number SparseMatrixEZ< number >::const_iterator::Accessor::value () const
 
 SparseMatrixEZ< number >::const_iterator::const_iterator (const SparseMatrixEZ< number > *matrix, const size_type row, const unsigned short index)
 
const_iteratorSparseMatrixEZ< number >::const_iterator::operator++ ()
 
const AccessorSparseMatrixEZ< number >::const_iterator::operator* () const
 
const AccessorSparseMatrixEZ< number >::const_iterator::operator-> () const
 
bool SparseMatrixEZ< number >::const_iterator::operator== (const const_iterator &) const
 
bool SparseMatrixEZ< number >::const_iterator::operator!= (const const_iterator &) const
 
bool SparseMatrixEZ< number >::const_iterator::operator< (const const_iterator &) const
 
static ::ExceptionBaseSparseMIC< number >::ExcStrengthenDiagonalTooSmall ()
 
static ::ExceptionBaseSparseMIC< number >::ExcInvalidStrengthening (double arg1)
 
static ::ExceptionBaseSparseMIC< number >::ExcDecompositionNotStable (int arg1, double arg2)
 
number SparseMIC< number >::get_rowsum (const size_type row) const
 
static ::ExceptionBaseSparsityPatternIterators::Accessor::DummyAccessor ()
 
static ::ExceptionBaseSparsityTools::ExcMETISNotInstalled ()
 
static ::ExceptionBaseSparsityTools::ExcInvalidNumberOfPartitions (int arg1)
 
static ::ExceptionBaseSparsityTools::ExcMETISError (int arg1)
 
static ::ExceptionBaseSparsityTools::ExcInvalidArraySize (int arg1, int arg2)
 
static ::ExceptionBaseSparsityTools::ExcZOLTANNotInstalled ()
 
static ::ExceptionBaseTrilinosWrappers::BlockSparseMatrix::ExcIncompatibleRowNumbers (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBaseTrilinosWrappers::BlockSparseMatrix::ExcIncompatibleColNumbers (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcDifferentParallelPartitioning ()
 
static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcVectorTypeNotCompatible ()
 
static ::ExceptionBaseLinearAlgebra::EpetraWrappers::Vector::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseTrilinosWrappers::MPI::BlockVector::ExcIteratorRangeDoesNotMatchVectorSize ()
 
static ::ExceptionBaseTrilinosWrappers::MPI::BlockVector::ExcNonMatchingBlockVectors ()
 
static ::ExceptionBaseTrilinosWrappers::SolverBase::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseTrilinosWrappers::SolverDirect::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrixIterators::ExcBeyondEndOfMatrix ()
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrixIterators::ExcAccessToNonlocalRow (std::size_t arg1, std::size_t arg2, std::size_t arg3)
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrixIterators::Iterator< Constness >::ExcInvalidIndexWithinRow (size_type arg1, size_type arg2)
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrix::ExcAccessToNonlocalRow (std::size_t arg1)
 
static ::ExceptionBaseTrilinosWrappers::SparsityPatternIterators::Accessor::ExcBeyondEndOfSparsityPattern ()
 
static ::ExceptionBaseTrilinosWrappers::SparsityPatternIterators::Accessor::ExcAccessToNonlocalRow (size_type arg1, size_type arg2, size_type arg3)
 
static ::ExceptionBaseTrilinosWrappers::SparsityPatternIterators::Iterator::ExcInvalidIndexWithinRow (size_type arg1, size_type arg2)
 
static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number >::ExcDifferentParallelPartitioning ()
 
static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number >::ExcVectorTypeNotCompatible ()
 
static ::ExceptionBaseLinearAlgebra::TpetraWrappers::Vector< Number >::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseVectorMemory< VectorType >::ExcNotAllocatedHere ()
 
 VectorMemory< VectorType >::Pointer::Pointer ()=default
 
 VectorMemory< VectorType >::Pointer::Pointer (Pointer &&p) noexcept=default
 
PointerVectorMemory< VectorType >::Pointer::operator= (Pointer &&p) noexcept=default
 
 VectorMemory< VectorType >::Pointer::Pointer (VectorMemory< VectorType > &mem)
 
 VectorMemory< VectorType >::Pointer::~Pointer ()=default
 
virtual VectorTypePrimitiveVectorMemory< VectorType >::alloc () override
 
virtual void PrimitiveVectorMemory< VectorType >::free (const VectorType *const v) override
 
 GrowingVectorMemory< VectorType >::GrowingVectorMemory (const size_type initial_size=0, const bool log_statistics=false)
 
virtual GrowingVectorMemory< VectorType >::~GrowingVectorMemory () override
 
virtual VectorTypeGrowingVectorMemory< VectorType >::alloc () override
 
virtual void GrowingVectorMemory< VectorType >::free (const VectorType *const) override
 
static void GrowingVectorMemory< VectorType >::release_unused_memory ()
 
virtual std::size_t GrowingVectorMemory< VectorType >::memory_consumption () const
 
 GrowingVectorMemory< VectorType >::Pool::Pool ()
 
 GrowingVectorMemory< VectorType >::Pool::~Pool ()
 
void GrowingVectorMemory< VectorType >::Pool::initialize (const size_type size)
 
static PoolGrowingVectorMemory< VectorType >::get_pool ()
 
void internal::GrowingVectorMemoryImplementation::release_all_unused_memory ()
 
static ::ExceptionBaseinternal::ExcAccessToUninitializedField ()
 
static ::ExceptionBaseMeshWorker::LocalIntegrator< dim, spacedim, number >::ExcPureFunction ()
 
static ::ExceptionBaseMGTransferPrebuilt< VectorType >::ExcNoProlongation ()
 
static ::ExceptionBaseMGTransferPrebuilt< VectorType >::ExcMatricesNotBuilt ()
 
static ::ExceptionBaseMGTransferBlockBase::ExcMatricesNotBuilt ()
 
static ::ExceptionBaseMGTransferComponentBase::ExcMatricesNotBuilt ()
 
static ::ExceptionBaseMGTransferMatrixFree< dim, Number >::ExcNoProlongation ()
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcInvalidNumberOfSubdivisions (int arg1)
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcNoTriangulationSelected ()
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcNoDoFHandlerSelected ()
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcInvalidVectorSize (int arg1, int arg2, int arg3)
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcInvalidCharacter (std::string arg1, size_t arg2)
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcOldDataStillPresent ()
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcInvalidNumberOfNames (int arg1, int arg2)
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcIncompatibleDatasetNames ()
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcIncompatiblePatchLists ()
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcInvalidVectorDeclaration (int arg1, std::string arg2)
 
static ::ExceptionBaseExceptions::DataOutImplementation::ExcInvalidTensorDeclaration (int arg1, std::string arg2)
 
static ::ExceptionBaseDataOutRotation< dim, DoFHandlerType >::ExcRadialVariableHasNegativeValues (double arg1)
 
static ::ExceptionBaseDataOutStack< dim, spacedim, DoFHandlerType >::ExcVectorNotDeclared (std::string arg1)
 
static ::ExceptionBaseDataOutStack< dim, spacedim, DoFHandlerType >::ExcDataNotCleared ()
 
static ::ExceptionBaseDataOutStack< dim, spacedim, DoFHandlerType >::ExcDataAlreadyAdded ()
 
static ::ExceptionBaseDataOutStack< dim, spacedim, DoFHandlerType >::ExcNameAlreadyUsed (std::string arg1)
 
static ::ExceptionBaseDerivativeApproximation::ExcVectorLengthVsNActiveCells (int arg1, int arg2)
 
static ::ExceptionBaseDerivativeApproximation::ExcInsufficientDirections ()
 
static ::ExceptionBaseKellyErrorEstimator< dim, spacedim >::ExcInvalidComponentMask ()
 
static ::ExceptionBaseKellyErrorEstimator< dim, spacedim >::ExcInvalidCoefficient ()
 
static ::ExceptionBaseKellyErrorEstimator< dim, spacedim >::ExcInvalidBoundaryFunction (types::boundary_id arg1, int arg2, int arg3)
 
static ::ExceptionBaseKellyErrorEstimator< dim, spacedim >::ExcIncompatibleNumberOfElements (int arg1, int arg2)
 
static ::ExceptionBaseKellyErrorEstimator< dim, spacedim >::ExcNoSolutions ()
 
static ::ExceptionBaseKellyErrorEstimator< 1, spacedim >::ExcInvalidComponentMask ()
 
static ::ExceptionBaseKellyErrorEstimator< 1, spacedim >::ExcInvalidCoefficient ()
 
static ::ExceptionBaseKellyErrorEstimator< 1, spacedim >::ExcInvalidBoundaryFunction (types::boundary_id arg1, int arg2, int arg3)
 
static ::ExceptionBaseKellyErrorEstimator< 1, spacedim >::ExcIncompatibleNumberOfElements (int arg1, int arg2)
 
static ::ExceptionBaseKellyErrorEstimator< 1, spacedim >::ExcNoSolutions ()
 
static ::ExceptionBaseHistogram::ExcEmptyData ()
 
static ::ExceptionBaseHistogram::ExcIncompatibleArraySize (int arg1, int arg2)
 
static ::ExceptionBaseHistogram::ExcInvalidName (std::string arg1)
 
static ::ExceptionBaseMatrixCreator::ExcComponentMismatch ()
 
static ::ExceptionBaseMatrixTools::ExcBlocksDontMatch ()
 
static ::ExceptionBasePointValueHistory< dim >::ExcNoIndependent ()
 
static ::ExceptionBasePointValueHistory< dim >::ExcDataLostSync ()
 
static ::ExceptionBasePointValueHistory< dim >::ExcDoFHandlerRequired ()
 
static ::ExceptionBasePointValueHistory< dim >::ExcDoFHandlerChanged ()
 
static ::ExceptionBaseSolutionTransfer< dim, VectorType, DoFHandlerType >::ExcNotPrepared ()
 
static ::ExceptionBaseSolutionTransfer< dim, VectorType, DoFHandlerType >::ExcAlreadyPrepForRef ()
 
static ::ExceptionBaseSolutionTransfer< dim, VectorType, DoFHandlerType >::ExcAlreadyPrepForCoarseAndRef ()
 
static ::ExceptionBaseTimeDependent::ExcInvalidPosition ()
 
static ::ExceptionBaseTimeStepBase_Tria_Flags::RefinementFlags< dim >::ExcInvalidValue (double arg1)
 
static ::ExceptionBaseTimeStepBase_Tria_Flags::RefinementData< dim >::ExcInvalidValue (double arg1)
 
static ::ExceptionBaseTimeStepBase_Tria< dim >::ExcGridNotDeleted ()
 
static ::ExceptionBaseVectorTools::ExcPointNotAvailableHere ()
 
template<int dim>
static ::ExceptionBaseOpenCASCADE::ExcPointNotOnManifold (Point< dim > arg1)
 
template<int dim>
static ::ExceptionBaseOpenCASCADE::ExcProjectionFailed (Point< dim > arg1)
 
static ::ExceptionBaseOpenCASCADE::ExcOCCError (IFSelect_ReturnStatus arg1)
 
static ::ExceptionBaseOpenCASCADE::ExcEdgeIsDegenerate ()
 
static ::ExceptionBaseOpenCASCADE::ExcUnsupportedShape ()
 
static ::ExceptionBasePhysics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorRowSize2 (int arg1, int arg2, int arg3)
 
static ::ExceptionBasePhysics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorRowSize3 (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBasePhysics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorColSize2 (int arg1, int arg2, int arg3)
 
static ::ExceptionBasePhysics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorColSize3 (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBaseSUNDIALS::KINSOL< VectorType >::ExcKINSOLError (int arg1)
 
static ::ExceptionBaseSUNDIALS::KINSOL< VectorType >::ExcFunctionNotProvided (std::string arg1)
 
static ::ExceptionBaseGeometricUtilities::Coordinates::NegativeRadius (double arg1)
 
static ::ExceptionBaseGeometricUtilities::Coordinates::SphericalAzimuth (double arg1)
 
static ::ExceptionBaseGeometricUtilities::Coordinates::SphericalPolar (double arg1)
 
static ::ExceptionBaseUtilities::ExcInvalidNumber2StringConversersion (unsigned int arg1, unsigned int arg2)
 
static ::ExceptionBaseUtilities::ExcInvalidNumber (unsigned int arg1)
 
static ::ExceptionBaseUtilities::ExcCantConvertString (std::string arg1)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcGridHasInvalidCell (int arg1)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcInternalErrorOnCell (int arg1)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcCellHasNegativeMeasure (int arg1)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcInvalidVertexIndex (int arg1, int arg2, int arg3)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcLineInexistant (int arg1, int arg2)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcQuadInexistant (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcInteriorLineCantBeBoundary (int arg1, int arg2, types::boundary_id arg3)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcInteriorQuadCantBeBoundary (int arg1, int arg2, int arg3, int arg4, types::boundary_id arg5)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcMultiplySetLineInfoOfLine (int arg1, int arg2)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcInconsistentLineInfoOfLine (int arg1, int arg2, std::string arg3)
 
static ::ExceptionBaseinternal::TriangulationImplementation::ExcInconsistentQuadInfoOfQuad (int arg1, int arg2, int arg3, int arg4, std::string arg5)
 
template<class... PatternTypes>
 Patterns::Tuple::Tuple (const PatternTypes &... ps)
 
template<typename T >
 internal::TableEntry::TableEntry (const T &t)
 
template<typename T >
internal::TableEntry::get () const
 
template<class Archive >
void internal::TableEntry::save (Archive &ar, const unsigned int version) const
 
template<class Archive >
void internal::TableEntry::load (Archive &ar, const unsigned int version)
 

Variables

static const unsigned int DataOutBase::Patch< dim, spacedim >::space_dim = spacedim
 
Point< spacedim > DataOutBase::Patch< dim, spacedim >::vertices [GeometryInfo< dim >::vertices_per_cell]
 
std::array< unsigned int, GeometryInfo< dim >::faces_per_cell > DataOutBase::Patch< dim, spacedim >::neighbors
 
unsigned int DataOutBase::Patch< dim, spacedim >::patch_index
 
unsigned int DataOutBase::Patch< dim, spacedim >::n_subdivisions
 
Table< 2, float > DataOutBase::Patch< dim, spacedim >::data
 
bool DataOutBase::Patch< dim, spacedim >::points_are_available
 
static const unsigned int DataOutBase::Patch< dim, spacedim >::no_neighbor = numbers::invalid_unsigned_int
 
static const unsigned int DataOutBase::Patch< 0, spacedim >::space_dim = spacedim
 
Point< spacedim > DataOutBase::Patch< 0, spacedim >::vertices [1]
 
static unsigned int DataOutBase::Patch< 0, spacedim >::neighbors [1]
 
unsigned int DataOutBase::Patch< 0, spacedim >::patch_index
 
static unsigned int DataOutBase::Patch< 0, spacedim >::n_subdivisions = 1
 
Table< 2, float > DataOutBase::Patch< 0, spacedim >::data
 
bool DataOutBase::Patch< 0, spacedim >::points_are_available
 
static const unsigned int DataOutBase::Patch< 0, spacedim >::no_neighbor = numbers::invalid_unsigned_int
 
bool DataOutBase::DXFlags::write_neighbors
 
bool DataOutBase::DXFlags::int_binary
 
bool DataOutBase::DXFlags::coordinates_binary
 
bool DataOutBase::DXFlags::data_binary
 
bool DataOutBase::DXFlags::data_double
 
bool DataOutBase::UcdFlags::write_preamble
 
std::vector< std::string > DataOutBase::GnuplotFlags::space_dimension_labels
 
bool DataOutBase::PovrayFlags::smooth
 
bool DataOutBase::PovrayFlags::bicubic_patch
 
bool DataOutBase::PovrayFlags::external_data
 
unsigned int DataOutBase::EpsFlags::height_vector
 
unsigned int DataOutBase::EpsFlags::color_vector
 
SizeType DataOutBase::EpsFlags::size_type
 
unsigned int DataOutBase::EpsFlags::size
 
double DataOutBase::EpsFlags::line_width
 
double DataOutBase::EpsFlags::azimut_angle
 
double DataOutBase::EpsFlags::turn_angle
 
double DataOutBase::EpsFlags::z_scaling
 
bool DataOutBase::EpsFlags::draw_mesh
 
bool DataOutBase::EpsFlags::draw_cells
 
bool DataOutBase::EpsFlags::shade_cells
 
float DataOutBase::EpsFlags::RgbValues::red
 
float DataOutBase::EpsFlags::RgbValues::green
 
float DataOutBase::EpsFlags::RgbValues::blue
 
ColorFunction DataOutBase::EpsFlags::color_function
 
const char * DataOutBase::TecplotFlags::tecplot_binary_file_name
 
const char * DataOutBase::TecplotFlags::zone_name
 
double DataOutBase::TecplotFlags::solution_time
 
double DataOutBase::VtkFlags::time
 
unsigned int DataOutBase::VtkFlags::cycle
 
bool DataOutBase::VtkFlags::print_date_and_time
 
ZlibCompressionLevel DataOutBase::VtkFlags::compression_level
 
bool DataOutBase::VtkFlags::write_higher_order_cells
 
unsigned int DataOutBase::SvgFlags::height
 
unsigned int DataOutBase::SvgFlags::width
 
unsigned int DataOutBase::SvgFlags::height_vector
 
int DataOutBase::SvgFlags::azimuth_angle
 
int DataOutBase::SvgFlags::polar_angle
 
unsigned int DataOutBase::SvgFlags::line_thickness
 
bool DataOutBase::SvgFlags::margin
 
bool DataOutBase::SvgFlags::draw_colorbar
 
static const unsigned int DataOutBase::Deal_II_IntermediateFlags::format_version = 3
 
bool DataOutBase::DataOutFilterFlags::filter_duplicate_vertices
 
bool DataOutBase::DataOutFilterFlags::xdmf_hdf5_output
 
DataOutBase::DataOutFilterFlags DataOutBase::DataOutFilter::flags
 
unsigned int DataOutBase::DataOutFilter::node_dim
 
unsigned int DataOutBase::DataOutFilter::vertices_per_cell
 
Map3DPoint DataOutBase::DataOutFilter::existing_points
 
std::map< unsigned int, unsigned intDataOutBase::DataOutFilter::filtered_points
 
std::map< unsigned int, unsigned intDataOutBase::DataOutFilter::filtered_cells
 
std::vector< std::string > DataOutBase::DataOutFilter::data_set_names
 
std::vector< unsigned intDataOutBase::DataOutFilter::data_set_dims
 
std::vector< std::vector< double > > DataOutBase::DataOutFilter::data_sets
 
unsigned int DataOutInterface< dim, spacedim >::default_subdivisions
 
DataOutBase::OutputFormat DataOutInterface< dim, spacedim >::default_fmt
 
DataOutBase::DXFlags DataOutInterface< dim, spacedim >::dx_flags
 
DataOutBase::UcdFlags DataOutInterface< dim, spacedim >::ucd_flags
 
DataOutBase::GnuplotFlags DataOutInterface< dim, spacedim >::gnuplot_flags
 
DataOutBase::PovrayFlags DataOutInterface< dim, spacedim >::povray_flags
 
DataOutBase::EpsFlags DataOutInterface< dim, spacedim >::eps_flags
 
DataOutBase::GmvFlags DataOutInterface< dim, spacedim >::gmv_flags
 
DataOutBase::TecplotFlags DataOutInterface< dim, spacedim >::tecplot_flags
 
DataOutBase::VtkFlags DataOutInterface< dim, spacedim >::vtk_flags
 
DataOutBase::SvgFlags DataOutInterface< dim, spacedim >::svg_flags
 
DataOutBase::Deal_II_IntermediateFlags DataOutInterface< dim, spacedim >::deal_II_intermediate_flags
 
std::vector<::DataOutBase::Patch< dim, spacedim > > DataOutReader< dim, spacedim >::patches
 
std::vector< std::string > DataOutReader< dim, spacedim >::dataset_names
 
std::vector< std::tuple< unsigned int, unsigned int, std::string, DataComponentInterpretation::DataComponentInterpretation > > DataOutReader< dim, spacedim >::nonscalar_data_ranges
 
bool XDMFEntry::valid
 
std::string XDMFEntry::h5_sol_filename
 
std::string XDMFEntry::h5_mesh_filename
 
double XDMFEntry::entry_time
 
unsigned int XDMFEntry::num_nodes
 
unsigned int XDMFEntry::num_cells
 
unsigned int XDMFEntry::dimension
 
unsigned int XDMFEntry::space_dimension
 
std::map< std::string, unsigned intXDMFEntry::attribute_dims
 
Threads::ThreadLocalStorage< std::vector< double > > FunctionParser< dim >::vars
 
Threads::ThreadLocalStorage< std::vector< std::unique_ptr< mu::Parser > > > FunctionParser< dim >::fp
 
std::map< std::string, doubleFunctionParser< dim >::constants
 
std::vector< std::string > FunctionParser< dim >::var_names
 
std::vector< std::string > FunctionParser< dim >::expressions
 
bool FunctionParser< dim >::initialized
 
unsigned int FunctionParser< dim >::n_vars
 
static const char ParameterHandler::path_separator = '.'
 
std::vector< std::string > ParameterHandler::subsection_path
 
std::unique_ptr< boost::property_tree::ptree > ParameterHandler::entries
 
std::map< std::string, std::pair< bool, bool > > ParameterHandler::entries_set_status
 
std::vector< std::unique_ptr< const Patterns::PatternBase > > ParameterHandler::patterns
 
std::vector< std::function< void(const std::string &)> > ParameterHandler::actions
 
std::vector< std::string > MultipleParameterLoop::Entry::subsection_path
 
std::string MultipleParameterLoop::Entry::entry_name
 
std::string MultipleParameterLoop::Entry::entry_value
 
std::vector< std::string > MultipleParameterLoop::Entry::different_values
 
MultipleEntryType MultipleParameterLoop::Entry::type
 
std::vector< EntryMultipleParameterLoop::multiple_choices
 
unsigned int MultipleParameterLoop::n_branches
 
std::unique_ptr< PatternBasePatterns::List::pattern
 
const unsigned int Patterns::List::min_elements
 
const unsigned int Patterns::List::max_elements
 
const std::string Patterns::List::separator
 
static const char * Patterns::List::description_init = "[List"
 
static const unsigned int Patterns::Map::max_int_value
 
std::unique_ptr< PatternBasePatterns::Map::key_pattern
 
std::unique_ptr< PatternBasePatterns::Map::value_pattern
 
const unsigned int Patterns::Map::min_elements
 
const unsigned int Patterns::Map::max_elements
 
const std::string Patterns::Map::separator
 
const std::string Patterns::Map::key_value_separator
 
static const char * Patterns::Map::description_init = "[Map"
 
std::vector< std::unique_ptr< PatternBase > > Patterns::Tuple::patterns
 
const std::string Patterns::Tuple::separator
 
static const char * Patterns::Tuple::description_init = "[Tuple"
 
std::string Patterns::MultipleSelection::sequence
 
static const char * Patterns::MultipleSelection::description_init = "[MultipleSelection"
 
static const char * Patterns::Bool::description_init = "[Bool"
 
static const char * Patterns::Anything::description_init = "[Anything"
 
FileType Patterns::FileName::file_type
 
static const char * Patterns::FileName::description_init = "[FileName"
 
static const char * Patterns::DirectoryName::description_init = "[DirectoryName"
 
static constexpr int Patterns::Tools::internal::RankInfo< T, Enable >::list_rank = 0
 
static constexpr int Patterns::Tools::internal::RankInfo< T, Enable >::map_rank = 0
 
constexpr std::array< const char *, 4 > Patterns::Tools::internal::default_list_separator
 
constexpr std::array< const char *, 4 > Patterns::Tools::internal::default_map_separator
 
static constexpr const bool Patterns::Tools::is_list_compatible< T >::value
 
static constexpr const bool Patterns::Tools::is_map_compatible< T >::value
 
static constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_list_compatible< T >::value >::type >::list_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_list_compatible< T >::value >::type >::map_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_map_compatible< T >::value >::type >::list_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_map_compatible< T >::value >::type >::map_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< Tensor< rank, dim, Number > >::list_rank = rank + RankInfo<Number>::list_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< Tensor< rank, dim, Number > >::map_rank = RankInfo<Number>::map_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< std::complex< Number > >::list_rank = RankInfo<Number>::list_rank + 1
 
static constexpr int Patterns::Tools::internal::RankInfo< std::complex< Number > >::map_rank = RankInfo<Number>::map_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< std::unique_ptr< FunctionParser< dim > > >::list_rank = 1
 
static constexpr int Patterns::Tools::internal::RankInfo< std::unique_ptr< FunctionParser< dim > > >::map_rank = 0
 
static constexpr int Patterns::Tools::internal::RankInfo< ComponentMask >::list_rank = 1
 
static constexpr int Patterns::Tools::internal::RankInfo< ComponentMask >::map_rank = 0
 
static constexpr int Patterns::Tools::internal::RankInfo< std::pair< Key, Value > >::list_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< std::pair< Key, Value > >::map_rank
 
static constexpr int Patterns::Tools::internal::RankInfo< std::tuple< Types... > >::list_rank = max_list_rank<Types...>()
 
static constexpr int Patterns::Tools::internal::RankInfo< std::tuple< Types... > >::map_rank = max_map_rank<Types...>() + 1
 
std::atomic< unsigned intSubscriptor::counter
 
std::map< std::string, unsigned intSubscriptor::counter_map
 
std::vector< std::atomic< bool > * > Subscriptor::validity_pointers
 
const std::type_info * Subscriptor::object_info
 
static std::mutex Subscriptor::mutex
 
std::vector< internal::TableEntryTableHandler::Column::entries
 
std::string TableHandler::Column::tex_caption
 
std::string TableHandler::Column::tex_format
 
unsigned int TableHandler::Column::precision
 
bool TableHandler::Column::scientific
 
unsigned int TableHandler::Column::flag
 
unsigned int TableHandler::Column::max_length
 
std::vector< std::string > TableHandler::column_order
 
std::map< std::string, ColumnTableHandler::columns
 
std::map< std::string, std::vector< std::string > > TableHandler::supercolumns
 
std::map< std::string, std::string > TableHandler::tex_supercaptions
 
std::string TableHandler::tex_table_caption
 
std::string TableHandler::tex_table_label
 
bool TableHandler::auto_fill_mode
 
Threads::ThreadLocalStorage< std::vector< double > > TensorFunctionParser< rank, dim, Number >::vars
 
Threads::ThreadLocalStorage< std::vector< std::unique_ptr< mu::Parser > > > TensorFunctionParser< rank, dim, Number >::tfp
 
std::map< std::string, doubleTensorFunctionParser< rank, dim, Number >::constants
 
std::vector< std::string > TensorFunctionParser< rank, dim, Number >::var_names
 
std::vector< std::string > TensorFunctionParser< rank, dim, Number >::expressions
 
bool TensorFunctionParser< rank, dim, Number >::initialized
 
unsigned int TensorFunctionParser< rank, dim, Number >::n_vars
 
unsigned int TensorFunctionParser< rank, dim, Number >::n_components
 
std::shared_ptr< internal::TaskDescriptor< RT > > Threads::Task< RT >::task_descriptor
 
std::list< Task< RT > > Threads::TaskGroup< RT >::tasks
 
BlockIndices BlockMatrixBase< MatrixType >::row_block_indices
 
BlockIndices BlockMatrixBase< MatrixType >::column_block_indices
 
Table< 2, SmartPointer< BlockType, BlockMatrixBase< MatrixType > > > BlockMatrixBase< MatrixType >::sub_objects
 
std::vector< size_typeBlockMatrixBase< MatrixType >::TemporaryData::counter_within_block
 
std::vector< std::vector< size_type > > BlockMatrixBase< MatrixType >::TemporaryData::column_indices
 
std::vector< std::vector< value_type > > BlockMatrixBase< MatrixType >::TemporaryData::column_values
 
std::mutex BlockMatrixBase< MatrixType >::TemporaryData::mutex
 
TemporaryData BlockMatrixBase< MatrixType >::temporary_data
 
size_type BlockSparsityPatternBase< SparsityPatternType >::rows
 
size_type BlockSparsityPatternBase< SparsityPatternType >::columns
 
Table< 2, SmartPointer< SparsityPatternType, BlockSparsityPatternBase< SparsityPatternType > > > BlockSparsityPatternBase< SparsityPatternType >::sub_objects
 
BlockIndices BlockSparsityPatternBase< SparsityPatternType >::row_indices
 
BlockIndices BlockSparsityPatternBase< SparsityPatternType >::column_indices
 
std::vector< size_typeBlockSparsityPatternBase< SparsityPatternType >::counter_within_block
 
std::vector< std::vector< size_type > > BlockSparsityPatternBase< SparsityPatternType >::block_column_indices
 
BlockVectorinternal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::parent
 
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::global_index
 
unsigned int internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::current_block
 
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::index_within_block
 
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::next_break_forward
 
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::next_break_backward
 
std::vector< VectorTypeBlockVectorBase< VectorType >::components
 
BlockIndices BlockVectorBase< VectorType >::block_indices
 
static const bool ChunkSparseMatrix< number >::Traits::zero_addition_can_be_elided = true
 
size_type ChunkSparsityPattern::rows
 
size_type ChunkSparsityPattern::cols
 
size_type ChunkSparsityPattern::chunk_size
 
SparsityPattern ChunkSparsityPattern::sparsity_pattern
 
static const bool PETScWrappers::MPI::SparseMatrix::Traits::zero_addition_can_be_elided = false
 
MPI_Comm PETScWrappers::MPI::SparseMatrix::communicator
 
double PreconditionBlock< MatrixType, inverse_type >::AdditionalData::relaxation
 
size_type PreconditionBlock< MatrixType, inverse_type >::AdditionalData::block_size
 
bool PreconditionBlock< MatrixType, inverse_type >::AdditionalData::invert_diagonal
 
bool PreconditionBlock< MatrixType, inverse_type >::AdditionalData::same_diagonal
 
PreconditionBlockBase< inverse_type >::Inversion PreconditionBlock< MatrixType, inverse_type >::AdditionalData::inversion
 
double PreconditionBlock< MatrixType, inverse_type >::AdditionalData::threshold
 
size_type PreconditionBlock< MatrixType, inverse_type >::blocksize
 
SmartPointer< const MatrixType, PreconditionBlock< MatrixType, inverse_type > > PreconditionBlock< MatrixType, inverse_type >::A
 
double PreconditionBlock< MatrixType, inverse_type >::relaxation
 
std::vector< size_typePreconditionBlock< MatrixType, inverse_type >::permutation
 
std::vector< size_typePreconditionBlock< MatrixType, inverse_type >::inverse_permutation
 
const PreconditionBlockJacobi< MatrixType, inverse_type > * PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::matrix
 
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::bs
 
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::a_block
 
FullMatrix< inverse_type >::const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::b_iterator
 
FullMatrix< inverse_type >::const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::b_end
 
Accessor PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::accessor
 
std::string PreconditionSelector< MatrixType, VectorType >::preconditioning
 
SmartPointer< const MatrixType, PreconditionSelector< MatrixType, VectorType > > PreconditionSelector< MatrixType, VectorType >::A
 
const VectorType::value_type PreconditionSelector< MatrixType, VectorType >::omega
 
double SolverMinRes< VectorType >::res2
 
double SparseLUDecomposition< number >::AdditionalData::strengthen_diagonal
 
unsigned int SparseLUDecomposition< number >::AdditionalData::extra_off_diagonals
 
bool SparseLUDecomposition< number >::AdditionalData::use_previous_sparsity
 
const SparsityPatternSparseLUDecomposition< number >::AdditionalData::use_this_sparsity
 
double SparseLUDecomposition< number >::strengthen_diagonal
 
std::vector< const size_type * > SparseLUDecomposition< number >::prebuilt_lower_bound
 
SparsityPatternSparseLUDecomposition< number >::own_sparsity
 
static const bool SparseMatrix< number >::Traits::zero_addition_can_be_elided = true
 
size_type SparseMatrixEZ< number >::Entry::column
 
number SparseMatrixEZ< number >::Entry::value
 
static const size_type SparseMatrixEZ< number >::Entry::invalid = numbers::invalid_size_type
 
size_type SparseMatrixEZ< number >::RowInfo::start
 
unsigned short SparseMatrixEZ< number >::RowInfo::length
 
unsigned short SparseMatrixEZ< number >::RowInfo::diagonal
 
static const unsigned short SparseMatrixEZ< number >::RowInfo::invalid_diagonal
 
const SparseMatrixEZ< number > * SparseMatrixEZ< number >::const_iterator::Accessor::matrix
 
size_type SparseMatrixEZ< number >::const_iterator::Accessor::a_row
 
unsigned short SparseMatrixEZ< number >::const_iterator::Accessor::a_index
 
Accessor SparseMatrixEZ< number >::const_iterator::accessor
 
std::vector< number > SparseMIC< number >::diag
 
std::vector< number > SparseMIC< number >::inv_diag
 
std::vector< number > SparseMIC< number >::inner_sums
 
std::vector< entry_type > * GrowingVectorMemory< VectorType >::Pool::data
 
size_type GrowingVectorMemory< VectorType >::total_alloc
 
size_type GrowingVectorMemory< VectorType >::current_alloc
 
bool GrowingVectorMemory< VectorType >::log_statistics
 
static Threads::Mutex GrowingVectorMemory< VectorType >::mutex
 

Friends

class ParameterHandler::MultipleParameterLoop
 
template<typename , bool >
class BlockMatrixBase< MatrixType >::BlockMatrixIterators::Accessor
 
template<typename >
class BlockMatrixBase< MatrixType >::MatrixIterator
 
template<typename number >
class BlockSparsityPatternBase< SparsityPatternType >::BlockSparseMatrix
 
template<typename , bool >
class internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::Iterator
 
template<typename N , bool C>
class BlockVectorBase< VectorType >::::internal::BlockVectorIterators::Iterator
 
template<typename >
class BlockVectorBase< VectorType >::BlockVectorBase
 
template<typename >
class ChunkSparsityPattern::ChunkSparseMatrix
 
class ChunkSparsityPattern::ChunkSparsityPatternIterators::Accessor
 
class PETScWrappers::MPI::SparseMatrix::BlockMatrixBase< SparseMatrix >
 
class PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::const_iterator
 
class PreconditionBlockJacobi< MatrixType, inverse_type >::Accessor
 
class PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator
 
class SparseMatrixEZ< number >::const_iterator::Accessor::const_iterator
 

Data storage and access

static ::ExceptionBaseGeneralDataStorage::ExcNameNotFound (std::string arg1)
 
static ::ExceptionBaseGeneralDataStorage::ExcNameHasBeenFound (std::string arg1)
 
static ::ExceptionBaseGeneralDataStorage::ExcTypeMismatch (std::string arg1, const char *arg2, const char *arg3)
 

Bitwise operators

std::ostream & Differentiation::SD::operator<< (std::ostream &stream, const Expression &expression)
 
std::istream & Differentiation::SD::operator>> (std::istream &stream, Expression &expression)
 

Comparison operators

Expression Differentiation::SD::operator== (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator!= (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator< (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator> (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator<= (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator>= (const Expression &lhs, const Expression &rhs)
 

Logical operators

Expression Differentiation::SD::operator! (const Expression &expression)
 
Expression Differentiation::SD::operator& (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator| (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator^ (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator&& (const Expression &lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator|| (const Expression &lhs, const Expression &rhs)
 

Mathematical operators

Expression Differentiation::SD::operator+ (Expression lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator- (Expression lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator* (Expression lhs, const Expression &rhs)
 
Expression Differentiation::SD::operator/ (Expression lhs, const Expression &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator+ (const NumberType &lhs, const Expression &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator+ (const Expression &lhs, const NumberType &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator- (const NumberType &lhs, const Expression &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator- (const Expression &lhs, const NumberType &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator* (const NumberType &lhs, const Expression &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator* (const Expression &lhs, const NumberType &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator/ (const NumberType &lhs, const Expression &rhs)
 
template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator/ (const Expression &lhs, const NumberType &rhs)
 

Constructors

 Differentiation::SD::Expression::Expression ()
 
 Differentiation::SD::Expression::Expression (const bool value)
 
template<typename NumberType , typename = typename std::enable_if< std::is_arithmetic<NumberType>::value>::type>
 Differentiation::SD::Expression::Expression (const NumberType &value)
 
template<typename NumberType , typename = typename std::enable_if< std::is_arithmetic<NumberType>::value>::type>
 Differentiation::SD::Expression::Expression (const std::complex< NumberType > &value)
 
 Differentiation::SD::Expression::Expression (const SymEngine::integer_class &value)
 
template<typename NumberType , typename = typename std::enable_if< std::is_integral<NumberType>::value>::type>
 Differentiation::SD::Expression::Expression (const NumberType &numerator, const NumberType &denominator)
 
 Differentiation::SD::Expression::Expression (const SymEngine::rational_class &value)
 
 Differentiation::SD::Expression::Expression (const Expression &condition, const Expression &expression_if_true, const Expression &expression_if_false)
 
 Differentiation::SD::Expression::Expression (const std::vector< std::pair< Expression, Expression >> &condition_expression, const Expression &expression_otherwise)
 
 Differentiation::SD::Expression::Expression (const std::vector< std::pair< Expression, Expression >> &condition_expression)
 
 Differentiation::SD::Expression::Expression (const char *symbol)
 
 Differentiation::SD::Expression::Expression (const std::string &symb_expr, const bool parse_as_expression=false)
 
 Differentiation::SD::Expression::Expression (const std::string &symbol_func, const types::symbol_vector &arguments)
 
 Differentiation::SD::Expression::Expression (const Expression &rhs)=default
 
 Differentiation::SD::Expression::Expression (const SymEngine::Expression &rhs)
 
 Differentiation::SD::Expression::Expression (const SymEngine::RCP< const SymEngine::Basic > &rhs)
 
 Differentiation::SD::Expression::Expression (Expression &&rhs)=default
 
 Differentiation::SD::Expression::Expression (SymEngine::RCP< const SymEngine::Basic > &&rhs)
 
virtual Differentiation::SD::Expression::~Expression ()=default
 
ExpressionDifferentiation::SD::Expression::parse (const std::string &expression)
 
std::ostream & Differentiation::SD::Expression::print (std::ostream &stream) const
 
void Differentiation::SD::Expression::save (std::ostream &stream) const
 
void Differentiation::SD::Expression::load (std::istream &stream)
 
template<class Archive >
void Differentiation::SD::Expression::save (Archive &archive, const unsigned int version) const
 
template<class Archive >
void Differentiation::SD::Expression::load (Archive &archive, const unsigned int version)
 
template<class Archive >
void Differentiation::SD::Expression::serialize (Archive &archive, const unsigned int version)
 

Values

const SymEngine::Expression & Differentiation::SD::Expression::get_expression () const
 
const SymEngine::Basic & Differentiation::SD::Expression::get_value () const
 
const SymEngine::RCP< const SymEngine::Basic > & Differentiation::SD::Expression::get_RCP () const
 

Math and relational operators with (potentially) symbolic types

ExpressionDifferentiation::SD::Expression::operator= (const Expression &rhs)
 
ExpressionDifferentiation::SD::Expression::operator= (Expression &&rhs) noexcept
 
ExpressionDifferentiation::SD::Expression::operator+= (const Expression &rhs)
 
ExpressionDifferentiation::SD::Expression::operator-= (const Expression &rhs)
 
ExpressionDifferentiation::SD::Expression::operator*= (const Expression &rhs)
 
ExpressionDifferentiation::SD::Expression::operator/= (const Expression &rhs)
 

Math and relational operators with numeric types

template<typename NumberType >
ExpressionDifferentiation::SD::Expression::operator= (const NumberType &rhs)
 
Expression Differentiation::SD::Expression::operator- () const
 
template<typename NumberType >
ExpressionDifferentiation::SD::Expression::operator+= (const NumberType &rhs)
 
template<typename NumberType >
ExpressionDifferentiation::SD::Expression::operator-= (const NumberType &rhs)
 
template<typename NumberType >
ExpressionDifferentiation::SD::Expression::operator*= (const NumberType &rhs)
 
template<typename NumberType >
ExpressionDifferentiation::SD::Expression::operator/= (const NumberType &rhs)
 

Differentiation

Expression Differentiation::SD::Expression::differentiate (const Expression &symbol) const
 
Expression Differentiation::SD::Expression::differentiate (const SymEngine::RCP< const SymEngine::Symbol > &symbol) const
 
Expression Differentiation::SD::Expression::differentiate (const SymEngine::RCP< const SymEngine::Basic > &symbol) const
 

Dictionary-based substitution

Expression Differentiation::SD::Expression::substitute (const types::substitution_map &substitution_values) const
 
Expression Differentiation::SD::Expression::substitute (const SymEngine::map_basic_basic &substitution_values) const
 
Expression Differentiation::SD::Expression::substitute (const Expression &symbol, const Expression &value) const
 
template<typename NumberType >
Expression Differentiation::SD::Expression::substitute (const Expression &symbol, const NumberType &value) const
 
template<typename ReturnType >
ReturnType Differentiation::SD::Expression::substitute_and_evaluate (const types::substitution_map &substitution_values) const
 
template<typename ReturnType >
ReturnType Differentiation::SD::Expression::substitute_and_evaluate (const SymEngine::map_basic_basic &substitution_values) const
 

Conversion operators

SymEngine::Expression Differentiation::SD::Expression::expression
 
template<typename ResultType >
 Differentiation::SD::Expression::operator ResultType () const
 
 Differentiation::SD::Expression::operator const SymEngine::Expression & () const
 
 Differentiation::SD::Expression::operator const SymEngine::RCP< const SymEngine::Basic > & () const
 
SymEngine::Expression & Differentiation::SD::Expression::get_expression ()
 

Independent variables

void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols (const types::substitution_map &substitution_map)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols (const SymEngine::map_basic_basic &substitution_map)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols (const types::symbol_vector &symbols)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols (const SymEngine::vec_basic &symbols)
 
types::symbol_vector Differentiation::SD::BatchOptimizer< ReturnType >::get_independent_symbols () const
 
std::size_t Differentiation::SD::BatchOptimizer< ReturnType >::n_independent_variables () const
 

Dependent variables

void Differentiation::SD::BatchOptimizer< ReturnType >::register_function (const Expression &function)
 
template<int rank, int dim>
void Differentiation::SD::BatchOptimizer< ReturnType >::register_function (const Tensor< rank, dim, Expression > &function_tensor)
 
template<int rank, int dim>
void Differentiation::SD::BatchOptimizer< ReturnType >::register_function (const SymmetricTensor< rank, dim, Expression > &function_tensor)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions (const types::symbol_vector &functions)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions (const SymEngine::vec_basic &functions)
 
template<typename T >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions (const std::vector< T > &functions)
 
template<typename T , typename... Args>
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions (const T &functions, const Args &... other_functions)
 
const types::symbol_vectorDifferentiation::SD::BatchOptimizer< ReturnType >::get_dependent_functions () const
 
std::size_t Differentiation::SD::BatchOptimizer< ReturnType >::n_dependent_variables () const
 

Optimization

void Differentiation::SD::BatchOptimizer< ReturnType >::set_optimization_method (const enum OptimizerType &optimization_method, const enum OptimizationFlags &optimization_flags=OptimizationFlags::optimize_all)
 
enum OptimizerType Differentiation::SD::BatchOptimizer< ReturnType >::optimization_method () const
 
enum OptimizationFlags Differentiation::SD::BatchOptimizer< ReturnType >::optimization_flags () const
 
bool Differentiation::SD::BatchOptimizer< ReturnType >::use_symbolic_CSE () const
 
void Differentiation::SD::BatchOptimizer< ReturnType >::optimize ()
 
bool Differentiation::SD::BatchOptimizer< ReturnType >::optimized () const
 

Symbol substitution

void Differentiation::SD::BatchOptimizer< ReturnType >::substitute (const types::substitution_map &substitution_map) const
 
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute (const SymEngine::map_basic_basic &substitution_map) const
 
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute (const types::symbol_vector &symbols, const std::vector< ReturnType > &values) const
 
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute (const SymEngine::vec_basic &symbols, const std::vector< ReturnType > &values) const
 
bool Differentiation::SD::BatchOptimizer< ReturnType >::values_substituted () const
 

Evaluation / data extraction

using Differentiation::SD::BatchOptimizer< ReturnType >::map_dependent_expression_to_vector_entry_t = std::map< SD::Expression, std::size_t, SD::types::internal::ExpressionKeyLess >
 
enum OptimizerType Differentiation::SD::BatchOptimizer< ReturnType >::method
 
enum OptimizationFlags Differentiation::SD::BatchOptimizer< ReturnType >::flags
 
types::substitution_map Differentiation::SD::BatchOptimizer< ReturnType >::independent_variables_symbols
 
types::symbol_vector Differentiation::SD::BatchOptimizer< ReturnType >::dependent_variables_functions
 
std::vector< ReturnType > Differentiation::SD::BatchOptimizer< ReturnType >::dependent_variables_output
 
map_dependent_expression_to_vector_entry_t Differentiation::SD::BatchOptimizer< ReturnType >::map_dep_expr_vec_entry
 
std::unique_ptr< SymEngine::Visitor > Differentiation::SD::BatchOptimizer< ReturnType >::optimizer
 
bool Differentiation::SD::BatchOptimizer< ReturnType >::ready_for_value_extraction
 
bool Differentiation::SD::BatchOptimizer< ReturnType >::has_been_serialized
 
const std::vector< ReturnType > & Differentiation::SD::BatchOptimizer< ReturnType >::evaluate () const
 
ReturnType Differentiation::SD::BatchOptimizer< ReturnType >::evaluate (const Expression &func) const
 
std::vector< ReturnType > Differentiation::SD::BatchOptimizer< ReturnType >::evaluate (const std::vector< Expression > &funcs) const
 
template<int rank, int dim>
Tensor< rank, dim, ReturnType > Differentiation::SD::BatchOptimizer< ReturnType >::evaluate (const Tensor< rank, dim, Expression > &funcs) const
 
template<int rank, int dim>
SymmetricTensor< rank, dim, ReturnType > Differentiation::SD::BatchOptimizer< ReturnType >::evaluate (const SymmetricTensor< rank, dim, Expression > &funcs) const
 
bool Differentiation::SD::BatchOptimizer< ReturnType >::is_valid_nonunique_dependent_variable (const SD::Expression &function) const
 
bool Differentiation::SD::BatchOptimizer< ReturnType >::is_valid_nonunique_dependent_variable (const SymEngine::RCP< const SymEngine::Basic > &function) const
 
void Differentiation::SD::BatchOptimizer< ReturnType >::register_scalar_function (const SD::Expression &function)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::register_vector_functions (const types::symbol_vector &functions)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::create_optimizer (std::unique_ptr< SymEngine::Visitor > &optimizer)
 
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute (const std::vector< ReturnType > &substitution_values) const
 

Cell iterator functions returning ranges of iterators

static ::ExceptionBaseDoFHandler< dim, spacedim >::ExcGridsDoNotMatch ()
 
static ::ExceptionBaseDoFHandler< dim, spacedim >::ExcInvalidBoundaryIndicator ()
 
static ::ExceptionBaseDoFHandler< dim, spacedim >::ExcNewNumbersNotConsecutive (types::global_dof_index arg1)
 
static ::ExceptionBaseDoFHandler< dim, spacedim >::ExcInvalidLevel (int arg1)
 
static ::ExceptionBaseDoFHandler< dim, spacedim >::ExcFacesHaveNoLevel ()
 
static ::ExceptionBaseDoFHandler< dim, spacedim >::ExcEmptyLevel (int arg1)
 

Exceptions

static ::ExceptionBaseDoFTools::ExcFiniteElementsDontMatch ()
 
static ::ExceptionBaseDoFTools::ExcGridNotCoarser ()
 
static ::ExceptionBaseDoFTools::ExcGridsDontMatch ()
 
static ::ExceptionBaseDoFTools::ExcNoFESelected ()
 
static ::ExceptionBaseDoFTools::ExcInvalidBoundaryIndicator ()
 

Support points and interpolation

static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcShapeFunctionNotPrimitive (int arg1)
 
static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcFENotPrimitive ()
 
static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcUnitShapeValuesDoNotExist ()
 
static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcFEHasNoSupportPoints ()
 
static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcEmbeddingVoid ()
 
static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcProjectionVoid ()
 
static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcWrongInterfaceMatrixSize (int arg1, int arg2)
 
static ::ExceptionBaseFiniteElement< dim, spacedim >::ExcInterpolationNotImplemented ()
 

Functions to support hp

static ::ExceptionBaseFE_Q_Base< PolynomialType, dim, spacedim >::ExcFEQCannotHaveDegree0 ()
 

Functions which should be in DoFTools

static ::ExceptionBaseFETools::ExcInvalidFEName (std::string arg1)
 
static ::ExceptionBaseFETools::ExcInvalidFEDimension (char arg1, int arg2)
 
static ::ExceptionBaseFETools::ExcInvalidFE ()
 
static ::ExceptionBaseFETools::ExcFENotPrimitive ()
 
static ::ExceptionBaseFETools::ExcTriangulationMismatch ()
 
static ::ExceptionBaseFETools::ExcHangingNodesNotAllowed ()
 
static ::ExceptionBaseFETools::ExcGridNotRefinedAtLeastOnce ()
 
static ::ExceptionBaseFETools::ExcMatrixDimensionMismatch (int arg1, int arg2, int arg3, int arg4)
 
static ::ExceptionBaseFETools::ExcLeastSquaresError (double arg1)
 
static ::ExceptionBaseFETools::ExcNotGreaterThan (int arg1, int arg2)
 

Access to the raw data

static ::ExceptionBaseFEValuesBase< dim, spacedim >::ExcAccessToUninitializedField (std::string arg1)
 
static ::ExceptionBaseFEValuesBase< dim, spacedim >::ExcFEDontMatch ()
 
static ::ExceptionBaseFEValuesBase< dim, spacedim >::ExcShapeFunctionNotPrimitive (int arg1)
 
static ::ExceptionBaseFEValuesBase< dim, spacedim >::ExcFENotPrimitive ()
 

Exceptions

static ::ExceptionBaseMapping< dim, spacedim >::ExcInvalidData ()
 
static ::ExceptionBaseMapping< dim, spacedim >::ExcTransformationFailed ()
 
static ::ExceptionBaseMapping< dim, spacedim >::ExcDistortedMappedCell (Point< spacedim > arg1, double arg2, int arg3)
 

Exceptions

static ::ExceptionBaseGridGenerator::ExcInvalidRadii ()
 
static ::ExceptionBaseGridGenerator::ExcInvalidRepetitions (int arg1)
 
static ::ExceptionBaseGridGenerator::ExcInvalidRepetitionsDimension (int arg1)
 
static ::ExceptionBaseGridGenerator::ExcInvalidInputOrientation ()
 

Exceptions

static ::ExceptionBaseGridTools::ExcInvalidNumberOfPartitions (int arg1)
 
static ::ExceptionBaseGridTools::ExcNonExistentSubdomain (int arg1)
 
static ::ExceptionBaseGridTools::ExcTriangulationHasBeenRefined ()
 
static ::ExceptionBaseGridTools::ExcScalingFactorNotPositive (double arg1)
 
template<int N>
static ::ExceptionBaseGridTools::ExcPointNotFoundInCoarseGrid (Point< N > arg1)
 
template<int N>
static ::ExceptionBaseGridTools::ExcPointNotFound (Point< N > arg1)
 
static ::ExceptionBaseGridTools::ExcVertexNotUsed (unsigned int arg1)
 

Exceptions

static ::ExceptionBaseTriangulation< dim, spacedim >::ExcInvalidLevel (int arg1, int arg2)
 
static ::ExceptionBaseTriangulation< dim, spacedim >::ExcTriangulationNotEmpty (int arg1, int arg2)
 
static ::ExceptionBaseTriangulation< dim, spacedim >::ExcGridReadError ()
 
static ::ExceptionBaseTriangulation< dim, spacedim >::ExcFacesHaveNoLevel ()
 
static ::ExceptionBaseTriangulation< dim, spacedim >::ExcEmptyLevel (int arg1)
 
static ::ExceptionBaseTriangulation< dim, spacedim >::ExcNonOrientableTriangulation ()
 
static ::ExceptionBaseTriangulation< dim, spacedim >::ExcBoundaryIdNotFound (types::boundary_id arg1)
 
static ::ExceptionBaseTriangulation< dim, spacedim >::ExcInconsistentCoarseningFlags ()
 

Exceptions

static ::ExceptionBaseTriaRawIterator< Accessor >::ExcDereferenceInvalidCell (Accessor arg1)
 
static ::ExceptionBaseTriaRawIterator< Accessor >::ExcDereferenceInvalidObject (Accessor arg1)
 
static ::ExceptionBaseTriaRawIterator< Accessor >::ExcAdvanceInvalidObject ()
 
static ::ExceptionBaseTriaRawIterator< Accessor >::ExcInvalidComparison ()
 

Advancement of iterators

static ::ExceptionBaseTriaIterator< Accessor >::ExcAssignmentOfUnusedObject ()
 

Advancement of iterators

static ::ExceptionBaseTriaActiveIterator< Accessor >::ExcAssignmentOfInactiveObject ()
 

Cell iterator functions returning ranges of iterators

static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcNoFESelected ()
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcGridsDoNotMatch ()
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcInvalidBoundaryIndicator ()
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcMatrixHasWrongSize (int arg1)
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcFunctionNotUseful ()
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcNewNumbersNotConsecutive (types::global_dof_index arg1)
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcInvalidFEIndex (int arg1, int arg2)
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcInvalidLevel (int arg1)
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcFacesHaveNoLevel ()
 
static ::ExceptionBasehp::DoFHandler< dim, spacedim >::ExcEmptyLevel (int arg1)
 

Exceptions

static ::ExceptionBasehp::FECollection< dim, spacedim >::ExcNoFiniteElements ()
 
static ::ExceptionBasehp::FECollection< dim, spacedim >::ExcNoDominatedFiniteElementAmongstChildren ()
 

Input/Output

SmartPointer< const BlockSparsityPattern, BlockSparseMatrix< number > > BlockSparseMatrix< number >::sparsity_pattern
 
static ::ExceptionBaseBlockSparseMatrix< number >::ExcBlockDimensionMismatch ()
 
void BlockSparseMatrix< number >::print_formatted (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const unsigned int width=0, const char *zero_string=" ", const double denominator=1.) const
 

Input/Output

SmartPointer< const ChunkSparsityPattern, ChunkSparseMatrix< number > > ChunkSparseMatrix< number >::cols
 
std::unique_ptr< number[]> ChunkSparseMatrix< number >::val
 
size_type ChunkSparseMatrix< number >::max_len
 
template<typename somenumber >
class ChunkSparseMatrix< number >::ChunkSparseMatrix
 
template<typename , bool >
class ChunkSparseMatrix< number >::ChunkSparseMatrixIterators::Iterator
 
template<typename , bool >
class ChunkSparseMatrix< number >::ChunkSparseMatrixIterators::Accessor
 
static ::ExceptionBaseChunkSparseMatrix< number >::ExcInvalidIndex (int arg1, int arg2)
 
static ::ExceptionBaseChunkSparseMatrix< number >::ExcDifferentChunkSparsityPatterns ()
 
static ::ExceptionBaseChunkSparseMatrix< number >::ExcIteratorRange (int arg1, int arg2)
 
static ::ExceptionBaseChunkSparseMatrix< number >::ExcSourceEqualsDestination ()
 
size_type ChunkSparseMatrix< number >::compute_location (const size_type i, const size_type j) const
 
void ChunkSparseMatrix< number >::print (std::ostream &out) const
 
void ChunkSparseMatrix< number >::print_formatted (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const unsigned int width=0, const char *zero_string=" ", const double denominator=1.) const
 
void ChunkSparseMatrix< number >::print_pattern (std::ostream &out, const double threshold=0.) const
 
void ChunkSparseMatrix< number >::block_write (std::ostream &out) const
 
void ChunkSparseMatrix< number >::block_read (std::istream &in)
 

Multiplications

static ::ExceptionBaseFullMatrix< number >::ExcEmptyMatrix ()
 
static ::ExceptionBaseFullMatrix< number >::ExcNotRegular (number arg1)
 
static ::ExceptionBaseFullMatrix< number >::ExcInvalidDestination (size_type arg1, size_type arg2, size_type arg3)
 
static ::ExceptionBaseFullMatrix< number >::ExcSourceEqualsDestination ()
 
static ::ExceptionBaseFullMatrix< number >::ExcMatrixNotPositiveDefinite ()
 

2: Implementation of VectorSpaceVector

static ::ExceptionBaseLinearAlgebra::distributed::BlockVector< Number >::ExcVectorTypeNotCompatible ()
 
static ::ExceptionBaseLinearAlgebra::distributed::BlockVector< Number >::ExcIteratorRangeDoesNotMatchVectorSize ()
 

6: Mixed stuff

static ::ExceptionBaseLinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcVectorTypeNotCompatible ()
 
static ::ExceptionBaseLinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcNotAllowedForCuda ()
 
static ::ExceptionBaseLinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcNonMatchingElements (Number arg1, Number arg2, unsigned int arg3)
 
static ::ExceptionBaseLinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
 

Input/Output

SmartPointer< const SparsityPattern, SparseMatrix< number > > SparseMatrix< number >::cols
 
std::unique_ptr< number[]> SparseMatrix< number >::val
 
std::size_t SparseMatrix< number >::max_len
 
template<typename somenumber >
class SparseMatrix< number >::SparseMatrix
 
template<typename somenumber >
class SparseMatrix< number >::SparseLUDecomposition
 
template<typename >
class SparseMatrix< number >::SparseILU
 
template<typename >
class SparseMatrix< number >::BlockMatrixBase
 
template<typename , bool >
class SparseMatrix< number >::SparseMatrixIterators::Iterator
 
template<typename , bool >
class SparseMatrix< number >::SparseMatrixIterators::Accessor
 
template<typename Number >
void SparseMatrix< number >::Utilities::MPI::sum (const SparseMatrix< Number > &, const MPI_Comm &, SparseMatrix< Number > &)
 
static ::ExceptionBaseSparseMatrix< number >::ExcInvalidIndex (int arg1, int arg2)
 
static ::ExceptionBaseSparseMatrix< number >::ExcDifferentSparsityPatterns ()
 
static ::ExceptionBaseSparseMatrix< number >::ExcIteratorRange (int arg1, int arg2)
 
static ::ExceptionBaseSparseMatrix< number >::ExcSourceEqualsDestination ()
 
void SparseMatrix< number >::prepare_add ()
 
void SparseMatrix< number >::prepare_set ()
 
template<class StreamType >
void SparseMatrix< number >::print (StreamType &out, const bool across=false, const bool diagonal_first=true) const
 
void SparseMatrix< number >::print_formatted (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const unsigned int width=0, const char *zero_string=" ", const double denominator=1.) const
 
void SparseMatrix< number >::print_pattern (std::ostream &out, const double threshold=0.) const
 
void SparseMatrix< number >::print_as_numpy_arrays (std::ostream &out, const unsigned int precision=9) const
 
void SparseMatrix< number >::block_write (std::ostream &out) const
 
void SparseMatrix< number >::block_read (std::istream &in)
 

Input/Output

size_type SparseMatrixEZ< number >::n_columns
 
std::vector< RowInfoSparseMatrixEZ< number >::row_info
 
std::vector< EntrySparseMatrixEZ< number >::data
 
unsigned int SparseMatrixEZ< number >::increment
 
unsigned int SparseMatrixEZ< number >::saved_default_row_length
 
static ::ExceptionBaseSparseMatrixEZ< number >::ExcNoDiagonal ()
 
static ::ExceptionBaseSparseMatrixEZ< number >::ExcInvalidEntry (int arg1, int arg2)
 
static ::ExceptionBaseSparseMatrixEZ< number >::ExcEntryAllocationFailure (int arg1, int arg2)
 
const EntrySparseMatrixEZ< number >::locate (const size_type row, const size_type col) const
 
EntrySparseMatrixEZ< number >::locate (const size_type row, const size_type col)
 
EntrySparseMatrixEZ< number >::allocate (const size_type row, const size_type col)
 
template<typename somenumber >
void SparseMatrixEZ< number >::threaded_vmult (Vector< somenumber > &dst, const Vector< somenumber > &src, const size_type begin_row, const size_type end_row) const
 
template<typename somenumber >
void SparseMatrixEZ< number >::threaded_matrix_norm_square (const Vector< somenumber > &v, const size_type begin_row, const size_type end_row, somenumber *partial_sum) const
 
template<typename somenumber >
void SparseMatrixEZ< number >::threaded_matrix_scalar_product (const Vector< somenumber > &u, const Vector< somenumber > &v, const size_type begin_row, const size_type end_row, somenumber *partial_sum) const
 
void SparseMatrixEZ< number >::print (std::ostream &out) const
 
void SparseMatrixEZ< number >::print_formatted (std::ostream &out, const unsigned int precision=3, const bool scientific=true, const unsigned int width=0, const char *zero_string=" ", const double denominator=1.) const
 
void SparseMatrixEZ< number >::block_write (std::ostream &out) const
 
void SparseMatrixEZ< number >::block_read (std::istream &in)
 

Input/Output

size_type SparsityPatternBase::max_dim
 
size_type SparsityPatternBase::rows
 
size_type SparsityPatternBase::cols
 
std::size_t SparsityPatternBase::max_vec_len
 
unsigned int SparsityPatternBase::max_row_length
 
std::unique_ptr< std::size_t[]> SparsityPatternBase::rowstart
 
std::unique_ptr< size_type[]> SparsityPatternBase::colnums
 
bool SparsityPatternBase::compressed
 
template<typename number >
class SparsityPatternBase::SparseMatrix
 
template<typename number >
class SparsityPatternBase::SparseLUDecomposition
 
template<typename number >
class SparsityPatternBase::SparseILU
 
template<typename number >
class SparsityPatternBase::ChunkSparseMatrix
 
class SparsityPatternBase::ChunkSparsityPattern
 
class SparsityPatternBase::DynamicSparsityPattern
 
class SparsityPatternBase::SparsityPatternIterators::Iterator
 
class SparsityPatternBase::SparsityPatternIterators::Accessor
 
class SparsityPatternBase::ChunkSparsityPatternIterators::Accessor
 
static ::ExceptionBaseSparsityPatternBase::ExcNotCompressed ()
 
static ::ExceptionBaseSparsityPatternBase::ExcNotEnoughSpace (int arg1, int arg2)
 
static ::ExceptionBaseSparsityPatternBase::ExcMatrixIsCompressed ()
 
void SparsityPatternBase::print (std::ostream &out) const
 
void SparsityPatternBase::print_gnuplot (std::ostream &out) const
 
void SparsityPatternBase::print_svg (std::ostream &out) const
 
template<class Archive >
void SparsityPatternBase::save (Archive &ar, const unsigned int version) const
 
template<class Archive >
void SparsityPatternBase::load (Archive &ar, const unsigned int version)
 
template<class Archive >
void SparsityPatternBase::serialize (Archive &archive, const unsigned int version)
 

Construction and setup

Constructors, destructor, functions initializing, copying and filling an object.

 SparsityPattern::SparsityPattern ()
 
 SparsityPattern::SparsityPattern (const SparsityPattern &)
 
 SparsityPattern::SparsityPattern (const size_type m, const size_type n, const unsigned int max_per_row)
 
 SparsityPattern::SparsityPattern (const size_type m, const size_type n, const std::vector< unsigned int > &row_lengths)
 
 SparsityPattern::SparsityPattern (const size_type m, const unsigned int max_per_row)
 
 SparsityPattern::SparsityPattern (const size_type m, const std::vector< unsigned int > &row_lengths)
 
 SparsityPattern::SparsityPattern (const SparsityPattern &original, const unsigned int max_per_row, const size_type extra_off_diagonals)
 
 SparsityPattern::~SparsityPattern () override=default
 
SparsityPatternSparsityPattern::operator= (const SparsityPattern &)
 
virtual void SparsityPattern::reinit (const size_type m, const size_type n, const ArrayView< const unsigned int > &row_lengths) override
 
void SparsityPattern::compress ()
 
template<typename ForwardIterator >
void SparsityPattern::copy_from (const size_type n_rows, const size_type n_cols, const ForwardIterator begin, const ForwardIterator end)
 
void SparsityPattern::copy_from (const DynamicSparsityPattern &dsp)
 
void SparsityPattern::copy_from (const SparsityPattern &sp)
 
template<typename number >
void SparsityPattern::copy_from (const FullMatrix< number > &matrix)
 
template<typename ForwardIterator >
void SparsityPattern::add_entries (const size_type row, ForwardIterator begin, ForwardIterator end, const bool indices_are_sorted=false)
 

Querying information

bool SparsityPattern::operator== (const SparsityPattern &) const
 
bool SparsityPattern::stores_only_added_elements () const
 
std::size_t SparsityPattern::memory_consumption () const
 

Accessing entries

size_type SparsityPattern::operator() (const size_type i, const size_type j) const
 

Input/Output

bool SparsityPattern::store_diagonal_first_in_row
 
template<typename number >
class SparsityPattern::SparseMatrix
 
template<typename number >
class SparsityPattern::SparseLUDecomposition
 
template<typename number >
class SparsityPattern::SparseILU
 
template<typename number >
class SparsityPattern::ChunkSparseMatrix
 
class SparsityPattern::ChunkSparsityPattern
 
class SparsityPattern::DynamicSparsityPattern
 
class SparsityPattern::SparsityPatternIterators::Iterator
 
class SparsityPattern::SparsityPatternIterators::Accessor
 
class SparsityPattern::ChunkSparsityPatternIterators::Accessor
 
void SparsityPattern::block_write (std::ostream &out) const
 
void SparsityPattern::block_read (std::istream &in)
 
template<class Archive >
void SparsityPattern::save (Archive &ar, const unsigned int version) const
 
template<class Archive >
void SparsityPattern::load (Archive &ar, const unsigned int version)
 
template<class Archive >
void SparsityPattern::serialize (Archive &archive, const unsigned int version)
 
static ::ExceptionBaseSparsityPattern::ExcIteratorRange (int arg1, int arg2)
 
static ::ExceptionBaseSparsityPattern::ExcInvalidNumberOfPartitions (int arg1)
 

Partitioners

static ::ExceptionBaseTrilinosWrappers::PreconditionBase::ExcNonMatchingMaps (std::string arg1)
 

Input/Output

static ::ExceptionBaseTrilinosWrappers::SparseMatrix::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrix::ExcInvalidIndex (size_type arg1, size_type arg2)
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrix::ExcSourceEqualsDestination ()
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrix::ExcMatrixNotCompressed ()
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrix::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
 
static ::ExceptionBaseTrilinosWrappers::SparseMatrix::ExcAccessToNonPresentElement (size_type arg1, size_type arg2)
 

Input/Output

std::unique_ptr< Epetra_Map > TrilinosWrappers::SparsityPattern::column_space_map
 
std::unique_ptr< Epetra_FECrsGraph > TrilinosWrappers::SparsityPattern::graph
 
std::unique_ptr< Epetra_CrsGraph > TrilinosWrappers::SparsityPattern::nonlocal_graph
 
class TrilinosWrappers::SparsityPattern::TrilinosWrappers::SparseMatrix
 
class TrilinosWrappers::SparsityPattern::SparsityPatternIterators::Accessor
 
class TrilinosWrappers::SparsityPattern::SparsityPatternIterators::Iterator
 
static ::ExceptionBaseTrilinosWrappers::SparsityPattern::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseTrilinosWrappers::SparsityPattern::ExcInvalidIndex (size_type arg1, size_type arg2)
 
static ::ExceptionBaseTrilinosWrappers::SparsityPattern::ExcSourceEqualsDestination ()
 
static ::ExceptionBaseTrilinosWrappers::SparsityPattern::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
 
static ::ExceptionBaseTrilinosWrappers::SparsityPattern::ExcAccessToNonPresentElement (size_type arg1, size_type arg2)
 
void TrilinosWrappers::SparsityPattern::write_ascii ()
 
void TrilinosWrappers::SparsityPattern::print (std::ostream &out, const bool write_extended_trilinos_info=false) const
 
void TrilinosWrappers::SparsityPattern::print_gnuplot (std::ostream &out) const
 

4: Mixed stuff

static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcDifferentParallelPartitioning ()
 
static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcTrilinosError (int arg1)
 
static ::ExceptionBaseTrilinosWrappers::MPI::Vector::ExcAccessToNonLocalElement (size_type arg1, size_type arg2, size_type arg3, size_type arg4)
 

Detailed Description

This module contains classes that are used in the exception mechanism of deal.II.

Brief overview

Exceptions are used in two different ways:

Detailed description

The error handling mechanism in deal.II is generally used in two ways. The first uses error checking in debug mode only and is useful for programs which are not fully tested. When the program shows no errors anymore, one may switch off error handling and get better performance by this, since checks for errors are done quite frequently in the library (a typical speed up is a factor of four!). This mode of exception generation is most useful for internal consistency checks such as range checking or checking of the validity of function arguments. Errors of this kind usually are programming errors and the program should abort with as detailed a message as possible, including location and reason for the generation of the exception.

The second mode is for error checks which should always be on, such as for I/O errors, failing memory requests and the like. It does not make much sense to turn this mode off, since this kind of errors may happen in tested and untested programs likewise. Exceptions of this kind do not terminate the program, rather they throw exceptions in the C++ manner, allowing the program to catch them and eventually do something about it. As it may be useful to have some information printed out if an exception could not be handled properly, additional information is passed along as for the first mode. The latter makes it necessary to provide a family of macros which enter this additional information into the exception class; this could in principle be done by the programmer himself each time by hand, but since the information can be obtained automatically, a macro is provided for this.

Both modes use exception classes, which need to have special features in additional to the C++ standard's std::exception class. Such a class is declared by the following lines of code:

DeclException2 (ExcDomain, int, int,
<< "Index= " << arg1 << "Upper Bound= " << arg2);

This declares an exception class named ExcDomain, which has two variables as additional information (named arg1 and arg2 by default) and which outputs the given sequence (which is appended to an std::ostream variable's name, thus the weird syntax). There are other DeclExceptionN macros for exception classes with more or no parameters. By convention, the name of all exception classes starts with Exc... and most of them are declared locally to the class it is to be used in (a few very frequently found ones are also declared in the StandardExceptions namespace and are available everywhere). Declaring exceptions globally is possible but pollutes the global namespace, is less readable and most of the time unnecessary.

Since exception classes are declared the same way for both modes of error checking, it is possible to use an exception declared through the DeclExceptionN(...) macro family for both static as well as dynamic checks.

Use of the debug mode exceptions (static checks)

To use the exception mechanism for debug mode error checking, write lines like the following in your source code:

Assert (n<dim, ExcDomain(n,dim));

which by macro expansion does essentially the following (though the actual code is slightly more complicated):

#ifdef DEBUG
if (!(cond))
{
// issue error of class ExcDomain(n,dim)
}
#else
// do nothing
#endif

That is, it issues an error only if the preprocessor variable DEBUG is set and if the given condition (in this case n < dim is violated).

If the exception was declared using the DeclException0 (...) macro, i.e., without any additional parameters, its name has nonetheless to be given with parentheses: Assert (i>m, ExcSomewhat());

How it works internally

If the DEBUG preprocessor directive is set, the call Assert (cond, exc); is basically converted by the preprocessor into the following sequence:

if (!(cond))
(__FILE__,
__LINE__,
__PRETTY_FUNCTION__,
#cond,
#exc,
exc);

(Note that function names and exact calling sequences may change over time, but the general principle remains the same.) I.e., if the given condition is violated, then the file and line in which the exception occurred as well as the condition itself and the call sequence of the exception object is passed to the deal_II_exceptions::internals::issue_error_noreturn() function. Additionally an object of the form given by exc is created (this is normally an unnamed object like in ExcDomain (n, dim) of class ExcDomain) and transferred to this function.

__PRETTY_FUNCTION__ is a macro defined by some compilers and gives the name of the function. If another compiler is used, we try to set this function to something reasonable, if the compiler provides us with that, and "(not available)" otherwise.

In issue_error_noreturn, the given data is transferred into the exc object by calling the set_fields() function; Afterwards the program is either aborted (and information about the exception is printed to deallog) or the exception is thrown. The Assert macro does the first path (print and abort); AssertThrow does the second (throw). This behavior is consistent with the descriptions of static and dynamic assertions earlier in this document. If it can be obtained from the operating system, the output may also contain a stacktrace to show where the error happened. Several of the Tutorial programs programs show a typical output.

If the preprocessor variable DEBUG is not set then the Assert macro is expanded to {}.

Sometimes, there is no useful condition for an exception other than that the program flow should not have reached a certain point, e.g. a default section of a switch statement. In this case, raise the exception by the following construct:

See the step-7 and several other of the tutorial programs for a use of this construct.

As mentioned above, the program is terminated once a call to Assert fails. However, there is one case where we do not want to do this, namely when a C++ exception is active. The usual case where this happens is that someone throws an exception through the AssertThrow mechanism (see below) which, while the stack is unwound, leads to the destruction of other objects in stack frames above. If other objects refer to the objects being thus destroyed, some destructors raise an exception through Assert. If we would abort the program then, we would only ever see the message that an object is being destroyed which is still referenced from somewhere, but we would never see the original exception that triggered this. (You can see it in the debugger by putting a break point on the function __throw, but you cannot see it from the program itself.) In that case, we use a C++ standard library function to detect the presence of another active exception and do not terminate the program to allow that the thrown exception propagates to some place where its message can be displayed.

Since it is common that one failed assertion leads to a whole chain of others, we only ever print the very first message. If the program is then aborted, that is no problem. If it is not (since a C++ exception is active), only the first is displayed and a message about suppressed follow-up messages is shown.

Use of run-time exceptions (dynamic checks)

C++ has a mechanism to indicate that something exceptional has happened: exceptions that can be triggered by throw statements and captured by catch clauses, see for example https://en.wikipedia.org/wiki/C%2B%2B#Exception_handling and http://www.cplusplus.com/doc/tutorial/exceptions/ .

At some fundamental level, a typical C++ exception is an object that is placed in some special place, and then the function exits the current scope (e.g., the current function) through an exceptional return path. This is often enough to tell what problem triggered the exception, but more frequently it would be nice if one had more information: for example, in which line of the code the problem happened, or what non-existent entry of a sparse matrix the code wanted to write into.

Dynamic assertions in deal.II therefore extend this mechanism a bit. Typically, one would raise an exception by code such as

if (!(cond))
throw ExcSomething();

and catch it using the statement

try
{
do_something ();
}
catch (std::exception &e)
{
std::cerr << "Exception occurred:" << std::endl
<< e.what ()
<< std::endl;
do_something_to_receiver ();
}

std::exception is a standard C++ class providing basic functionality for exceptions, such as the virtual function what() that returns some information on the exception itself. This information is useful if an exception can't be handled properly, in which case as precise a description as possible should be printed.

The problem here is that to get significant and useful information out of what(), it is necessary to overload this function in our exception class and call the throw operator with additional arguments to the exception class. The first thing, overloading the what function is done using the DeclExceptionN macros, but putting the right information, which is the same as explained above for the Assert expansion, requires some work if one would want to write it down each time:

if (!(cond))
{
ExcSomething e(additional information);
e.set_fields (__FILE__, __LINE__, __PRETTY_FUNCTION__,
"condition as a string",
"name of condition as a string");
throw e;
};

For this purpose, the macro AssertThrow was invented. It does mainly the same job as does the Assert macro, but it does not abort the program; rather, it throws an exception as shown above. The mode of usage is

AssertThrow (cond, ExcSomething(additional information));

The condition to be checked is incorporated into the macro in order to allow passing the violated condition as a string. The expansion of the AssertThrow macro is not affected by the DEBUG preprocessor variable.

Description of the DeclExceptionN macro family

There is a whole family of DeclExceptionX macros where X is to be replaced by the number of additional parameters (0 to 5 presently). These macros are used to declare exception classes in the following way:

DeclException2 (ExcDomain,
int,
int,
<< " i=" << arg1 << ", m=" << arg2);

The first argument denotes the name of the exception class to be created. The next arguments are the types of the parameters (in this case there two types, corresponding to the X in DeclExceptionX) and finally the output sequence with which you can print additional information.

The syntax of the output sequence is a bit weird but gets clearer once you see how this macro is defined (again schematically, actual function names and definitions may change over time and be different):

class name : public ExceptionBase
{
public:
name (const type1 a1, const type2 a2) : arg1 (a1), arg2(a2)
{}
virtual void print_info (std::ostream &out) const
{
out << " " outsequence << std::endl;
}
private:
type1 arg1;
type2 arg2;
};

If declared as specified, you can later use this exception class in the following manner:

int i=5;
int m=3;
Assert (i<m, MyExc2(i,m));

and the output if the condition fails will be

--------------------------------------------------------
An error occurred in line <301> of file <exc-test.cc>.
The violated condition was:
i<m
The name and call sequence of the exception was:
MyExc2(i,m)
Additional Information:
i=5, m=3
--------------------------------------------------------

Obviously for the DeclException0(name) macro, no types and also no output sequence is allowed.

A corner case of Assert: The AssertNothrow macro

The default implementation of the Assert macro, as discussed above, prints detailed information about what exactly went wrong to the screen and then aborts the program. Aborting the program is useful because it allows easily finding the place where something went wrong – including all of the information how we got to that place – by running the program in a debugger.

On the other hand, there are cases where aborting a program may be undesirable and one needs to exit in a somewhat more graceful way – even if there is really not very much one can do in these cases to still produce a meaningful result. An example is if a deal.II program is run a one module in a bigger framework of software. Think, for example, of a case where a deal.II program computed the flow field that corresponds to a set of input variables provided by some optimization routine: if the optimizer on the outside provided a negative density as input (a condition one might want to check via Assert), then this clearly makes no sense, and the flow solver cannot produce a meaningful answer; but it should tell that to the optimizer nicely, rather than just aborting the entire process (optimizer and flow solver).

For this purpose, one can call deal_II_exceptions::disable_abort_on_exception() that switches what Assert does from aborting the program to essentially the same as AssertThrow does, namely using the C++ throw mechanism to raise an exception. This exception can then be caught at a higher level – e.g., in the optimization routine that sits atop the flow solver, and that can then decide what it wants to do with the situation.

This is all nice and good, but C++ does not allow throwing exceptions inside the destructors of classes, or in a function that is currently being called from a destructor higher up in the call stack. To this end, there is a separate macro, AssertNothrow, that can be used in destructors: It acts just like Assert usually does – in particular, it only checks the condition in debug mode – but it is immune to the effect of deal_II_exceptions::disable_abort_on_exception(): It will only ever abort the program, and never throw an exception.

Author
Wolfgang Bangerth, 1998-2017

Macro Definition Documentation

◆ DeclException0

#define DeclException0 (   Exception0)
Value:
\
static ::ExceptionBase &Exception0()

Declare an exception class derived from ExceptionBase without parameters.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Wolfgang Bangerth, November 1997

Definition at line 473 of file exceptions.h.

◆ DeclExceptionMsg

#define DeclExceptionMsg (   Exception,
  defaulttext 
)
Value:
\ \
static ::ExceptionBase &Exception()

Declare an exception class derived from ExceptionBase that can take one runtime argument, but if none is given in the place where you want to throw the exception, it simply reverts to the default text provided when declaring the exception class through this macro.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.

Definition at line 496 of file exceptions.h.

◆ DeclException1

#define DeclException1 (   Exception1,
  type1,
  outsequence 
)
Value:
\ \
static ::ExceptionBase &Exception1(type1 arg1)

Declare an exception class derived from ExceptionBase with one additional parameter.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.

Definition at line 518 of file exceptions.h.

◆ DeclException2

#define DeclException2 (   Exception2,
  type1,
  type2,
  outsequence 
)
Value:
\ \
static ::ExceptionBase &Exception2(type1 arg1, type2 arg2)

Declare an exception class derived from ExceptionBase with two additional parameters.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.

Definition at line 541 of file exceptions.h.

◆ DeclException3

#define DeclException3 (   Exception3,
  type1,
  type2,
  type3,
  outsequence 
)
Value:
\ \
static ::ExceptionBase &Exception3(type1 arg1, type2 arg2, type3 arg3)

Declare an exception class derived from ExceptionBase with three additional parameters.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.

Definition at line 564 of file exceptions.h.

◆ DeclException4

#define DeclException4 (   Exception4,
  type1,
  type2,
  type3,
  type4,
  outsequence 
)
Value:
\ \
static ::ExceptionBase &Exception4(type1 arg1, \
type2 arg2, \
type3 arg3, \
type4 arg4)

Declare an exception class derived from ExceptionBase with four additional parameters.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.

Definition at line 587 of file exceptions.h.

◆ DeclException5

#define DeclException5 (   Exception5,
  type1,
  type2,
  type3,
  type4,
  type5,
  outsequence 
)
Value:
\ \
static ::ExceptionBase &Exception5( \
type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)

Declare an exception class derived from ExceptionBase with five additional parameters.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.

Definition at line 613 of file exceptions.h.

◆ Assert

#define Assert (   cond,
  exc 
)
Value:
{ \
if (__builtin_expect(!(cond), false)) \
__FILE__, \
__LINE__, \
__PRETTY_FUNCTION__, \
#cond, \
#exc, \
exc); \
}

A macro that serves as the main routine in the exception mechanism for debug mode error checking. It asserts that a certain condition is fulfilled, otherwise issues an error and aborts the program.

A more detailed description can be found in the Exceptions and assertions module. It is first used in step-5 and step-6. See also the ExceptionBase class for more information.

Note
Active in DEBUG mode only
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Wolfgang Bangerth, 1997, 1998, Matthias Maier, 2013

Definition at line 1419 of file exceptions.h.

◆ AssertNothrow

#define AssertNothrow (   cond,
  exc 
)
Value:
{ \
if (__builtin_expect(!(cond), false)) \
__FILE__, __LINE__, __PRETTY_FUNCTION__, #cond, #exc, exc); \
}

A variant of the Assert macro above that exhibits the same runtime behavior as long as disable_abort_on_exception was not called.

However, if disable_abort_on_exception was called, this macro merely prints the exception that would be thrown to deallog and continues normally without throwing an exception.

A more detailed description can be found in the Exceptions and assertions module, in the discussion about the corner case at the bottom of the page.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Active in DEBUG mode only
Author
Wolfgang Bangerth, 1997, 1998, Matthias Maier, 2013

Definition at line 1483 of file exceptions.h.

◆ AssertThrow

#define AssertThrow (   cond,
  exc 
)
Value:
{ \
if (__builtin_expect(!(cond), false)) \
__FILE__, \
__LINE__, \
__PRETTY_FUNCTION__, \
#cond, \
#exc, \
exc); \
}

A macro that serves as the main routine in the exception mechanism for dynamic error checking. It asserts that a certain condition is fulfilled, otherwise throws an exception via the C++ throw mechanism. This exception can be caught via a catch clause, as is shown in step-6 and all following tutorial programs.

A more detailed description can be found in the Exceptions and assertions module. It is first used in step-9 and step-13. See also the ExceptionBase class for more information.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Active in both DEBUG and RELEASE modes
Author
Wolfgang Bangerth, 1997, 1998, Matthias Maier, 2013

Definition at line 1531 of file exceptions.h.

◆ AssertDimension

#define AssertDimension (   dim1,
  dim2 
)
Value:
Assert(static_cast<typename ::internal::argument_type<void( \
typename std::common_type<decltype(dim1), \
decltype(dim2)>::type)>::type>(dim1) == \
static_cast<typename ::internal::argument_type<void( \
typename std::common_type<decltype(dim1), \
decltype(dim2)>::type)>::type>(dim2), \
::ExcDimensionMismatch((dim1), (dim2)))

Special assertion for dimension mismatch.

Since this is used very often and always repeats the arguments, we introduce this special assertion for ExcDimensionMismatch in order to keep the user codes shorter.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Guido Kanschat 2007

Definition at line 1579 of file exceptions.h.

◆ AssertVectorVectorDimension

#define AssertVectorVectorDimension (   VEC,
  DIM1,
  DIM2 
)
Value:
AssertDimension(VEC.size(), DIM1); \
for (const auto &subvector : VEC) \
{ \
(void)subvector; \
AssertDimension(subvector.size(), DIM2); \
}

An assertion that tests whether vec has size dim1, and each entry of the vector is itself an array that has the size dim2.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Guido Kanschat 2010

Definition at line 1607 of file exceptions.h.

◆ AssertIndexRange

#define AssertIndexRange (   index,
  range 
)
Value:
Assert( \
static_cast<typename ::internal::argument_type<void( \
typename std::common_type<decltype(index), decltype(range)>::type)>:: \
type>(index) < \
static_cast<typename ::internal::argument_type<void( \
typename std::common_type<decltype(index), decltype(range)>::type)>:: \
type>(range), \
ExcIndexRangeType<typename ::internal::argument_type<void( \
typename std::common_type<decltype(index), decltype(range)>::type)>:: \
type>((index), 0, (range)))

An assertion that tests that a given index is within the half-open range [0,range). It throws an exception object ExcIndexRange(index,0,range) if the assertion fails.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Guido Kanschat, Daniel Arndt, 2007, 2018

Definition at line 1649 of file exceptions.h.

◆ AssertIsFinite

#define AssertIsFinite (   number)
Value:
::ExcNumberNotFinite(std::complex<double>(number)))

An assertion that checks whether a number is finite or not. We explicitly cast the number to std::complex to match the signature of the exception (see there for an explanation of why we use std::complex at all) and to satisfy the fact that std::complex has no implicit conversions.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Wolfgang Bangerth, 2015

Definition at line 1681 of file exceptions.h.

◆ AssertThrowMPI

#define AssertThrowMPI (   error_code)    AssertThrow(error_code == MPI_SUCCESS, ::ExcMPI(error_code))

An assertion that checks whether or not an error code returned by an MPI function is equal to MPI_SUCCESS. If the check fails then an exception of type ExcMPI is thrown with the given error code as an argument.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Active only if deal.II is compiled with MPI
Author
David Wells, 2016

Definition at line 1707 of file exceptions.h.

◆ AssertCuda

#define AssertCuda (   error_code)
Value:
Assert(error_code == cudaSuccess, \
::ExcCudaError(cudaGetErrorString(error_code)))

An assertion that checks that the error code produced by calling a CUDA routine is equal to cudaSuccess.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Bruno Turcksin, 2016

Definition at line 1734 of file exceptions.h.

◆ AssertNothrowCuda

#define AssertNothrowCuda (   error_code)
Value:
AssertNothrow(error_code == cudaSuccess, \
::ExcCudaError(cudaGetErrorString(error_code)))

The non-throwing equivalent of AssertCuda.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Daniel Arndt, 2018

Definition at line 1762 of file exceptions.h.

◆ AssertCudaKernel

#define AssertCudaKernel ( )
Value:
{ \
cudaError_t local_error_code = cudaPeekAtLastError(); \
AssertCuda(local_error_code); \
local_error_code = cudaDeviceSynchronize(); \
AssertCuda(local_error_code) \
}

An assertion that checks that the kernel was launched and executed successfully.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Bruno Turcksin, 2020

Definition at line 1791 of file exceptions.h.

◆ AssertCusparse

#define AssertCusparse (   error_code)
Value:
Assert( \
error_code == CUSPARSE_STATUS_SUCCESS, \
error_code)))

An assertion that checks that the error code produced by calling a cuSPARSE routine is equal to CUSPARSE_STATUS_SUCCESS.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Bruno Turcksin, 2018

Definition at line 1822 of file exceptions.h.

◆ AssertNothrowCusparse

#define AssertNothrowCusparse (   error_code)
Value:
error_code == CUSPARSE_STATUS_SUCCESS, \
error_code)))

The non-throwing equivalent of AssertCusparse.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Daniel Arndt, 2018

Definition at line 1853 of file exceptions.h.

◆ AssertCusolver

#define AssertCusolver (   error_code)
Value:
Assert( \
error_code == CUSOLVER_STATUS_SUCCESS, \
error_code)))

An assertion that checks that the error code produced by calling a cuSOLVER routine is equal to CUSOLVER_STATUS_SUCCESS.

Note
This and similar macro names are examples of preprocessor definitions in the deal.II library that are not prefixed by a string that likely makes them unique to deal.II. As a consequence, it is possible that other libraries your code interfaces with define the same name, and the result will be name collisions (see https://en.wikipedia.org/wiki/Name_collision). One can #undef this macro, as well as all other macros defined by deal.II that are not prefixed with either DEAL or deal, by including the header deal.II/base/undefine_macros.h after all other deal.II headers have been included.
Author
Bruno Turcksin, 2018

Definition at line 1885 of file exceptions.h.

Typedef Documentation

◆ ColorFunction

using DataOutBase::EpsFlags::ColorFunction = RgbValues (*)(const double value, const double min_value, const double max_value)

Definition of a function pointer type taking a value and returning a triple of color values in RGB values.

Besides the actual value by which the color is to be computed, min and max values of the data to be colorized are given as well.

Definition at line 953 of file data_out_base.h.

◆ Map3DPoint

using DataOutBase::DataOutFilter::Map3DPoint = std::multimap<Point<3>, unsigned int, Point3Comp>
private

Definition at line 1482 of file data_out_base.h.

◆ ExcInvalidEntryForPatternXML

Exception for when an entry in an XML parameter file does not match the provided pattern. The arguments are, in order, the entry value, entry name, and a description of the pattern.

Definition at line 1712 of file parameter_handler.h.

◆ T [1/8]

template<int rank, int dim, class Number >
using Patterns::Tools::Convert< Tensor< rank, dim, Number > >::T = Tensor<rank, dim, Number>

Definition at line 1935 of file patterns.h.

◆ T [2/8]

template<int dim, class Number >
using Patterns::Tools::Convert< Point< dim, Number > >::T = Point<dim, Number>

Definition at line 2002 of file patterns.h.

◆ T [3/8]

template<int dim>
using Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::T = std::unique_ptr<FunctionParser<dim> >

Definition at line 2032 of file patterns.h.

◆ T [4/8]

Definition at line 2098 of file patterns.h.

◆ T [5/8]

template<class Number >
using Patterns::Tools::Convert< std::complex< Number > >::T = std::complex<Number>

Definition at line 2132 of file patterns.h.

◆ T [6/8]

using Patterns::Tools::Convert< std::string >::T = std::string

Definition at line 2196 of file patterns.h.

◆ T [7/8]

template<class Key , class Value >
using Patterns::Tools::Convert< std::pair< Key, Value > >::T = std::pair<Key, Value>

Definition at line 2227 of file patterns.h.

◆ T [8/8]

template<class... Args>
using Patterns::Tools::Convert< std::tuple< Args... > >::T = std::tuple<Args...>

Definition at line 2266 of file patterns.h.

◆ map_value_type

The data type used in counter_map.

Definition at line 222 of file subscriptor.h.

◆ map_iterator

using Subscriptor::map_iterator = decltype(counter_map)::iterator
private

The iterator type used in counter_map.

Definition at line 227 of file subscriptor.h.

◆ map_dependent_expression_to_vector_entry_t

template<typename ReturnType >
using Differentiation::SD::BatchOptimizer< ReturnType >::map_dependent_expression_to_vector_entry_t = std::map<SD::Expression, std::size_t, SD::types::internal::ExpressionKeyLess>
private

A map type used to indicate which dependent variable is associated with which entry in the output vector.

Note
We use a custom comparator here because otherwise we can't use std::map::find; it is sensitive to the some data from the underlying SymEngine::Basic other than the value that it represents.

Definition at line 1998 of file symengine_optimizer.h.

◆ BlockType

template<class VectorType >
using BlockVectorBase< VectorType >::BlockType = VectorType

Typedef the type of the underlying vector.

Definition at line 456 of file block_vector_base.h.

◆ value_type

template<class VectorType >
using BlockVectorBase< VectorType >::value_type = typename BlockType::value_type

Definition at line 468 of file block_vector_base.h.

◆ pointer

template<class VectorType >
using BlockVectorBase< VectorType >::pointer = value_type *

Definition at line 469 of file block_vector_base.h.

◆ const_pointer

template<class VectorType >
using BlockVectorBase< VectorType >::const_pointer = const value_type *

Definition at line 470 of file block_vector_base.h.

◆ iterator [1/2]

Definition at line 472 of file block_vector_base.h.

◆ const_iterator [1/2]

Definition at line 474 of file block_vector_base.h.

◆ reference

template<class VectorType >
using BlockVectorBase< VectorType >::reference = typename BlockType::reference

Definition at line 475 of file block_vector_base.h.

◆ const_reference

template<class VectorType >
using BlockVectorBase< VectorType >::const_reference = typename BlockType::const_reference

Definition at line 476 of file block_vector_base.h.

◆ size_type [1/6]

template<class VectorType >
using BlockVectorBase< VectorType >::size_type = types::global_dof_index

Definition at line 477 of file block_vector_base.h.

◆ real_type

template<class VectorType >
using BlockVectorBase< VectorType >::real_type = typename BlockType::real_type

Declare a type that has holds real-valued numbers with the same precision as the template argument to this class. If the template argument of this class is a real data type, then real_type equals the template argument. If the template argument is a std::complex type then real_type equals the type underlying the complex numbers.

This alias is used to represent the return type of norms.

Definition at line 488 of file block_vector_base.h.

◆ number [1/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
using PreconditionBlockJacobi< MatrixType, inverse_type >::number = typename MatrixType::value_type
private

Define number type of matrix.

Definition at line 390 of file precondition_block.h.

◆ size_type [2/6]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
using PreconditionBlockJacobi< MatrixType, inverse_type >::size_type = types::global_dof_index

Declare type for container size.

Definition at line 396 of file precondition_block.h.

◆ size_type [3/6]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
using PreconditionBlockSOR< MatrixType, inverse_type >::size_type = types::global_dof_index

Declare type for container size.

Definition at line 667 of file precondition_block.h.

◆ number [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
using PreconditionBlockSOR< MatrixType, inverse_type >::number = typename MatrixType::value_type

Define number type of matrix.

Definition at line 677 of file precondition_block.h.

◆ size_type [4/6]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
using PreconditionBlockSSOR< MatrixType, inverse_type >::size_type = types::global_dof_index

Declare type for container size.

Definition at line 832 of file precondition_block.h.

◆ number [3/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
using PreconditionBlockSSOR< MatrixType, inverse_type >::number = typename MatrixType::value_type

Define number type of matrix.

Definition at line 837 of file precondition_block.h.

◆ size_type [5/6]

Declare type for container size.

Definition at line 871 of file sparsity_pattern.h.

◆ const_iterator [2/2]

Typedef an iterator class that allows to walk over all nonzero elements of a sparsity pattern.

Definition at line 877 of file sparsity_pattern.h.

◆ iterator [2/2]

Typedef an iterator class that allows to walk over all nonzero elements of a sparsity pattern.

Since the iterator does not allow to modify the sparsity pattern, this type is the same as that for const_iterator.

Definition at line 886 of file sparsity_pattern.h.

◆ size_type [6/6]

template<typename VectorType = ::Vector<double>>
using GrowingVectorMemory< VectorType >::size_type = types::global_dof_index

Declare type for container size.

Definition at line 326 of file vector_memory.h.

◆ entry_type

template<typename VectorType = ::Vector<double>>
using GrowingVectorMemory< VectorType >::entry_type = std::pair<bool, std::unique_ptr<VectorType> >
private

A type that describes this entries of an array that represents the vectors stored by this object. The first component of the pair is be a flag telling whether the vector is used, the second a pointer to the vector itself.

Definition at line 403 of file vector_memory.h.

Enumeration Type Documentation

◆ SizeType

Enum denoting the possibilities whether the scaling should be done such that the given size equals the width or the height of the resulting picture.

Enumerator
width 

Scale to given width.

height 

Scale to given height.

Definition at line 820 of file data_out_base.h.

◆ ZlibCompressionLevel

A data type providing the different possible zlib compression levels. These map directly to constants defined by zlib.

Enumerator
no_compression 

Do not use any compression.

best_speed 

Use the fastest available compression algorithm.

best_compression 

Use the algorithm which results in the smallest compressed files. This is the default flag.

default_compression 

Use the default compression algorithm. This is a compromise between speed and file size.

Definition at line 1133 of file data_out_base.h.

◆ MultipleEntryType

Declare what a multiple entry is: a variant entry (in curly braces {, }) or an array (in double curly braces {{, }}).

Enumerator
variant 

A variant entry.

array 

An array entry.

Definition at line 2185 of file parameter_handler.h.

◆ FileType

Files can be used for input or output. This can be specified in the constructor by choosing the flag type.

Enumerator
input 

Open for input.

output 

Open for output.

Definition at line 1093 of file patterns.h.

◆ OptimizerType

An enumeration to distinguish between different optimization methods that can be used by SymEngine to more rapidly evaluate complex symbolic expressions.

Enumerator
dictionary 

Use dictionary substitution. This is SymEngine's default method.

lambda 

Convert the symbolic expression into a collection of std::functions.

llvm 

Use the LLVM JIT compiler to compile the expression into an aggressively optimized, stand-alone function.

Definition at line 99 of file symengine_optimizer.h.

◆ OptimizationFlags

enum Differentiation::SD::OptimizationFlags : unsigned char
strong

An enumeration to specify which special techniques, over and above those used with the chosen OptimizerType, to be applied to the set of expressions that are to be optimized.

Enumerator
optimize_default 

No additional optimization.

optimize_cse 

Apply common subexpresson elimination.

optimize_aggressive 

Employ aggressive optimizations when compiling with the LLVM JIT compiler.

optimize_all 

Apply all possible optimizations.

Definition at line 145 of file symengine_optimizer.h.

Function Documentation

◆ ExcNameNotFound() [1/2]

static ::ExceptionBase& AnyData::ExcNameNotFound ( std::string  arg1)
static

An entry with this name does not exist in the AnyData object.

Note
The message that will be printed by this exception reads:
<< "No entry with the name " << arg1 << " exists."

◆ ExcTypeMismatch() [1/2]

static ::ExceptionBase& AnyData::ExcTypeMismatch ( std::string  arg1,
std::string  arg2 
)
static

The requested type and the stored type are different.

Note
The message that will be printed by this exception reads:
<< "The requested type " << arg1 << " and the stored type " << arg2 << " must coincide."

◆ ExcNameMismatch()

static ::ExceptionBase& AnyData::ExcNameMismatch ( int  arg1,
std::string  arg2 
)
static

Exception indicating that a function expected a vector to have a certain name, but we store a different name in that position.

Note
The message that will be printed by this exception reads:
<< "Name at position " << arg1 << " is not equal to " << arg2 << "."

◆ ExcNameNotFound() [2/2]

static ::ExceptionBase& GeneralDataStorage::ExcNameNotFound ( std::string  arg1)
static

An entry with this name does not exist in the internal boost::any map.

Note
The message that will be printed by this exception reads:
<< "No entry with the name " << arg1 << " exists."

◆ ExcNameHasBeenFound()

static ::ExceptionBase& GeneralDataStorage::ExcNameHasBeenFound ( std::string  arg1)
static

An entry with this name does not exist in the internal boost::any map.

Note
The message that will be printed by this exception reads:
<< "An entry with the name " << arg1 << " already exists."

◆ ExcTypeMismatch() [2/2]

static ::ExceptionBase& GeneralDataStorage::ExcTypeMismatch ( std::string  arg1,
const char *  arg2,
const char *  arg3 
)
static

The requested type and the stored type are different.

Note
The message that will be printed by this exception reads:
<< "The stored type for entry with name \"" << arg1 << "" is " << arg2 << " but you requested type " << arg3 << "."

◆ ExcRateColumnAlreadyExists()

static ::ExceptionBase& ConvergenceTable::ExcRateColumnAlreadyExists ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Rate column <" << arg1 << "> does already exist."

◆ Patch() [1/2]

template<int dim, int spacedim>
DataOutBase::Patch< dim, spacedim >::Patch

Default constructor. Sets n_subdivisions to one, points_are_available to false, and patch_index to no_neighbor.

Definition at line 1611 of file data_out_base.cc.

◆ operator==() [1/7]

template<int dim, int spacedim>
bool DataOutBase::Patch< dim, spacedim >::operator== ( const Patch< dim, spacedim > &  patch) const

Compare the present patch for equality with another one. This is used in a few of the automated tests in our testsuite.

Definition at line 1629 of file data_out_base.cc.

◆ memory_consumption() [1/16]

template<int dim, int spacedim>
std::size_t DataOutBase::Patch< dim, spacedim >::memory_consumption

Return an estimate for the memory consumption, in bytes, of this object. This is not exact (but will usually be close) because calculating the memory usage of trees (e.g., std::map) is difficult.

Definition at line 1668 of file data_out_base.cc.

◆ swap() [1/2]

template<int dim, int spacedim>
void DataOutBase::Patch< dim, spacedim >::swap ( Patch< dim, spacedim > &  other_patch)

Swap the current object's contents with those of the given argument.

Definition at line 1684 of file data_out_base.cc.

◆ ExcInvalidCombinationOfDimensions() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DataOutBase::Patch< dim, spacedim >::ExcInvalidCombinationOfDimensions ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "It is not possible to have a structural dimension of " << arg1 << " to be larger than the space dimension of the surrounding" << " space " << arg2

◆ Patch() [2/2]

template<int spacedim>
DataOutBase::Patch< 0, spacedim >::Patch

Default constructor. Sets points_are_available to false, and patch_index to no_neighbor.

Definition at line 1712 of file data_out_base.cc.

◆ operator==() [2/7]

template<int spacedim>
bool DataOutBase::Patch< 0, spacedim >::operator== ( const Patch< 0, spacedim > &  patch) const

Compare the present patch for equality with another one. This is used in a few of the automated tests in our testsuite.

Definition at line 1723 of file data_out_base.cc.

◆ memory_consumption() [2/16]

template<int spacedim>
std::size_t DataOutBase::Patch< 0, spacedim >::memory_consumption

Return an estimate for the memory consumption, in bytes, of this object. This is not exact (but will usually be close) because calculating the memory usage of trees (e.g., std::map) is difficult.

Definition at line 1757 of file data_out_base.cc.

◆ swap() [2/2]

template<int spacedim>
void DataOutBase::Patch< 0, spacedim >::swap ( Patch< 0, spacedim > &  other_patch)

Swap the current object's contents with those of the given argument.

Definition at line 1768 of file data_out_base.cc.

◆ ExcInvalidCombinationOfDimensions() [2/2]

template<int spacedim>
static ::ExceptionBase& DataOutBase::Patch< 0, spacedim >::ExcInvalidCombinationOfDimensions ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "It is not possible to have a structural dimension of " << arg1 << " to be larger than the space dimension of the surrounding" << " space " << arg2

◆ declare_parameters() [1/7]

template<typename FlagsType >
void DataOutBase::OutputFlagsBase< FlagsType >::declare_parameters ( ParameterHandler prm)
static

Declare all flags with name and type as offered by this class, for use in input files.

This method does nothing, but child classes may override this method to add fields to prm.

Definition at line 571 of file data_out_base.h.

◆ parse_parameters() [1/7]

template<typename FlagsType >
void DataOutBase::OutputFlagsBase< FlagsType >::parse_parameters ( const ParameterHandler prm)

Read the parameters declared in declare_parameters() and set the flags for this output format accordingly.

This method does nothing, but child classes may override this method to add fields to prm.

Definition at line 577 of file data_out_base.h.

◆ memory_consumption() [3/16]

template<typename FlagsType >
std::size_t DataOutBase::OutputFlagsBase< FlagsType >::memory_consumption

Return an estimate for the memory consumption, in bytes, of this object. This is not exact (but will usually be close) because calculating the memory usage of trees (e.g., std::map) is difficult.

Definition at line 583 of file data_out_base.h.

◆ DXFlags()

DataOutBase::DXFlags::DXFlags ( const bool  write_neighbors = false,
const bool  int_binary = false,
const bool  coordinates_binary = false,
const bool  data_binary = false 
)

Constructor.

Definition at line 1870 of file data_out_base.cc.

◆ declare_parameters() [2/7]

void DataOutBase::DXFlags::declare_parameters ( ParameterHandler prm)
static

Declare all flags with name and type as offered by this class, for use in input files.

Definition at line 1883 of file data_out_base.cc.

◆ parse_parameters() [2/7]

void DataOutBase::DXFlags::parse_parameters ( const ParameterHandler prm)

Read the parameters declared in declare_parameters() and set the flags for this output format accordingly.

The flags thus obtained overwrite all previous contents of this object.

Definition at line 1914 of file data_out_base.cc.

◆ UcdFlags()

DataOutBase::UcdFlags::UcdFlags ( const bool  write_preamble = false)

Constructor.

Definition at line 1778 of file data_out_base.cc.

◆ declare_parameters() [3/7]

void DataOutBase::UcdFlags::declare_parameters ( ParameterHandler prm)
static

Declare all flags with name and type as offered by this class, for use in input files.

Definition at line 1923 of file data_out_base.cc.

◆ parse_parameters() [3/7]

void DataOutBase::UcdFlags::parse_parameters ( const ParameterHandler prm)

Read the parameters declared in declare_parameters() and set the flags for this output format accordingly.

The flags thus obtained overwrite all previous contents of this object.

Definition at line 1937 of file data_out_base.cc.

◆ GnuplotFlags() [1/2]

DataOutBase::GnuplotFlags::GnuplotFlags ( )

Default constructor. Sets up the dimension labels with the default values of "x", "y", and "z".

Definition at line 1784 of file data_out_base.cc.

◆ GnuplotFlags() [2/2]

DataOutBase::GnuplotFlags::GnuplotFlags ( const std::vector< std::string > &  space_dimension_labels)

Constructor which sets up non-default values for the dimension labels.

Definition at line 1793 of file data_out_base.cc.

◆ memory_consumption() [4/16]

std::size_t DataOutBase::GnuplotFlags::memory_consumption ( ) const

Return an estimate for the memory consumption, in bytes, of this object.

Definition at line 1800 of file data_out_base.cc.

◆ ExcNotEnoughSpaceDimensionLabels()

static ::ExceptionBase& DataOutBase::GnuplotFlags::ExcNotEnoughSpaceDimensionLabels ( )
static

Exception to raise when there are not enough specified dimension labels.

Note
The message that will be printed by this exception reads:
"There should be at least one space dimension per spatial " "dimension (extras are ignored)."

◆ PovrayFlags()

DataOutBase::PovrayFlags::PovrayFlags ( const bool  smooth = false,
const bool  bicubic_patch = false,
const bool  external_data = false 
)

Constructor.

Definition at line 1807 of file data_out_base.cc.

◆ declare_parameters() [4/7]

void DataOutBase::PovrayFlags::declare_parameters ( ParameterHandler prm)
static

Declare all flags with name and type as offered by this class, for use in input files.

Definition at line 1963 of file data_out_base.cc.

◆ parse_parameters() [4/7]

void DataOutBase::PovrayFlags::parse_parameters ( const ParameterHandler prm)

Read the parameters declared in declare_parameters() and set the flags for this output format accordingly.

The flags thus obtained overwrite all previous contents of this object.

Definition at line 1985 of file data_out_base.cc.

◆ is_grey()

bool DataOutBase::EpsFlags::RgbValues::is_grey ( ) const
inline

Return true if the color represented by the three color values is a grey scale, i.e. all components are equal.

Definition at line 3443 of file data_out_base.h.

◆ default_color_function()

EpsFlags::RgbValues DataOutBase::EpsFlags::default_color_function ( const double  value,
const double  min_value,
const double  max_value 
)
static

Default colorization function. This one does what one usually wants: It shifts colors from black (lowest value) through blue, green and red to white (highest value). For the exact definition of the color scale refer to the implementation.

This function was originally written by Stefan Nauber.

Definition at line 2023 of file data_out_base.cc.

◆ grey_scale_color_function()

EpsFlags::RgbValues DataOutBase::EpsFlags::grey_scale_color_function ( const double  value,
const double  min_value,
const double  max_value 
)
static

This is an alternative color function producing a grey scale between black (lowest values) and white (highest values). You may use it by setting the color_function variable to the address of this function.

Definition at line 2111 of file data_out_base.cc.

◆ reverse_grey_scale_color_function()

EpsFlags::RgbValues DataOutBase::EpsFlags::reverse_grey_scale_color_function ( const double  value,
const double  min_value,
const double  max_value 
)
static

This is one more alternative color function producing a grey scale between white (lowest values) and black (highest values), i.e. the scale is reversed to the previous one. You may use it by setting the color_function variable to the address of this function.

Definition at line 2124 of file data_out_base.cc.

◆ EpsFlags()

DataOutBase::EpsFlags::EpsFlags ( const unsigned int  height_vector = 0,
const unsigned int  color_vector = 0,
const SizeType  size_type = width,
const unsigned int  size = 300,
const double  line_width = 0.5,
const double  azimut_angle = 60,
const double  turn_angle = 30,
const double  z_scaling = 1.0,
const bool  draw_mesh = true,
const bool  draw_cells = true,
const bool  shade_cells = true,
const ColorFunction  color_function = &default_color_function 
)

Constructor.

Definition at line 1994 of file data_out_base.cc.

◆ declare_parameters() [5/7]

void DataOutBase::EpsFlags::declare_parameters ( ParameterHandler prm)
static

Declare all flags with name and type as offered by this class, for use in input files.

For coloring, only the color functions declared in this class are offered.

Definition at line 2137 of file data_out_base.cc.

◆ parse_parameters() [5/7]

void DataOutBase::EpsFlags::parse_parameters ( const ParameterHandler prm)

Read the parameters declared in declare_parameters() and set the flags for this output format accordingly.

The flags thus obtained overwrite all previous contents of this object.

Definition at line 2204 of file data_out_base.cc.

◆ TecplotFlags()

DataOutBase::TecplotFlags::TecplotFlags ( const char *  tecplot_binary_file_name = nullptr,
const char *  zone_name = nullptr,
const double  solution_time = -1.0 
)

Constructor.

Definition at line 2234 of file data_out_base.cc.

◆ memory_consumption() [5/16]

std::size_t DataOutBase::TecplotFlags::memory_consumption ( ) const

Return an estimate for the memory consumption, in bytes, of this object.

Definition at line 2245 of file data_out_base.cc.

◆ VtkFlags()

DataOutBase::VtkFlags::VtkFlags ( const double  time = std::numeric_limits<double>::min(),
const unsigned int  cycle = std::numeric_limits<unsigned int>::min(),
const bool  print_date_and_time = true,
const ZlibCompressionLevel  compression_level = best_compression,
const bool  write_higher_order_cells = false 
)

Constructor.

Definition at line 2254 of file data_out_base.cc.

◆ SvgFlags()

DataOutBase::SvgFlags::SvgFlags ( const unsigned int  height_vector = 0,
const int  azimuth_angle = 37,
const int  polar_angle = 45,
const unsigned int  line_thickness = 1,
const bool  margin = true,
const bool  draw_colorbar = true 
)

Constructor.

Definition at line 1944 of file data_out_base.cc.

◆ DataOutFilterFlags()

DataOutBase::DataOutFilterFlags::DataOutFilterFlags ( const bool  filter_duplicate_vertices = false,
const bool  xdmf_hdf5_output = false 
)

Constructor.

Definition at line 1816 of file data_out_base.cc.

◆ declare_parameters() [6/7]

void DataOutBase::DataOutFilterFlags::declare_parameters ( ParameterHandler prm)
static

Declare all flags with name and type as offered by this class, for use in input files.

Definition at line 1824 of file data_out_base.cc.

◆ parse_parameters() [6/7]

void DataOutBase::DataOutFilterFlags::parse_parameters ( const ParameterHandler prm)

Read the parameters declared in declare_parameters and set the flags for this output format accordingly.

The flags thus obtained overwrite all previous contents of this object.

Definition at line 1862 of file data_out_base.cc.

◆ memory_consumption() [6/16]

std::size_t DataOutBase::DataOutFilterFlags::memory_consumption ( ) const

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

◆ DataOutFilter() [1/2]

DataOutBase::DataOutFilter::DataOutFilter ( )

Default constructor.

Definition at line 313 of file data_out_base.cc.

◆ DataOutFilter() [2/2]

DataOutBase::DataOutFilter::DataOutFilter ( const DataOutBase::DataOutFilterFlags flags)

Destructor with a given set of flags. See DataOutFilterFlags for possible flags.

Definition at line 321 of file data_out_base.cc.

◆ write_point()

template<int dim>
void DataOutBase::DataOutFilter::write_point ( const unsigned int  index,
const Point< dim > &  p 
)

Write a point with the specified index into the filtered data set. If the point already exists and we are filtering redundant values, the provided index will internally refer to another recorded point.

Definition at line 331 of file data_out_base.cc.

◆ write_cell()

template<int dim>
void DataOutBase::DataOutFilter::write_cell ( const unsigned int  index,
const unsigned int  start,
const unsigned int  d1,
const unsigned int  d2,
const unsigned int  d3 
)

Record a deal.II cell in the internal reordered format.

Definition at line 460 of file data_out_base.cc.

◆ write_data_set()

void DataOutBase::DataOutFilter::write_data_set ( const std::string &  name,
const unsigned int  dimension,
const unsigned int  set_num,
const Table< 2, double > &  data_vectors 
)

Filter and record a data set. If there are multiple values at a given vertex and redundant values are being removed, one is arbitrarily chosen as the recorded value. In the future this can be expanded to average/min/max multiple values at a given vertex.

Definition at line 491 of file data_out_base.cc.

◆ fill_node_data()

void DataOutBase::DataOutFilter::fill_node_data ( std::vector< double > &  node_data) const

Resize and fill a vector with all the filtered node vertex points, for output to a file.

Definition at line 369 of file data_out_base.cc.

◆ fill_cell_data()

void DataOutBase::DataOutFilter::fill_cell_data ( const unsigned int  local_node_offset,
std::vector< unsigned int > &  cell_data 
) const

Resize and fill a vector with all the filtered cell vertex indices, for output to a file.

Definition at line 384 of file data_out_base.cc.

◆ get_data_set_name()

std::string DataOutBase::DataOutFilter::get_data_set_name ( const unsigned int  set_num) const

Get the name of the data set indicated by the set number.

Definition at line 399 of file data_out_base.cc.

◆ get_data_set_dim()

unsigned int DataOutBase::DataOutFilter::get_data_set_dim ( const unsigned int  set_num) const

Get the dimensionality of the data set indicated by the set number.

Definition at line 407 of file data_out_base.cc.

◆ get_data_set()

const double * DataOutBase::DataOutFilter::get_data_set ( const unsigned int  set_num) const

Get the raw double valued data of the data set indicated by the set number.

Definition at line 415 of file data_out_base.cc.

◆ n_nodes()

unsigned int DataOutBase::DataOutFilter::n_nodes ( ) const

Return the number of nodes in this DataOutFilter. This may be smaller than the original number of nodes if filtering is enabled.

Definition at line 423 of file data_out_base.cc.

◆ n_cells()

unsigned int DataOutBase::DataOutFilter::n_cells ( ) const

Return the number of filtered cells in this DataOutFilter. Cells are not filtered so this will be the original number of cells.

Definition at line 431 of file data_out_base.cc.

◆ n_data_sets()

unsigned int DataOutBase::DataOutFilter::n_data_sets ( ) const

Return the number of filtered data sets in this DataOutFilter. Data sets are not filtered so this will be the original number of data sets.

Definition at line 439 of file data_out_base.cc.

◆ flush_points()

void DataOutBase::DataOutFilter::flush_points ( )

Empty functions to do base class inheritance.

Definition at line 447 of file data_out_base.cc.

◆ flush_cells()

void DataOutBase::DataOutFilter::flush_cells ( )

Empty functions to do base class inheritance.

Definition at line 453 of file data_out_base.cc.

◆ operator()() [1/4]

bool DataOutBase::DataOutFilter::Point3Comp::operator() ( const Point< 3 > &  one,
const Point< 3 > &  two 
) const
inline

Definition at line 1460 of file data_out_base.h.

◆ internal_add_cell()

void DataOutBase::DataOutFilter::internal_add_cell ( const unsigned int  cell_index,
const unsigned int  pt_index 
)
private

Record a cell vertex index based on the internal reordering.

Definition at line 360 of file data_out_base.cc.

◆ ExcInvalidDatasetSize()

static ::ExceptionBase& DataOutBase::ExcInvalidDatasetSize ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of points in this data set is " << arg1 << ", but we expected " << arg2 << " in each space direction."

◆ ExcNoPatches()

static ::ExceptionBase& DataOutBase::ExcNoPatches ( )
static

An output function did not receive any patches for writing.

Note
The message that will be printed by this exception reads:
"You are trying to write graphical data into a file, but " "no data is available in the intermediate format that " "the DataOutBase functions require. Did you forget to " "call a function such as DataOut::build_patches()?"

◆ ExcTecplotAPIError()

static ::ExceptionBase& DataOutBase::ExcTecplotAPIError ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The error code of one of the Tecplot functions was " "not zero as expected."

◆ ExcErrorOpeningTecplotFile()

static ::ExceptionBase& DataOutBase::ExcErrorOpeningTecplotFile ( char *  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "There was an error opening Tecplot file " << arg1 << " for output."

◆ DataOutInterface()

template<int dim, int spacedim>
DataOutInterface< dim, spacedim >::DataOutInterface

Constructor.

Definition at line 6740 of file data_out_base.cc.

◆ ~DataOutInterface()

template<int dim, int spacedim = dim>
virtual DataOutInterface< dim, spacedim >::~DataOutInterface ( )
virtualdefault

Destructor. Does nothing, but is declared virtual since this class has virtual functions.

◆ write_dx()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_dx ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in OpenDX format. See DataOutBase::write_dx.

Definition at line 6749 of file data_out_base.cc.

◆ write_eps()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_eps ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in EPS format. See DataOutBase::write_eps.

Definition at line 6801 of file data_out_base.cc.

◆ write_gmv()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_gmv ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in GMV format. See DataOutBase::write_gmv.

Definition at line 6814 of file data_out_base.cc.

◆ write_gnuplot()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_gnuplot ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in GNUPLOT format. See DataOutBase::write_gnuplot.

Definition at line 6775 of file data_out_base.cc.

◆ write_povray()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_povray ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in POVRAY format. See DataOutBase::write_povray.

Definition at line 6788 of file data_out_base.cc.

◆ write_tecplot()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_tecplot ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in Tecplot format. See DataOutBase::write_tecplot.

Definition at line 6827 of file data_out_base.cc.

◆ write_tecplot_binary()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_tecplot_binary ( std::ostream &  out) const

Obtain data through get_patches() and write it in the Tecplot binary output format. Note that the name of the output file must be specified through the TecplotFlags interface.

Definition at line 6840 of file data_out_base.cc.

◆ write_ucd()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_ucd ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in UCD format for AVS. See DataOutBase::write_ucd.

Definition at line 6762 of file data_out_base.cc.

◆ write_vtk()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_vtk ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in Vtk format. See DataOutBase::write_vtk.

Note
VTK is a legacy format and has largely been supplanted by the VTU format (an XML-structured version of VTK). In particular, VTU allows for the compression of data and consequently leads to much smaller file sizes that equivalent VTK files for large files. Since all visualization programs that support VTK also support VTU, you should consider using the latter file format instead, by using the write_vtu() function.

Definition at line 6853 of file data_out_base.cc.

◆ write_vtu()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_vtu ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in Vtu (VTK's XML) format. See DataOutBase::write_vtu.

Some visualization programs, such as ParaView, can read several separate VTU files to parallelize visualization. In that case, you need a .pvtu file that describes which VTU files form a group. The DataOutInterface::write_pvtu_record() function can generate such a master record. Likewise, DataOutInterface::write_visit_record() does the same for older versions of VisIt (although VisIt can also read pvtu records since version 2.5.1). Finally, DataOutInterface::write_pvd_record() can be used to group together the files that jointly make up a time dependent simulation.

Definition at line 6864 of file data_out_base.cc.

◆ write_vtu_in_parallel()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_vtu_in_parallel ( const std::string &  filename,
MPI_Comm  comm 
) const

Collective MPI call to write the solution from all participating nodes (those in the given communicator) to a single compressed .vtu file on a shared file system. The communicator can be a sub communicator of the one used by the computation. This routine uses MPI I/O to achieve high performance on parallel filesystems. Also see DataOutInterface::write_vtu().

Definition at line 6886 of file data_out_base.cc.

◆ write_pvtu_record()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_pvtu_record ( std::ostream &  out,
const std::vector< std::string > &  piece_names 
) const

Some visualization programs, such as ParaView, can read several separate VTU files that all form part of the same simulation, in order to parallelize visualization. In that case, you need a .pvtu file that describes which VTU files (written, for example, through the DataOutInterface::write_vtu() function) form a group. The current function can generate such a master record.

The master record file generated by this function contains a list of (scalar or vector) fields that describes which fields can actually be found in the individual files that comprise the set of parallel VTU files along with the names of these files. This function gets the names and types of fields through the get_dataset_names() and get_nonscalar_data_ranges() functions of this class. The second argument to this function specifies the names of the files that form the parallel set.

Note
Use DataOutBase::write_vtu() and DataOutInterface::write_vtu() for writing each piece. Also note that only one parallel process needs to call the current function, listing the names of the files written by all parallel processes.
The use of this function is explained in step-40.
In order to tell Paraview to group together multiple pvtu files that each describe one time step of a time dependent simulation, see the DataOutBase::write_pvd_record() function.
Older versions of VisIt (before 2.5.1), can not read pvtu records. However, it can read visit records as written by the write_visit_record() function.

Definition at line 6988 of file data_out_base.cc.

◆ write_vtu_with_pvtu_record()

template<int dim, int spacedim>
std::string DataOutInterface< dim, spacedim >::write_vtu_with_pvtu_record ( const std::string &  directory,
const std::string &  filename_without_extension,
const unsigned int  counter,
const MPI_Comm mpi_communicator,
const unsigned int  n_digits_for_counter = numbers::invalid_unsigned_int,
const unsigned int  n_groups = 0 
) const

This function writes several .vtu files and a .pvtu record in parallel and constructs the filenames automatically. It is a combination of DataOutInterface::write_vtu() or DataOutInterface::write_vtu_in_parallel(), and DataOutInterface::write_pvtu_record().

For example, running write_vtu_with_pvtu_record("output/", "solution", 3, comm, 4, 2) on 10 processes generates the files

output/solution_0003.0.vtu
output/solution_0003.1.vtu
output/solution_0003.pvtu

where the .0.vtu file contains the output of the first half of the processes grouped together, and the .1.vtu the data from the remaining half.

A specified directory and a filename_without_extension form the first part of the filename. The filename is then extended with a counter labeling the current timestep/iteration/etc., the processor ID, and finally the .vtu/.pvtu ending. Since the number of timesteps to be written depends on the application, the number of digits to be reserved in the filename can be specified as parameter n_digits_for_counter, and the number is not padded with leading zeros if this parameter is left at its default value numbers::invalid_unsigned_int. If more than one file identifier is needed (e.g. time step number and iteration counter of solver), the last identifier is used as counter, while all other identifiers have to be added to filename_without_extension when calling this function.

In a parallel setting, several files are typically written per time step. The number of files written in parallel depends on the number of MPI processes (see parameter mpi_communicator), and a specified number of n_groups with default value 0. The background is that VTU file output supports grouping files from several CPUs into a given number of files using MPI I/O when writing on a parallel filesystem. The default value of n_groups is 0, meaning that every MPI rank will write one file. A value of 1 will generate one big file containing the solution over the whole domain, while a larger value will create n_groups files (but not more than there are MPI ranks).

Note that only one processor needs to generate the .pvtu file, where processor zero is chosen to take over this job.

The return value is the filename of the master file for the pvtu record.

Note
The code simply combines the strings directory and filename_without_extension, i.e., the user has to make sure that directory contains a trailing character, e.g. "/", that separates the directory from the filename.
Use an empty string "" for the first argument if output is to be written in the current working directory.
Author
Niklas Fehn, Martin Kronbichler, 2019

Definition at line 7001 of file data_out_base.cc.

◆ write_svg()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_svg ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in SVG format. See DataOutBase::write_svg.

Definition at line 6875 of file data_out_base.cc.

◆ write_deal_II_intermediate()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_deal_II_intermediate ( std::ostream &  out) const

Obtain data through get_patches() and write it to out in deal.II intermediate format. See DataOutBase::write_deal_II_intermediate.

Note that the intermediate format is what its name suggests: a direct representation of internal data. It isn't standardized and will change whenever we change our internal representation. You can only expect to process files written in this format using the same version of deal.II that was used for writing.

Definition at line 7082 of file data_out_base.cc.

◆ create_xdmf_entry() [1/2]

template<int dim, int spacedim>
XDMFEntry DataOutInterface< dim, spacedim >::create_xdmf_entry ( const DataOutBase::DataOutFilter data_filter,
const std::string &  h5_filename,
const double  cur_time,
MPI_Comm  comm 
) const

Create an XDMFEntry based on the data in the data_filter. This assumes the mesh and solution data were written to a single file. See write_xdmf_file() for an example of usage.

Definition at line 7095 of file data_out_base.cc.

◆ create_xdmf_entry() [2/2]

template<int dim, int spacedim>
XDMFEntry DataOutInterface< dim, spacedim >::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

Create an XDMFEntry based on the data in the data_filter. This assumes the mesh and solution data were written to separate files. See write_xdmf_file() for an example of usage.

Definition at line 7109 of file data_out_base.cc.

◆ write_xdmf_file()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_xdmf_file ( const std::vector< XDMFEntry > &  entries,
const std::string &  filename,
MPI_Comm  comm 
) const

Write an XDMF file based on the provided vector of XDMFEntry objects. Below is an example of how to use this function with HDF5 and the DataOutFilter:

DataOutBase::DataOutFilter data_filter(flags);
std::vector<XDMFEntry> xdmf_entries;
// Filter the data and store it in data_filter
data_out.write_filtered_data(data_filter);
// Write the filtered data to HDF5
data_out.write_hdf5_parallel(data_filter, "solution.h5", MPI_COMM_WORLD);
// Create an XDMF entry detailing the HDF5 file
auto new_xdmf_entry = data_out.create_xdmf_entry(data_filter,
"solution.h5",
simulation_time,
MPI_COMM_WORLD);
// Add the XDMF entry to the list
xdmf_entries.push_back(new_xdmf_entry);
// Create an XDMF file from all stored entries
data_out.write_xdmf_file(xdmf_entries, "solution.xdmf", MPI_COMM_WORLD);

Definition at line 7182 of file data_out_base.cc.

◆ write_hdf5_parallel() [1/2]

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_hdf5_parallel ( const DataOutBase::DataOutFilter data_filter,
const std::string &  filename,
MPI_Comm  comm 
) const

Write the data in data_filter to a single HDF5 file containing both the mesh and solution values. Below is an example of how to use this function with the DataOutFilter:

DataOutBase::DataOutFilter data_filter(flags);
// Filter the data and store it in data_filter
data_out.write_filtered_data(data_filter);
// Write the filtered data to HDF5
data_out.write_hdf5_parallel(data_filter, "solution.h5", MPI_COMM_WORLD);

Definition at line 7355 of file data_out_base.cc.

◆ write_hdf5_parallel() [2/2]

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::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

Write the data in data_filter to HDF5 file(s). If write_mesh_file is false, the mesh data will not be written and the solution file will contain only the solution values. If write_mesh_file is true and the filenames are the same, the resulting file will contain both mesh data and solution values.

Definition at line 7367 of file data_out_base.cc.

◆ write_filtered_data()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write_filtered_data ( DataOutBase::DataOutFilter filtered_data) const

DataOutFilter is an intermediate data format that reduces the amount of data that will be written to files. The object filled by this function can then later be used again to write data in a concrete file format; see, for example, DataOutBase::write_hdf5_parallel().

Definition at line 7227 of file data_out_base.cc.

◆ write()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::write ( std::ostream &  out,
const DataOutBase::OutputFormat  output_format = DataOutBase::default_format 
) const

Write data and grid to out according to the given data format. This function simply calls the appropriate write_* function. If no output format is requested, the default_format is written.

An error occurs if no format is provided and the default format is default_format.

Definition at line 7757 of file data_out_base.cc.

◆ set_default_format()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::set_default_format ( const DataOutBase::OutputFormat  default_format)

Set the default format. The value set here is used anytime, output for format default_format is requested.

Definition at line 7827 of file data_out_base.cc.

◆ set_flags()

template<int dim, int spacedim>
template<typename FlagType >
void DataOutInterface< dim, spacedim >::set_flags ( const FlagType &  flags)

Set the flags to be used for output. This method expects flags to be a member of one of the child classes of OutputFlagsBase.

Definition at line 7837 of file data_out_base.cc.

◆ default_suffix()

template<int dim, int spacedim>
std::string DataOutInterface< dim, spacedim >::default_suffix ( const DataOutBase::OutputFormat  output_format = DataOutBase::default_format) const

A function that returns the same string as the respective function in the base class does; the only exception being that if the parameter is omitted, then the value for the present default format is returned, i.e. the correct suffix for the format that was set through set_default_format() or parse_parameters() before calling this function.

Definition at line 7872 of file data_out_base.cc.

◆ declare_parameters() [7/7]

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::declare_parameters ( ParameterHandler prm)
static

Declare parameters for all output formats by declaring subsections within the parameter file for each output format and call the respective declare_parameters functions of the flag classes for each output format.

Some of the declared subsections may not contain entries, if the respective format does not export any flags.

Note that the top-level parameters denoting the number of subdivisions per patch and the output format are not declared, since they are only passed to virtual functions and are not stored inside objects of this type. You have to declare them yourself.

Definition at line 7885 of file data_out_base.cc.

◆ parse_parameters() [7/7]

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::parse_parameters ( ParameterHandler prm)

Read the parameters declared in declare_parameters() and set the flags for the output formats accordingly.

The flags thus obtained overwrite all previous contents of the flag objects as default-constructed or set by the set_flags() function.

Definition at line 7938 of file data_out_base.cc.

◆ memory_consumption() [7/16]

template<int dim, int spacedim>
std::size_t DataOutInterface< dim, spacedim >::memory_consumption

Return an estimate for the memory consumption, in bytes, of this object. This is not exact (but will usually be close) because calculating the memory usage of trees (e.g., std::map) is difficult.

Definition at line 7985 of file data_out_base.cc.

◆ get_patches() [1/2]

template<int dim, int spacedim = dim>
virtual const std::vector<DataOutBase::Patch<dim, spacedim> >& DataOutInterface< dim, spacedim >::get_patches ( ) const
protectedpure virtual

This is the abstract function through which derived classes propagate preprocessed data in the form of Patch structures (declared in the base class DataOutBase) to the actual output function. You need to overload this function to allow the output functions to know what they shall print.

Implemented in DataOut_DoFData< DoFHandler< dim >, DoFHandler< dim > ::dimension, DoFHandler< dim > ::space_dimension >, DataOut_DoFData< DoFHandler< dim >, DoFHandler< dim > ::dimension - 1, DoFHandler< dim > ::dimension >, and DataOut_DoFData< DoFHandler< dim >, DoFHandler< dim > ::dimension+1 >.

◆ get_dataset_names() [1/2]

template<int dim, int spacedim = dim>
virtual std::vector<std::string> DataOutInterface< dim, spacedim >::get_dataset_names ( ) const
protectedpure virtual

◆ get_nonscalar_data_ranges() [1/2]

template<int dim, int spacedim>
std::vector< std::tuple< unsigned int, unsigned int, std::string, DataComponentInterpretation::DataComponentInterpretation > > DataOutInterface< dim, spacedim >::get_nonscalar_data_ranges
protectedvirtual

This functions returns information about how the individual components of output files that consist of more than one data set are to be interpreted.

It returns a list of index pairs and corresponding name and type indicating which components of the output are to be considered vector- or tensor-valued rather than just a collection of scalar data. The index pairs are inclusive; for example, if we have a Stokes problem in 2d with components (u,v,p), then the corresponding vector data range should be (0,1), and the returned list would consist of only a single element with a tuple such as (0,1,"velocity",component_is_part_of_vector).

Since some of the derived classes do not know about non-scalar data, this function has a default implementation that simply returns an empty string, meaning that all data is to be considered a collection of scalar fields.

Reimplemented in DataOut_DoFData< DoFHandler< dim >, DoFHandler< dim > ::dimension, DoFHandler< dim > ::space_dimension >, DataOut_DoFData< DoFHandler< dim >, DoFHandler< dim > ::dimension - 1, DoFHandler< dim > ::dimension >, and DataOut_DoFData< DoFHandler< dim >, DoFHandler< dim > ::dimension+1 >.

Definition at line 8008 of file data_out_base.cc.

◆ validate_dataset_names()

template<int dim, int spacedim>
void DataOutInterface< dim, spacedim >::validate_dataset_names
protected

Validate that the names of the datasets returned by get_dataset_names() and get_nonscalar_data_ranges() are valid. This currently consists of checking that names are not used more than once. If an invalid state is encountered, an Assert() will be triggered in debug mode.

Definition at line 8020 of file data_out_base.cc.

◆ read()

template<int dim, int spacedim>
void DataOutReader< dim, spacedim >::read ( std::istream &  in)

Read a sequence of patches as written previously by DataOutBase::write_deal_II_intermediate and store them in the present object. This overwrites any previous content.

Definition at line 8076 of file data_out_base.cc.

◆ merge()

template<int dim, int spacedim>
void DataOutReader< dim, spacedim >::merge ( const DataOutReader< dim, spacedim > &  other)

This function can be used to merge the patches read by the other object into the patches that this present object stores. This is sometimes handy if one has, for example, a domain decomposition algorithm where each block is represented by a DoFHandler of its own, but one wants to output the solution on all the blocks at the same time. Alternatively, it may also be used for parallel programs, where each process only generates output for its share of the cells, even if all processes can see all cells.

For this to work, the input files for the present object and the given argument need to have the same number of output vectors, and they need to use the same number of subdivisions per patch. The output will probably look rather funny if patches in both objects overlap in space.

If you call read() for this object after merging in patches, the previous state is overwritten, and the merged-in patches are lost.

This function will fail if either this or the other object did not yet set up any patches.

Definition at line 8187 of file data_out_base.cc.

◆ ExcIncompatibleDatasetNames() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DataOutReader< dim, spacedim >::ExcIncompatibleDatasetNames ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are trying to merge two sets of patches for which the " "declared names of the variables do not match."

◆ ExcIncompatiblePatchLists() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DataOutReader< dim, spacedim >::ExcIncompatiblePatchLists ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are trying to merge two sets of patches for which the " "number of subdivisions or the number of vector components " "do not match."

◆ ExcIncompatibleDimensions()

template<int dim, int spacedim = dim>
static ::ExceptionBase& DataOutReader< dim, spacedim >::ExcIncompatibleDimensions ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Either the dimensions <" << arg1 << "> and <" << arg2 << "> or the space dimensions <" << arg3 << "> and <" << arg4 << "> do not match!"

◆ get_patches() [2/2]

template<int dim, int spacedim>
const std::vector< typename::DataOutBase::Patch< dim, spacedim > > & DataOutReader< dim, spacedim >::get_patches
overrideprotectedvirtual

This is the function through which this class propagates preprocessed data in the form of Patch structures (declared in the base class DataOutBase) to the actual output function.

It returns the patches as read the last time a stream was given to the read() function.

Definition at line 8249 of file data_out_base.cc.

◆ get_dataset_names() [2/2]

template<int dim, int spacedim>
std::vector< std::string > DataOutReader< dim, spacedim >::get_dataset_names
overrideprotectedvirtual

Abstract virtual function through which the names of data sets are obtained by the output functions of the base class.

Return the names of the variables as read the last time we read a file.

Definition at line 8258 of file data_out_base.cc.

◆ get_nonscalar_data_ranges() [2/2]

template<int dim, int spacedim>
std::vector< std::tuple< unsigned int, unsigned int, std::string, DataComponentInterpretation::DataComponentInterpretation > > DataOutReader< dim, spacedim >::get_nonscalar_data_ranges
overrideprotectedvirtual

This functions returns information about how the individual components of output files that consist of more than one data set are to be interpreted.

It returns a list of index pairs and corresponding name indicating which components of the output are to be considered vector-valued rather than just a collection of scalar data. The index pairs are inclusive; for example, if we have a Stokes problem in 2d with components (u,v,p), then the corresponding vector data range should be (0,1), and the returned list would consist of only a single element with a tuple such as (0,1,"velocity").

Since some of the derived classes do not know about vector data, this function has a default implementation that simply returns an empty string, meaning that all data is to be considered a collection of scalar fields.

Definition at line 8271 of file data_out_base.cc.

◆ XDMFEntry() [1/4]

XDMFEntry::XDMFEntry ( )

Default constructor that creates an invalid object.

Definition at line 8280 of file data_out_base.cc.

◆ XDMFEntry() [2/4]

XDMFEntry::XDMFEntry ( const std::string &  filename,
const double  time,
const unsigned int  nodes,
const unsigned int  cells,
const unsigned int  dim 
)

Simplified constructor that calls the complete constructor for cases where solution_filename == mesh_filename, and dim==spacedim.

Definition at line 8293 of file data_out_base.cc.

◆ XDMFEntry() [3/4]

XDMFEntry::XDMFEntry ( const std::string &  mesh_filename,
const std::string &  solution_filename,
const double  time,
const unsigned int  nodes,
const unsigned int  cells,
const unsigned int  dim 
)

Simplified constructor that calls the complete constructor for cases where dim==spacedim.

Definition at line 8303 of file data_out_base.cc.

◆ XDMFEntry() [4/4]

XDMFEntry::XDMFEntry ( const std::string &  mesh_filename,
const std::string &  solution_filename,
const double  time,
const unsigned int  nodes,
const unsigned int  cells,
const unsigned int  dim,
const unsigned int  spacedim 
)

Constructor that sets all members to provided parameters.

Definition at line 8314 of file data_out_base.cc.

◆ add_attribute()

void XDMFEntry::add_attribute ( const std::string &  attr_name,
const unsigned int  dimension 
)

Record an attribute and associated dimensionality.

Definition at line 8334 of file data_out_base.cc.

◆ serialize() [1/7]

template<class Archive >
void XDMFEntry::serialize ( Archive &  ar,
const unsigned int   
)
inline

Read or write the data of this object for serialization

Definition at line 3375 of file data_out_base.h.

◆ get_xdmf_content()

std::string XDMFEntry::get_xdmf_content ( const unsigned int  indent_level) const

Get the XDMF content associated with this entry. If the entry is not valid, this returns an empty string.

Definition at line 8360 of file data_out_base.cc.

◆ operator<<() [1/4]

template<int dim, int spacedim>
std::ostream & DataOutBase::operator<< ( std::ostream &  out,
const Patch< dim, spacedim > &  patch 
)

Output operator for an object of type DataOutBase::Patch. This operator dumps the intermediate graphics format represented by the patch data structure. It may later be converted into regular formats for a number of graphics programs.

Author
Wolfgang Bangerth, 2005

Definition at line 8443 of file data_out_base.cc.

◆ operator>>() [1/2]

template<int dim, int spacedim>
std::istream & DataOutBase::operator>> ( std::istream &  in,
Patch< dim, spacedim > &  patch 
)

Input operator for an object of type DataOutBase::Patch. This operator reads the intermediate graphics format represented by the patch data structure, using the format in which it was written using the operator<<.

Author
Wolfgang Bangerth, 2005

Definition at line 8475 of file data_out_base.cc.

◆ ExcInvalidTensorIndex()

template<int order, int dim, int spacedim, typename Number = double>
static ::ExceptionBase& DerivativeForm< order, dim, spacedim, Number >::ExcInvalidTensorIndex ( int  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "Invalid DerivativeForm index " << arg1

◆ ExcDivideByZero()

static ::ExceptionBase& StandardExceptions::ExcDivideByZero ( )
static

Exception denoting a division by zero.

Note
The message that will be printed by this exception reads:
"A piece of code is attempting a division by zero. This is " "likely going to lead to results that make no sense."

◆ ExcNumberNotFinite()

static ::ExceptionBase& StandardExceptions::ExcNumberNotFinite ( std::complex< double arg1)
static

Exception raised if a number is not finite.

This exception should be used to catch infinite or not a number results of arithmetic operations that do not result from a division by zero (use ExcDivideByZero for those).

The exception uses std::complex as its argument to ensure that we can use it for all scalar arguments (real or complex-valued).

Note
The message that will be printed by this exception reads:
<< "In a significant number of places, deal.II checks that some intermediate " << "value is a finite number (as opposed to plus or minus infinity, or " << "NaN/Not a Number). In the current function, we encountered a number " << "that is not finite (its value is " << arg1 << " and therefore " << "violates the current assertion).\n\n" << "This may be due to the fact that some operation in this function " << "created such a value, or because one of the arguments you passed " << "to the function already had this value from some previous " << "operation. In the latter case, this function only triggered the " << "error but may not actually be responsible for the computation of " << "the number that is not finite.\n\n" << "There are two common cases where this situation happens. First, your " << "code (or something in deal.II) divides by zero in a place where this " << "should not happen. Or, you are trying to solve a linear system " << "with an unsuitable solver (such as an indefinite or non-symmetric " << "linear system using a Conjugate Gradient solver); such attempts " << "oftentimes yield an operation somewhere that tries to divide " << "by zero or take the square root of a negative value.\n\n" << "In any case, when trying to find the source of the error, " << "recall that the location where you are getting this error is " << "simply the first place in the program where there is a check " << "that a number (e.g., an element of a solution vector) is in fact " << "finite, but that the actual error that computed the number " << "may have happened far earlier. To find this location, you " << "may want to add checks for finiteness in places of your " << "program visited before the place where this error is produced. " << "One way to check for finiteness is to use the 'AssertIsFinite' " << "macro."

◆ ExcOutOfMemory()

static ::ExceptionBase& StandardExceptions::ExcOutOfMemory ( std::size_t  arg1)
static

Trying to allocate a new object failed due to lack of free memory.

Note
The message that will be printed by this exception reads:
"Your program tried to allocate some memory but this " "allocation failed. Typically, this either means that " "you simply do not have enough memory in your system, " "or that you are (erroneously) trying to allocate " "a chunk of memory that is simply beyond all reasonable " "size, for example because the size of the object has " "been computed incorrectly." "\n\n" "In the current case, the request was for " << arg1 << " bytes."

◆ ExcMemoryLeak()

static ::ExceptionBase& StandardExceptions::ExcMemoryLeak ( int  arg1)
static

A memory handler reached a point where all allocated objects should have been released. Since this exception is thrown, some were still allocated.

Note
The message that will be printed by this exception reads:
<< "Destroying memory handler while " << arg1 << " objects are still allocated."

◆ ExcIO()

static ::ExceptionBase& StandardExceptions::ExcIO ( )
static

An error occurred reading or writing a file.

Note
The message that will be printed by this exception reads:
"An input/output error has occurred. There are a number of " "reasons why this may be happening, both for reading and " "writing operations." "\n\n" "If this happens during an operation that tries to read " "data: First, you may be " "trying to read from a file that doesn't exist or that is " "not readable given its file permissions. Second, deal.II " "uses this error at times if it tries to " "read information from a file but where the information " "in the file does not correspond to the expected format. " "An example would be a truncated file, or a mesh file " "that contains not only sections that describe the " "vertices and cells, but also sections for additional " "data that deal.II does not understand." "\n\n" "If this happens during an operation that tries to write " "data: you may be trying to write to a file to which file " "or directory permissions do not allow you to write. A " "typical example is where you specify an output file in " "a directory that does not exist."

◆ ExcFileNotOpen()

static ::ExceptionBase& StandardExceptions::ExcFileNotOpen ( std::string  arg1)
static

An error occurred opening the named file.

The constructor takes a single argument of type std::string naming the file.

Note
The message that will be printed by this exception reads:
<< "Could not open file " << arg1 << "."

◆ ExcNotImplemented()

static ::ExceptionBase& StandardExceptions::ExcNotImplemented ( )
static

Exception denoting a part of the library or application program that has not yet been implemented. In many cases, this only indicates that there wasn't much need for something yet, not that this is difficult to implement. It is therefore quite worth the effort to take a look at the corresponding place and see whether it can be implemented without too much effort.

Note
The message that will be printed by this exception reads:
"You are trying to use functionality in deal.II that is " "currently not implemented. In many cases, this indicates " "that there simply didn't appear much of a need for it, or " "that the author of the original code did not have the " "time to implement a particular case. If you hit this " "exception, it is therefore worth the time to look into " "the code to find out whether you may be able to " "implement the missing functionality. If you do, please " "consider providing a patch to the deal.II development " "sources (see the deal.II website on how to contribute)."

◆ ExcInternalError()

static ::ExceptionBase& StandardExceptions::ExcInternalError ( )
static

This exception usually indicates that some condition which the programmer thinks must be satisfied at a certain point in an algorithm, is not fulfilled. This might be due to some programming error above, due to changes to the algorithm that did not preserve this assertion, or due to assumptions the programmer made that are not valid at all (i.e. the exception is thrown although there is no error here). Within the library, this exception is most often used when we write some kind of complicated algorithm and are not yet sure whether we got it right; we then put in assertions after each part of the algorithm that check for some conditions that should hold there, and throw an exception if they do not.

We usually leave in these assertions even after we are confident that the implementation is correct, since if someone later changes or extends the algorithm, these exceptions will indicate to them if they violate assumptions that are used later in the algorithm. Furthermore, it sometimes happens that an algorithm does not work in very rare corner cases. These cases will then be trapped sooner or later by the exception, so that the algorithm can then be fixed for these cases as well.

Note
The message that will be printed by this exception reads:
"This exception -- which is used in many places in the " "library -- usually indicates that some condition which " "the author of the code thought must be satisfied at a " "certain point in an algorithm, is not fulfilled. An " "example would be that the first part of an algorithm " "sorts elements of an array in ascending order, and " "a second part of the algorithm later encounters an " "element that is not larger than the previous one." "\n\n" "There is usually not very much you can do if you " "encounter such an exception since it indicates an error " "in deal.II, not in your own program. Try to come up with " "the smallest possible program that still demonstrates " "the error and contact the deal.II mailing lists with it " "to obtain help."

◆ ExcPureFunctionCalled()

static ::ExceptionBase& StandardExceptions::ExcPureFunctionCalled ( )
static

This exception is used in functions that may not be called (i.e. in pure functions) but could not be declared pure since the class is intended to be used anyway, even though the respective function may only be called if a derived class is used.

Note
The message that will be printed by this exception reads:
"You (or a place in the library) are trying to call a " "function that is declared as a virtual function in a " "base class but that has not been overridden in your " "derived class." "\n\n" "This exception happens in cases where the base class " "cannot provide a useful default implementation for " "the virtual function, but where we also do not want " "to mark the function as abstract (i.e., with '=0' at the end) " "because the function is not essential to the class in many " "contexts. In cases like this, the base class provides " "a dummy implementation that makes the compiler happy, but " "that then throws the current exception." "\n\n" "A concrete example would be the 'Function' class. It declares " "the existence of 'value()' and 'gradient()' member functions, " "and both are marked as 'virtual'. Derived classes have to " "override these functions for the values and gradients of a " "particular function. On the other hand, not every function " "has a gradient, and even for those that do, not every program " "actually needs to evaluate it. Consequently, there is no " "*requirement* that a derived class actually override the " "'gradient()' function (as there would be had it been marked " "as abstract). But, since the base class cannot know how to " "compute the gradient, if a derived class does not override " "the 'gradient()' function and it is called anyway, then the " "default implementation in the base class will simply throw " "an exception." "\n\n" "The exception you see is what happens in cases such as the " "one just illustrated. To fix the problem, you need to " "investigate whether the function being called should indeed have " "been called; if the answer is 'yes', then you need to " "implement the missing override in your class."

◆ ExcNotInitialized()

static ::ExceptionBase& StandardExceptions::ExcNotInitialized ( )
static

This exception is used if some object is found uninitialized.

◆ ExcInvalidState() [1/2]

static ::ExceptionBase& StandardExceptions::ExcInvalidState ( )
static

The object is in a state not suitable for this operation.

◆ ExcImpossibleInDim()

static ::ExceptionBase& StandardExceptions::ExcImpossibleInDim ( int  arg1)
static

This exception is raised if a functionality is not possible in the given dimension. Mostly used to throw function calls in 1d.

The constructor takes a single int, denoting the dimension.

Note
The message that will be printed by this exception reads:
<< "You are trying to execute functionality that is " << "impossible in " << arg1 << "d or simply does not make any sense."

◆ ExcImpossibleInDimSpacedim()

static ::ExceptionBase& StandardExceptions::ExcImpossibleInDimSpacedim ( int  arg1,
int  arg2 
)
static

This exception is raised if a functionality is not possible in the given combination of dimension and space-dimension.

The constructor takes two int, denoting the dimension and the space dimension.

Note
The message that will be printed by this exception reads:
<< "You are trying to execute functionality that is " << "impossible in dimensions <" << arg1 << "," << arg2 << "> or simply does not make any sense."

◆ ExcZero()

static ::ExceptionBase& StandardExceptions::ExcZero ( )
static

A number is zero, but it should not be here.

Note
The message that will be printed by this exception reads:
"In a check in the code, deal.II encountered a zero in " "a place where this does not make sense. See the condition " "that was being checked and that is printed further up " "in the error message to get more information on what " "the erroneous zero corresponds to."

◆ ExcEmptyObject() [1/2]

static ::ExceptionBase& StandardExceptions::ExcEmptyObject ( )
static

The object should have been filled with something before this member function is called.

Note
The message that will be printed by this exception reads:
"The object you are trying to access is empty but it makes " "no sense to attempt the operation you are trying on an " "empty object."

◆ ExcDimensionMismatch()

static ::ExceptionBase& StandardExceptions::ExcDimensionMismatch ( std::size_t  arg1,
std::size_t  arg2 
)
static

This exception is raised whenever the sizes of two objects were assumed to be equal, but were not.

Parameters to the constructor are the first and second size, both of type int.

Note
The message that will be printed by this exception reads:
<< "Dimension " << arg1 << " not equal to " << arg2 << "."

◆ ExcDimensionMismatch2()

static ::ExceptionBase& StandardExceptions::ExcDimensionMismatch2 ( int  arg1,
int  arg2,
int  arg3 
)
static

The first dimension should be either equal to the second or the third, but it is neither.

Note
The message that will be printed by this exception reads:
<< "Dimension " << arg1 << " neither equal to " << arg2 << " nor to " << arg3 << "."

◆ ExcIndexRange() [1/2]

static ::ExceptionBase& StandardExceptions::ExcIndexRange ( int  arg1,
int  arg2,
int  arg3 
)
static

This exception indicates that an index is not within the expected range. For example, it may be that you are trying to access an element of a vector which does not exist.

The constructor takes three int arguments, namely

  1. the violating index
  2. the lower bound
  3. the upper bound plus one
Note
The message that will be printed by this exception reads:
<< "Index " << arg1 << " is not in the half-open range [" << arg2 << "," << arg3 << ")." << (arg2 == arg3 ? " In the current case, this half-open range is in fact empty, " "suggesting that you are accessing an element of an empty " "collection such as a vector that has not been set to the " "correct size." : "")

◆ ExcIndexRangeType()

template<typename T >
static ::ExceptionBase& StandardExceptions::ExcIndexRangeType ( arg1,
arg2,
arg3 
)
static

This exception indicates that an index is not within the expected range. For example, it may be that you are trying to access an element of a vector which does not exist.

The constructor takes three arguments, namely

  1. the violating index
  2. the lower bound
  3. the upper bound plus one

This generic exception differs from ExcIndexRange by allowing to specify the type of indices.

Note
The message that will be printed by this exception reads:
<< "Index " << arg1 << " is not in the half-open range [" << arg2 << "," << arg3 << ")." << (arg2 == arg3 ? " In the current case, this half-open range is in fact empty, " "suggesting that you are accessing an element of an empty " "collection such as a vector that has not been set to the " "correct size." : "")

◆ ExcLowerRange()

static ::ExceptionBase& StandardExceptions::ExcLowerRange ( int  arg1,
int  arg2 
)
static

A number is too small.

Note
The message that will be printed by this exception reads:
<< "Number " << arg1 << " must be larger than or equal " << arg2 << "."

◆ ExcLowerRangeType()

template<typename T >
static ::ExceptionBase& StandardExceptions::ExcLowerRangeType ( arg1,
arg2 
)
static

A generic exception definition for the ExcLowerRange above.

Note
The message that will be printed by this exception reads:
<< "Number " << arg1 << " must be larger than or equal " << arg2 << "."

◆ ExcNotMultiple()

static ::ExceptionBase& StandardExceptions::ExcNotMultiple ( int  arg1,
int  arg2 
)
static

This exception indicates that the first argument should be an integer multiple of the second, but is not.

Note
The message that will be printed by this exception reads:
<< "Division " << arg1 << " by " << arg2 << " has remainder different from zero."

◆ ExcInvalidIterator()

static ::ExceptionBase& StandardExceptions::ExcInvalidIterator ( )
static

This exception is thrown if the iterator you access has corrupted data. It might for instance be, that the container it refers does not have an entry at the point the iterator refers.

Typically, this will be an internal error of deal.II, because the increment and decrement operators should never yield an invalid iterator.

Note
The message that will be printed by this exception reads:
"You are trying to use an iterator, but the iterator is " "in an invalid state. This may indicate that the iterator " "object has not been initialized, or that it has been " "moved beyond the end of the range of valid elements."

◆ ExcIteratorPastEnd()

static ::ExceptionBase& StandardExceptions::ExcIteratorPastEnd ( )
static

This exception is thrown if the iterator you incremented or decremented was already at its final state.

Note
The message that will be printed by this exception reads:
"You are trying to use an iterator, but the iterator is " "pointing past the end of the range of valid elements. " "It is not valid to dereference the iterator in this " "case."

◆ ExcMessage()

static ::ExceptionBase& StandardExceptions::ExcMessage ( std::string  arg1)
static

This exception works around a design flaw in the DeclException0 macro: exceptions declared through DeclException0 do not allow one to specify a message that is displayed when the exception is raised, as opposed to the other exceptions which allow to show a text along with the given parameters.

When throwing this exception, you can give a message as a std::string as argument to the exception that is then displayed. The argument can, of course, be constructed at run-time, for example including the name of a file that can't be opened, or any other text you may want to assemble from different pieces.

Note
The message that will be printed by this exception reads:
<< arg1

◆ ExcGhostsPresent()

static ::ExceptionBase& StandardExceptions::ExcGhostsPresent ( )
static

Parallel vectors with ghost elements are read-only vectors.

Note
The message that will be printed by this exception reads:
"You are trying an operation on a vector that is only " "allowed if the vector has no ghost elements, but the " "vector you are operating on does have ghost elements. " "Specifically, vectors with ghost elements are read-only " "and cannot appear in operations that write into these " "vectors." "\n\n" "See the glossary entry on 'Ghosted vectors' for more " "information."

◆ ExcScalarAssignmentOnlyForZeroValue()

static ::ExceptionBase& StandardExceptions::ExcScalarAssignmentOnlyForZeroValue ( )
static

Some of our numerical classes allow for setting all entries to zero using the assignment operator =.

In many cases, this assignment operator makes sense only for the argument zero. In other cases, this exception is thrown.

Note
The message that will be printed by this exception reads:
"You are trying an operation of the form 'vector=s' with " "a nonzero scalar value 's'. However, such assignments " "are only allowed if the right hand side is zero."

◆ ExcNeedsLAPACK()

static ::ExceptionBase& StandardExceptions::ExcNeedsLAPACK ( )
static

This function requires support for the LAPACK library.

Note
The message that will be printed by this exception reads:
"You are attempting to use functionality that is only available " "if deal.II was configured to use LAPACK, but cmake did not " "find a valid LAPACK library."

◆ ExcNeedsMPI()

static ::ExceptionBase& StandardExceptions::ExcNeedsMPI ( )
static

This function requires support for the MPI library.

Note
The message that will be printed by this exception reads:
"You are attempting to use functionality that is only available " "if deal.II was configured to use MPI."

◆ ExcNeedsNetCDF()

static ::ExceptionBase& StandardExceptions::ExcNeedsNetCDF ( )
static

This function requires support for the NetCDF library.

Note
The message that will be printed by this exception reads:
"You are attempting to use functionality that is only available " "if deal.II was configured to use NetCDF, but cmake did not " "find a valid NetCDF library."

◆ ExcNeedsFunctionparser()

static ::ExceptionBase& StandardExceptions::ExcNeedsFunctionparser ( )
static

This function requires support for the FunctionParser library.

Note
The message that will be printed by this exception reads:
"You are attempting to use functionality that is only available " "if deal.II was configured to use the function parser which " "relies on the muparser library, but cmake did not " "find a valid muparser library on your system and also did " "not choose the one that comes bundled with deal.II."

◆ ExcNeedsAssimp()

static ::ExceptionBase& StandardExceptions::ExcNeedsAssimp ( )
static

This function requires support for the Assimp library.

Note
The message that will be printed by this exception reads:
"You are attempting to use functionality that is only available " "if deal.II was configured to use Assimp, but cmake did not " "find a valid Assimp library."

◆ ExcCudaError()

static ::ExceptionBase& StandardExceptions::ExcCudaError ( const char *  arg1)
static

This exception is raised if an error happened in a CUDA kernel.

The constructor takes a single char*, the output of cudaGetErrorString.

Note
The message that will be printed by this exception reads:
<< arg1

◆ ExcCusparseError()

static ::ExceptionBase& StandardExceptions::ExcCusparseError ( std::string  arg1)
static

This exception is raised if an error happened in a cuSPARSE function.

Note
The message that will be printed by this exception reads:
<< "There was an error in a cuSPARSE function: " << arg1

◆ ExcCSplineEmpty()

static ::ExceptionBase& Functions::ExcCSplineEmpty ( int  arg1)
static
Note
The message that will be printed by this exception reads:
<< "Interpolation points vector size can not be <" << arg1 << ">."

◆ ExcCSplineSizeMismatch()

static ::ExceptionBase& Functions::ExcCSplineSizeMismatch ( int  arg1,
int  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "The size of interpolation points <" << arg1 << "> is different from the size of interpolation values <" << arg2 << ">."

◆ ExcCSplineOrder()

static ::ExceptionBase& Functions::ExcCSplineOrder ( int  arg1,
double  arg2,
double  arg3 
)
static
Note
The message that will be printed by this exception reads:
<< "The input interpolation points are not strictly ordered : " << std::endl << "x[" << arg1 << "] = " << arg2 << " >= x[" << (arg1 + 1) << "] = " << arg3 << "."

◆ ExcCSplineRange()

static ::ExceptionBase& Functions::ExcCSplineRange ( double  arg1,
double  arg2,
double  arg3 
)
static
Note
The message that will be printed by this exception reads:
<< "Spline function can not be evaluated outside of the interpolation range: " << std::endl << arg1 << " is not in [" << arg2 << ";" << arg3 << "]."

◆ ExcParseError() [1/2]

template<int dim>
static ::ExceptionBase& FunctionParser< dim >::ExcParseError ( int  arg1,
std::string  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "Parsing Error at Column " << arg1 << ". The parser said: " << arg2

◆ ExcInvalidExpressionSize() [1/2]

template<int dim>
static ::ExceptionBase& FunctionParser< dim >::ExcInvalidExpressionSize ( int  arg1,
int  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "The number of components (" << arg1 << ") is not equal to the number of expressions (" << arg2 << ")."

◆ init_muparser() [1/2]

template<int dim>
void FunctionParser< dim >::init_muparser
private

Initialize fp and vars on the current thread. This function may only be called once per thread. A thread can test whether the function has already been called by testing whether 'fp.get().size()==0' (not initialized) or >0 (already initialized).

Definition at line 137 of file function_parser.cc.

◆ ExcInvalidRefinementCase()

template<int dim>
static ::ExceptionBase& RefinementCase< dim >::ExcInvalidRefinementCase ( int  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The refinement flags given (" << arg1 << ") contain set bits that do not " << "make sense for the space dimension of the object to which they are applied."

◆ ExcInvalidSubfaceCase()

template<int dim>
static ::ExceptionBase& internal::SubfaceCase< dim >::ExcInvalidSubfaceCase ( int  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The subface case given (" << arg1 << ") does not make sense " << "for the space dimension of the object to which they are applied."

◆ ExcInvalidCoordinate()

template<int dim>
static ::ExceptionBase& GeometryInfo< dim >::ExcInvalidCoordinate ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The coordinates must satisfy 0 <= x_i <= 1, " << "but here we have x_i=" << arg1

◆ ExcInvalidSubface()

template<int dim>
static ::ExceptionBase& GeometryInfo< dim >::ExcInvalidSubface ( int  arg1,
int  arg2,
int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "RefinementCase<dim> " << arg1 << ": face " << arg2 << " has no subface " << arg3

◆ ExcIndexNotPresent() [1/2]

static ::ExceptionBase& IndexSet::ExcIndexNotPresent ( size_type  arg1)
static
Note
The message that will be printed by this exception reads:
<< "The global index " << arg1 << " is not an element of this set."

◆ ExcEntryAlreadyExists() [1/2]

static ::ExceptionBase& ParameterHandler::ExcEntryAlreadyExists ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The following entry already exists: " << arg1 << "."

◆ ExcValueDoesNotMatchPattern()

static ::ExceptionBase& ParameterHandler::ExcValueDoesNotMatchPattern ( std::string  arg1,
std::string  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The string <" << arg1 << "> does not match the given pattern <" << arg2 << ">."

◆ ExcAlreadyAtTopLevel()

static ::ExceptionBase& ParameterHandler::ExcAlreadyAtTopLevel ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You can't leave a subsection if you are already at the top level " "of the subsection hierarchy."

◆ ExcEntryUndeclared()

static ::ExceptionBase& ParameterHandler::ExcEntryUndeclared ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You can't ask for entry <" << arg1 << "> you have not yet declared."

◆ ExcUnbalancedSubsections()

static ::ExceptionBase& ParameterHandler::ExcUnbalancedSubsections ( std::string  arg1,
std::string  arg2 
)
static

Exception for when there are an unequal number of 'subsection' and 'end' statements. The first argument is the name of the file and the second argument is a formatted list of the subsection path before and after entering the parser.

Note
The message that will be printed by this exception reads:
<< "There are unequal numbers of 'subsection' and 'end' " "statements in the parameter file <" << arg1 << ">." << (arg2.size() > 0 ? "\n" + arg2 : "")

◆ ExcNoSubsection()

static ::ExceptionBase& ParameterHandler::ExcNoSubsection ( int  arg1,
std::string  arg2,
std::string  arg3 
)
static

Exception for when, during parsing of a parameter file, the parser encounters a subsection in the file that was not previously declared.

Note
The message that will be printed by this exception reads:
<< "Line <" << arg1 << "> of file <" << arg2 << ": There is " "no such subsection to be entered: " << arg3

◆ ExcCannotParseLine()

static ::ExceptionBase& ParameterHandler::ExcCannotParseLine ( int  arg1,
std::string  arg2,
std::string  arg3 
)
static

General exception for a line that could not be parsed, taking, as arguments, the line number, file name, and a brief description of why the line cannot be parsed.

Note
The message that will be printed by this exception reads:
<< "Line <" << arg1 << "> of file <" << arg2 << ">: " << arg3

◆ ExcInvalidEntryForPattern()

static ::ExceptionBase& ParameterHandler::ExcInvalidEntryForPattern ( int  arg1,
std::string  arg2,
std::string  arg3,
std::string  arg4,
std::string  arg5 
)
static

Exception for an entry in a parameter file that does not match the provided pattern. The arguments are, in order, the line number, file name, entry value, entry name, and a description of the pattern.

Note
The message that will be printed by this exception reads:
<< "Line <" << arg1 << "> of file <" << arg2 << ">:\n" " The entry value \n" << " " << arg3 << '
' << " for the entry named\n" << " " << arg4 << '
' << " does not match the given pattern:\n" << " " << arg5

◆ ExcInvalidXMLParameterFile()

static ::ExceptionBase& ParameterHandler::ExcInvalidXMLParameterFile ( )
static

Exception for when an XML file cannot be read at all. This happens when there is no top-level XML element called "ParameterHandler" or when there are multiple top level elements.

Note
The message that will be printed by this exception reads:
"The provided file could not be parsed as a " "ParameterHandler description."

◆ ExcCannotOpenIncludeStatementFile()

static ::ExceptionBase& ParameterHandler::ExcCannotOpenIncludeStatementFile ( int  arg1,
std::string  arg2,
std::string  arg3 
)
static

Exception for when the file given in an include statement cannot be open. The arguments are, in order, the line number of the include statement, current parameter file name, and the name of the file intended for inclusion.

Note
The message that will be printed by this exception reads:
<< "Line <" << arg1 << "> of file <" << arg2 << ">: This line " "contains an 'include' or 'INCLUDE' statement, but the given " "file to include <" << arg3 << "> cannot be opened."

◆ get_current_path()

std::string ParameterHandler::get_current_path ( ) const
private

Return the string that identifies the current path into the property tree. This is only a path, i.e. it is not terminated by the path_separator character.

This function simply calls collate_path_string() with subsection_path as argument

Definition at line 358 of file parameter_handler.cc.

◆ get_current_full_path() [1/2]

std::string ParameterHandler::get_current_full_path ( const std::string &  name) const
private

Given the name of an entry as argument, the function computes a full path into the parameter tree using the current subsection.

Definition at line 366 of file parameter_handler.cc.

◆ get_current_full_path() [2/2]

std::string ParameterHandler::get_current_full_path ( const std::vector< std::string > &  sub_path,
const std::string &  name 
) const
private

This function computes a full path into the parameter tree given a path from the current subsection and the name of an entry.

Definition at line 380 of file parameter_handler.cc.

◆ scan_line()

void ParameterHandler::scan_line ( std::string  line,
const std::string &  input_filename,
const unsigned int  current_line_n,
const bool  skip_undefined 
)
private

Scan one line of input. input_filename and current_line_n are the name of the input file and the number of the line presently scanned (these are used in exception messages to show where parse errors occurred). This function will raise an exception if the line contains an undeclared subsection or entry, if the line's entry does not match its given pattern, or if the line could not be understood as a valid parameter file expression.

The function modifies its argument, but also takes it by value, so the caller's variable is not changed.

If skip_undefined is true, the parser will skip undefined sections and entries. This is useful for partially parsing a parameter file, for example to obtain only the spatial dimension of the problem. By default all entries and subsections are expected to be declared.

Definition at line 1802 of file parameter_handler.cc.

◆ recursively_print_parameters()

void ParameterHandler::recursively_print_parameters ( const boost::property_tree::ptree &  tree,
const std::vector< std::string > &  target_subsection_path,
const ParameterHandler::OutputStyle  style,
const unsigned int  indent_level,
std::ostream &  out 
) const
private

Print out the parameters of the subsection given by the target_subsection_path argument, as well as all subsections within it recursively. This function is called from the print_parameters() function, and is implemented for all style arguments other than XML and JSON (where we can output the entire set of parameters via BOOST functions). The indent_level argument indicates how many spaces the output should be indented, so that subsections properly nest inside the output of higher sections.

Definition at line 1367 of file parameter_handler.cc.

◆ ~UserClass()

virtual MultipleParameterLoop::UserClass::~UserClass ( )
virtualdefault

Destructor. It doesn't actually do anything, but is declared to force derived classes to have a virtual destructor.

◆ create_new()

virtual void MultipleParameterLoop::UserClass::create_new ( const unsigned int  run_no)
pure virtual

create_new must provide a clean object, either by creating a new one or by cleaning an old one.

◆ run()

virtual void MultipleParameterLoop::UserClass::run ( ParameterHandler prm)
pure virtual

Get the parameters and run any necessary action.

◆ MultipleParameterLoop()

MultipleParameterLoop::MultipleParameterLoop ( )

Constructor

Definition at line 2071 of file parameter_handler.cc.

◆ ~MultipleParameterLoop()

virtual MultipleParameterLoop::~MultipleParameterLoop ( )
overridevirtualdefault

Destructor. Declare this only to have a virtual destructor, which is safer as we have virtual functions. It actually does nothing spectacular.

◆ parse_input()

void MultipleParameterLoop::parse_input ( std::istream &  input,
const std::string &  filename = "input file",
const std::string &  last_line = "",
const bool  skip_undefined = false 
)
overridevirtual

Read input from a stream until the stream returns the eof condition or error. The second argument can be used to denote the name of the file (if that's what the input stream represents) we are reading from; this is only used when creating output for error messages.

If non-empty last_line is provided, the ParameterHandler object will stop parsing lines after encountering last_line . This is handy when adding extra data that shall be parsed manually.

If skip_undefined is true, the parameter handler will skip undefined sections and entries. This is useful for partially parsing a parameter file, for example to obtain only the spatial dimension of the problem. By default all entries and subsections are expected to be declared.

Note
This is the only overload of the three parse_input functions implemented by ParameterHandler overridden with new behavior by this class. This is because the other two parse_input functions just reformat their inputs and then call this version.

Reimplemented from ParameterHandler.

Definition at line 2078 of file parameter_handler.cc.

◆ loop()

void MultipleParameterLoop::loop ( MultipleParameterLoop::UserClass uc)

run the central loop.

Definition at line 2095 of file parameter_handler.cc.

◆ memory_consumption() [8/16]

std::size_t MultipleParameterLoop::memory_consumption ( ) const

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

Definition at line 2229 of file parameter_handler.cc.

◆ Entry() [1/4]

MultipleParameterLoop::Entry::Entry ( )
inline

Constructor

Definition at line 2200 of file parameter_handler.h.

◆ Entry() [2/4]

MultipleParameterLoop::Entry::Entry ( const std::vector< std::string > &  Path,
const std::string &  Name,
const std::string &  Value 
)

Construct an object with given subsection path, name and value. The splitting up into the different variants is done later by split_different_values.

Definition at line 2240 of file parameter_handler.cc.

◆ split_different_values()

void MultipleParameterLoop::Entry::split_different_values ( )

Split the entry value into the different branches.

Definition at line 2252 of file parameter_handler.cc.

◆ memory_consumption() [9/16]

std::size_t MultipleParameterLoop::Entry::memory_consumption ( ) const

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

Definition at line 2304 of file parameter_handler.cc.

◆ init_branches()

void MultipleParameterLoop::init_branches ( )
private

Initialize the different branches, i.e. construct the combinations.

Definition at line 2109 of file parameter_handler.cc.

◆ init_branches_current_section()

void MultipleParameterLoop::init_branches_current_section ( )
private

Traverse the section currently set by enter_subsection()/leave_subsection() and see which of the entries are variant or array entries. Then fill the multiple_choices variable using this information.

Definition at line 2150 of file parameter_handler.cc.

◆ fill_entry_values()

void MultipleParameterLoop::fill_entry_values ( const unsigned int  run_no)
private

Transfer the entry values for one run to the entry tree.

Definition at line 2181 of file parameter_handler.cc.

◆ ExcIndexNotPresent() [2/2]

static ::ExceptionBase& Utilities::MPI::Partitioner::ExcIndexNotPresent ( types::global_dof_index  arg1,
unsigned int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Global index " << arg1 << " neither owned nor ghost on proc " << arg2 << "."

◆ ExcGhostIndexArrayHasWrongSize()

static ::ExceptionBase& Utilities::MPI::Partitioner::ExcGhostIndexArrayHasWrongSize ( unsigned int  arg1,
unsigned int  arg2,
unsigned int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The size of the ghost index array (" << arg1 << ") must either equal the number of ghost in the " << "partitioner (" << arg2 << ") or be equal in size to a more comprehensive index" << "set which contains " << arg3 << " elements for this partitioner."

◆ ExcNoClass()

static ::ExceptionBase& PathSearch::ExcNoClass ( std::string  arg1)
static

This class was not registered in the path search mechanism.

Note
The message that will be printed by this exception reads:
<< "The class " << arg1 << " must be registered before referring it in PathSearch."

◆ ExcFileNotFound()

static ::ExceptionBase& PathSearch::ExcFileNotFound ( std::string  arg1,
std::string  arg2 
)
static

The PathSearch class could not find a file with this name in its path list.

Note
The message that will be printed by this exception reads:
<< "The file \"" << arg1 << "" was not found in the path for " << "files of class " << arg2 << "."

◆ ExcInvalidRange() [1/2]

static ::ExceptionBase& Patterns::List::ExcInvalidRange ( int  arg1,
int  arg2 
)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The values " << arg1 << " and " << arg2 << " do not form a valid range."

◆ Map() [1/2]

Patterns::Map::Map ( const PatternBase key_pattern,
const PatternBase value_pattern,
const unsigned int  min_elements = 0,
const unsigned int  max_elements = max_int_value,
const std::string &  separator = ",",
const std::string &  key_value_separator = ":" 
)

Constructor. Take the given parameter as the specification of valid elements of the list.

The four other arguments can be used to denote minimal and maximal allowable lengths of the list as well as the separators used to delimit pairs of the map and the symbol used to separate keys and values.

Definition at line 825 of file patterns.cc.

◆ Map() [2/2]

Patterns::Map::Map ( const Map other)

Copy constructor.

Definition at line 853 of file patterns.cc.

◆ match() [1/6]

bool Patterns::Map::match ( const std::string &  test_string) const
overridevirtual

Return true if the string is a comma-separated list of strings each of which match the pattern given to the constructor.

Implements Patterns::PatternBase.

Definition at line 865 of file patterns.cc.

◆ description() [1/7]

std::string Patterns::Map::description ( const OutputStyle  style = Machine) const
overridevirtual

Return a description of the pattern that valid strings are expected to match.

Implements Patterns::PatternBase.

Definition at line 895 of file patterns.cc.

◆ clone() [1/7]

std::unique_ptr< PatternBase > Patterns::Map::clone ( ) const
overridevirtual

Return a copy of the present object, which is newly allocated on the heap. Ownership of that object is transferred to the caller of this function.

Implements Patterns::PatternBase.

Definition at line 945 of file patterns.cc.

◆ create() [1/7]

std::unique_ptr< Map > Patterns::Map::create ( const std::string &  description)
static

Create a new object if the start of description matches description_init. Ownership of that object is transferred to the caller of this function.

Definition at line 969 of file patterns.cc.

◆ memory_consumption() [10/16]

std::size_t Patterns::Map::memory_consumption ( ) const
overridevirtual

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

Reimplemented from Patterns::PatternBase.

Definition at line 957 of file patterns.cc.

◆ get_key_pattern()

const PatternBase & Patterns::Map::get_key_pattern ( ) const

Return a reference to the key pattern.

Definition at line 1024 of file patterns.cc.

◆ get_value_pattern()

const PatternBase & Patterns::Map::get_value_pattern ( ) const

Return a reference to the value pattern.

Definition at line 1032 of file patterns.cc.

◆ get_separator() [1/2]

const std::string & Patterns::Map::get_separator ( ) const

Return the separator of the map entries.

Definition at line 1040 of file patterns.cc.

◆ get_key_value_separator()

const std::string & Patterns::Map::get_key_value_separator ( ) const

Return the key-value separator.

Definition at line 1047 of file patterns.cc.

◆ ExcInvalidRange() [2/2]

static ::ExceptionBase& Patterns::Map::ExcInvalidRange ( int  arg1,
int  arg2 
)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The values " << arg1 << " and " << arg2 << " do not form a valid range."

◆ Tuple() [1/7]

Patterns::Tuple::Tuple ( const std::vector< std::unique_ptr< PatternBase >> &  patterns,
const std::string &  separator = ":" 
)

Constructor. Use a vector of unique pointers to Patterns to construct the tuple.

Parameters
patternsThe pattern each object of the Tuple should match
separatorAn optional string used to delimit each element Constructor.

Definition at line 1057 of file patterns.cc.

◆ Tuple() [2/7]

Patterns::Tuple::Tuple ( const std::vector< std::unique_ptr< PatternBase >> &  patterns,
const char *  separator 
)

Constructor. Same as above, specialized for const char *. This is necessary to avoid compilers errors due to the variadic constructors provided below.

Definition at line 1072 of file patterns.cc.

◆ Tuple() [3/7]

template<class... PatternTypes>
Patterns::Tuple::Tuple ( const std::string &  separator,
const PatternTypes &...  patterns 
)

Constructor. Creates a Tuple from more than one class derived from PatternBase.

Parameters
separatorWhat separator to use.
patternsThe list of patterns to use

Definition at line 1434 of file patterns.h.

◆ Tuple() [4/7]

template<class... PatternTypes>
Patterns::Tuple::Tuple ( const char *  separator,
const PatternTypes &...  patterns 
)

Constructor. This is needed to allow users to specify directly the separator without using std::string(";").

Since we support a pure variadic templates version, without this specialization, the compiler will fail with cryptic errors.

Definition at line 1426 of file patterns.h.

◆ Tuple() [5/7]

template<typename... Patterns>
Patterns::Tuple::Tuple ( const Patterns &...  patterns)

Constructor. Same as above, using the default separator.

Parameters
patternsThe list of patterns to use

◆ Tuple() [6/7]

Patterns::Tuple::Tuple ( const Tuple other)

Copy constructor.

Definition at line 1079 of file patterns.cc.

◆ match() [2/6]

bool Patterns::Tuple::match ( const std::string &  test_string) const
overridevirtual

Return true if the string is a list of strings each of which matches the patterns given to the constructor.

Implements Patterns::PatternBase.

Definition at line 1090 of file patterns.cc.

◆ description() [2/7]

std::string Patterns::Tuple::description ( const OutputStyle  style = Machine) const
overridevirtual

Return a description of the pattern that valid strings are expected to match.

Definition at line 1109 of file patterns.cc.

◆ clone() [2/7]

std::unique_ptr< PatternBase > Patterns::Tuple::clone ( ) const
overridevirtual

Return a copy of the present object, which is newly allocated on the heap. Ownership of that object is transferred to the caller of this function.

Implements Patterns::PatternBase.

Definition at line 1159 of file patterns.cc.

◆ create() [2/7]

std::unique_ptr< Tuple > Patterns::Tuple::create ( const std::string &  description)
static

Create a new object if the start of description matches description_init. Ownership of that object is transferred to the caller of this function.

Definition at line 1175 of file patterns.cc.

◆ memory_consumption() [11/16]

std::size_t Patterns::Tuple::memory_consumption ( ) const
overridevirtual

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

Reimplemented from Patterns::PatternBase.

Definition at line 1166 of file patterns.cc.

◆ get_pattern()

const PatternBase & Patterns::Tuple::get_pattern ( const unsigned int  i) const

Return a reference to the i-th pattern in the tuple.

Definition at line 1223 of file patterns.cc.

◆ get_separator() [2/2]

const std::string & Patterns::Tuple::get_separator ( ) const

Return the separator of the tuple entries.

Definition at line 1231 of file patterns.cc.

◆ MultipleSelection()

Patterns::MultipleSelection::MultipleSelection ( const std::string &  seq)

Constructor. seq is a list of valid options separated by "|".

Definition at line 1241 of file patterns.cc.

◆ match() [3/6]

bool Patterns::MultipleSelection::match ( const std::string &  test_string) const
overridevirtual

Return true if the string is an element of the description list passed to the constructor.

Implements Patterns::PatternBase.

Definition at line 1256 of file patterns.cc.

◆ description() [3/7]

std::string Patterns::MultipleSelection::description ( const OutputStyle  style = Machine) const
overridevirtual

Return a description of the pattern that valid strings are expected to match. Here, this is the list of valid strings passed to the constructor.

Implements Patterns::PatternBase.

Definition at line 1319 of file patterns.cc.

◆ clone() [3/7]

std::unique_ptr< PatternBase > Patterns::MultipleSelection::clone ( ) const
overridevirtual

Return a copy of the present object, which is newly allocated on the heap. Ownership of that object is transferred to the caller of this function.

Implements Patterns::PatternBase.

Definition at line 1354 of file patterns.cc.

◆ create() [3/7]

std::unique_ptr< MultipleSelection > Patterns::MultipleSelection::create ( const std::string &  description)
static

Create a new object if the start of description matches description_init. Ownership of that object is transferred to the caller of this function.

Definition at line 1370 of file patterns.cc.

◆ memory_consumption() [12/16]

std::size_t Patterns::MultipleSelection::memory_consumption ( ) const
overridevirtual

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

Reimplemented from Patterns::PatternBase.

Definition at line 1361 of file patterns.cc.

◆ ExcCommasNotAllowed()

static ::ExceptionBase& Patterns::MultipleSelection::ExcCommasNotAllowed ( int  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "A comma was found at position " << arg1 << " of your input string, but commas are not allowed here."

◆ Bool()

Patterns::Bool::Bool ( )

Constructor.

Definition at line 1392 of file patterns.cc.

◆ description() [4/7]

std::string Patterns::Bool::description ( const OutputStyle  style = Machine) const
overridevirtual

Return a description of the pattern that valid strings are expected to match.

Definition at line 1399 of file patterns.cc.

◆ clone() [4/7]

std::unique_ptr< PatternBase > Patterns::Bool::clone ( ) const
overridevirtual

Return a copy of the present object, which is newly allocated on the heap. Ownership of that object is transferred to the caller of this function.

Reimplemented from Patterns::Selection.

Definition at line 1427 of file patterns.cc.

◆ create() [4/7]

std::unique_ptr< Bool > Patterns::Bool::create ( const std::string &  description)
static

Create a new object if the start of description matches description_init. Ownership of that object is transferred to the caller of this function.

Definition at line 1435 of file patterns.cc.

◆ Anything()

Patterns::Anything::Anything ( )
default

Constructor. (Allow for at least one non-virtual function in this class, as otherwise sometimes no virtual table is emitted.)

◆ match() [4/6]

bool Patterns::Anything::match ( const std::string &  test_string) const
overridevirtual

Return true if the string matches its constraints, i.e. always.

Implements Patterns::PatternBase.

Definition at line 1452 of file patterns.cc.

◆ description() [5/7]

std::string Patterns::Anything::description ( const OutputStyle  style = Machine) const
overridevirtual

Return a description of the pattern that valid strings are expected to match. Here, this is the string "[Anything]".

Implements Patterns::PatternBase.

Definition at line 1460 of file patterns.cc.

◆ clone() [5/7]

std::unique_ptr< PatternBase > Patterns::Anything::clone ( ) const
overridevirtual

Return a copy of the present object, which is newly allocated on the heap. Ownership of that object is transferred to the caller of this function.

Implements Patterns::PatternBase.

Definition at line 1488 of file patterns.cc.

◆ create() [5/7]

std::unique_ptr< Anything > Patterns::Anything::create ( const std::string &  description)
static

Create a new object if the start of description matches description_init. Ownership of that object is transferred to the caller of this function.

Definition at line 1496 of file patterns.cc.

◆ FileName()

Patterns::FileName::FileName ( const FileType  type = input)

Constructor. The type of the file can be specified by choosing the flag.

Definition at line 1511 of file patterns.cc.

◆ match() [5/6]

bool Patterns::FileName::match ( const std::string &  test_string) const
overridevirtual

Return true if the string matches its constraints, i.e. always.

Implements Patterns::PatternBase.

Definition at line 1518 of file patterns.cc.

◆ description() [6/7]

std::string Patterns::FileName::description ( const OutputStyle  style = Machine) const
overridevirtual

Return a description of the pattern that valid strings are expected to match. Here, this is the string "[Filename]".

Definition at line 1526 of file patterns.cc.

◆ clone() [6/7]

std::unique_ptr< PatternBase > Patterns::FileName::clone ( ) const
overridevirtual

Return a copy of the present object, which is newly allocated on the heap. Ownership of that object is transferred to the caller of this function.

Implements Patterns::PatternBase.

Definition at line 1562 of file patterns.cc.

◆ create() [6/7]

std::unique_ptr< FileName > Patterns::FileName::create ( const std::string &  description)
static

Create a new object if the start of description matches description_init. Ownership of that object is transferred to the caller of this function.

Definition at line 1570 of file patterns.cc.

◆ DirectoryName()

Patterns::DirectoryName::DirectoryName ( )
default

Constructor.

◆ match() [6/6]

bool Patterns::DirectoryName::match ( const std::string &  test_string) const
overridevirtual

Return true if the string matches its constraints, i.e. always.

Implements Patterns::PatternBase.

Definition at line 1602 of file patterns.cc.

◆ description() [7/7]

std::string Patterns::DirectoryName::description ( const OutputStyle  style = Machine) const
overridevirtual

Return a description of the pattern that valid strings are expected to match. Here, this is the string "[Filename]".

Implements Patterns::PatternBase.

Definition at line 1610 of file patterns.cc.

◆ clone() [7/7]

std::unique_ptr< PatternBase > Patterns::DirectoryName::clone ( ) const
overridevirtual

Return a copy of the present object, which is newly allocated on the heap. Ownership of that object is transferred to the caller of this function.

Implements Patterns::PatternBase.

Definition at line 1638 of file patterns.cc.

◆ create() [7/7]

std::unique_ptr< DirectoryName > Patterns::DirectoryName::create ( const std::string &  description)
static

Create a new object if the start of description matches description_init. Ownership of that object is transferred to the caller of this function.

Definition at line 1646 of file patterns.cc.

◆ to_pattern() [1/12]

template<class T , class Enable = void>
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< T, Enable >::to_pattern ( )
staticdelete

Return a std::unique_ptr to a Pattern that can be used to interpret a string as the type of the template argument, and the other way around.

While the current function (in the general Convert template) is deleted, it is implemented and available in the specializations of the Convert class template for particular kinds of template arguments T.

◆ to_string() [1/13]

template<class T , class Enable = void>
static std::string Patterns::Tools::Convert< T, Enable >::to_string ( const T &  s,
const std::unique_ptr< Patterns::PatternBase > &  p = Convert< T >::to_pattern() 
)
staticdelete

Return a string containing a textual version of the variable s. Use the pattern passed to perform the conversion, or create and use a default one.

While the current function (in the general Convert template) is deleted, it is implemented and available in the specializations of the Convert class template for particular kinds of template arguments T.

◆ to_value() [1/13]

template<class T , class Enable = void>
static T Patterns::Tools::Convert< T, Enable >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  p = Convert< T >::to_pattern() 
)
staticdelete

Convert a string to a value, using the given pattern. Use the pattern passed to perform the conversion, or create and use a default one.

While the current function (in the general Convert template) is deleted, it is implemented and available in the specializations of the Convert class template for particular kinds of template arguments T.

◆ to_string() [2/13]

template<typename T >
std::string Patterns::Tools::to_string ( const T &  t)

A utility function that simplifies the conversion to strings of arbitrarily complex types.

This function calls the method Convert<T>::to_string() with the default pattern. An example usage is the following:

auto t = std::make_tuple(1.0, std::make_pair(1, "ciao"));
std::cout << s; // will print "1 % 1 : ciao""

See the documentation of the class Patterns::Tools::Convert, and of the helper class Patterns::Tools::RankInfo for details on the way separators are selected when outputting STL container types.

Author
Luca Heltai, 2018

Definition at line 2360 of file patterns.h.

◆ to_value() [2/13]

template<typename T >
void Patterns::Tools::to_value ( const std::string &  s,
T &  t 
)

A utility function that simplifies the conversion from strings to arbitrary types.

This function calls the method Convert<T>::to_value() with the default pattern. An example usage is the following:

auto t = std::make_tuple(1.0, std::make_pair(1, "ciao"));
// replace the value of 't' by the parsed content of the string argument:
Patterns::Tools::to_value("2 % 3 : mondo", t);
std::cout << s; // will print "2 % 3 : mondo""

See the documentation of the class Patterns::Tools::Convert, and of the helper class Patterns::Tools::RankInfo for details on the separators you should use in your string patterns when converting from a string to a container type.

Notice that the current content of variable t is ignored. Its type is used to infer how to interpret the string. If the string is successfully parsed, then t will be set to the parsed content of s.

Author
Luca Heltai, 2018

Definition at line 2368 of file patterns.h.

◆ ExcNoMatch()

static ::ExceptionBase& Patterns::Tools::ExcNoMatch ( std::string  arg1,
std::string  arg2 
)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The string " << arg1 << " does not match the pattern \"" << arg2 << """

◆ to_pattern() [2/12]

template<class T >
template<typename Dummy = T>
static std::enable_if<std::is_same<Dummy, T>::value && std::is_same<T, bool>::value, std::unique_ptr<Patterns::PatternBase> >::type Patterns::Tools::Convert< T, typename std::enable_if< std::is_arithmetic< T >::value >::type >::to_pattern ( )
inlinestatic

Definition at line 1505 of file patterns.h.

◆ to_string() [3/13]

template<class T >
static std::string Patterns::Tools::Convert< T, typename std::enable_if< std::is_arithmetic< T >::value >::type >::to_string ( const T &  value,
const std::unique_ptr< Patterns::PatternBase > &  p = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1535 of file patterns.h.

◆ to_value() [3/13]

template<class T >
static T Patterns::Tools::Convert< T, typename std::enable_if< std::is_arithmetic< T >::value >::type >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  p = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1553 of file patterns.h.

◆ max_list_rank() [1/2]

template<class T >
constexpr int Patterns::Tools::internal::max_list_rank ( )
constexpr

Definition at line 1671 of file patterns.h.

◆ max_list_rank() [2/2]

template<class T1 , class T2 , class... Types>
constexpr int Patterns::Tools::internal::max_list_rank ( )
constexpr

Definition at line 1678 of file patterns.h.

◆ max_map_rank() [1/2]

template<class T >
constexpr int Patterns::Tools::internal::max_map_rank ( )
constexpr

Definition at line 1687 of file patterns.h.

◆ max_map_rank() [2/2]

template<class T1 , class T2 , class... Types>
constexpr int Patterns::Tools::internal::max_map_rank ( )
constexpr

Definition at line 1694 of file patterns.h.

◆ to_pattern() [3/12]

template<class T >
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< T, typename std::enable_if< is_list_compatible< T >::value >::type >::to_pattern ( )
inlinestatic

Definition at line 1786 of file patterns.h.

◆ to_string() [4/13]

template<class T >
static std::string Patterns::Tools::Convert< T, typename std::enable_if< is_list_compatible< T >::value >::type >::to_string ( const T &  t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1799 of file patterns.h.

◆ to_value() [4/13]

template<class T >
static T Patterns::Tools::Convert< T, typename std::enable_if< is_list_compatible< T >::value >::type >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1825 of file patterns.h.

◆ to_pattern() [4/12]

template<class T >
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< T, typename std::enable_if< is_map_compatible< T >::value >::type >::to_pattern ( )
inlinestatic

Definition at line 1854 of file patterns.h.

◆ to_string() [5/13]

template<class T >
static std::string Patterns::Tools::Convert< T, typename std::enable_if< is_map_compatible< T >::value >::type >::to_string ( const T &  t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1871 of file patterns.h.

◆ to_value() [5/13]

template<class T >
static T Patterns::Tools::Convert< T, typename std::enable_if< is_map_compatible< T >::value >::type >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1901 of file patterns.h.

◆ to_pattern() [5/12]

template<int rank, int dim, class Number >
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< Tensor< rank, dim, Number > >::to_pattern ( )
inlinestatic

Definition at line 1937 of file patterns.h.

◆ to_string() [6/13]

template<int rank, int dim, class Number >
static std::string Patterns::Tools::Convert< Tensor< rank, dim, Number > >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1950 of file patterns.h.

◆ to_value() [6/13]

template<int rank, int dim, class Number >
static T Patterns::Tools::Convert< Tensor< rank, dim, Number > >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 1975 of file patterns.h.

◆ to_pattern() [6/12]

template<int dim, class Number >
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< Point< dim, Number > >::to_pattern ( )
inlinestatic

Definition at line 2005 of file patterns.h.

◆ to_string() [7/13]

template<int dim, class Number >
static std::string Patterns::Tools::Convert< Point< dim, Number > >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2011 of file patterns.h.

◆ to_value() [7/13]

template<int dim, class Number >
static T Patterns::Tools::Convert< Point< dim, Number > >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2020 of file patterns.h.

◆ to_pattern() [7/12]

template<int dim>
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::to_pattern ( )
inlinestatic

Definition at line 2035 of file patterns.h.

◆ to_string() [8/13]

template<int dim>
static std::string Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2049 of file patterns.h.

◆ to_value() [8/13]

template<int dim>
static T Patterns::Tools::Convert< std::unique_ptr< FunctionParser< dim > > >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2071 of file patterns.h.

◆ to_pattern() [8/12]

static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< ComponentMask >::to_pattern ( )
inlinestatic

Definition at line 2101 of file patterns.h.

◆ to_string() [9/13]

static std::string Patterns::Tools::Convert< ComponentMask >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2107 of file patterns.h.

◆ to_value() [9/13]

static T Patterns::Tools::Convert< ComponentMask >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2119 of file patterns.h.

◆ to_pattern() [9/12]

template<class Number >
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< std::complex< Number > >::to_pattern ( )
inlinestatic

Definition at line 2135 of file patterns.h.

◆ to_string() [10/13]

template<class Number >
static std::string Patterns::Tools::Convert< std::complex< Number > >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2148 of file patterns.h.

◆ to_value() [10/13]

template<class Number >
static T Patterns::Tools::Convert< std::complex< Number > >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Convert a string to a value, using the given pattern, or a default one.

Definition at line 2171 of file patterns.h.

◆ to_pattern() [10/12]

static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< std::string >::to_pattern ( )
inlinestatic

Definition at line 2199 of file patterns.h.

◆ to_string() [11/13]

static std::string Patterns::Tools::Convert< std::string >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2205 of file patterns.h.

◆ to_value() [11/13]

static T Patterns::Tools::Convert< std::string >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2214 of file patterns.h.

◆ to_pattern() [11/12]

template<class Key , class Value >
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< std::pair< Key, Value > >::to_pattern ( )
inlinestatic

Definition at line 2230 of file patterns.h.

◆ to_string() [12/13]

template<class Key , class Value >
static std::string Patterns::Tools::Convert< std::pair< Key, Value > >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2241 of file patterns.h.

◆ to_value() [12/13]

template<class Key , class Value >
static T Patterns::Tools::Convert< std::pair< Key, Value > >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2252 of file patterns.h.

◆ to_pattern() [12/12]

template<class... Args>
static std::unique_ptr<Patterns::PatternBase> Patterns::Tools::Convert< std::tuple< Args... > >::to_pattern ( )
inlinestatic

Definition at line 2269 of file patterns.h.

◆ to_string() [13/13]

template<class... Args>
static std::string Patterns::Tools::Convert< std::tuple< Args... > >::to_string ( const T t,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2279 of file patterns.h.

◆ to_value() [13/13]

template<class... Args>
static T Patterns::Tools::Convert< std::tuple< Args... > >::to_value ( const std::string &  s,
const std::unique_ptr< Patterns::PatternBase > &  pattern = Convert<T>::to_pattern() 
)
inlinestatic

Definition at line 2297 of file patterns.h.

◆ to_string_internal_1()

template<class... Args>
template<std::size_t... U>
static std::array<std::string, std::tuple_size<T>::value> Patterns::Tools::Convert< std::tuple< Args... > >::to_string_internal_1 ( const T t,
const Patterns::Tuple pattern,
std_cxx14::index_sequence< U... >   
)
inlinestaticprivate

Definition at line 2316 of file patterns.h.

◆ to_string_internal_2()

template<class... Args>
static std::array<std::string, std::tuple_size<T>::value> Patterns::Tools::Convert< std::tuple< Args... > >::to_string_internal_2 ( const T t,
const Patterns::Tuple pattern 
)
inlinestaticprivate

Definition at line 2327 of file patterns.h.

◆ to_value_internal_1()

template<class... Args>
template<std::size_t... U>
static T Patterns::Tools::Convert< std::tuple< Args... > >::to_value_internal_1 ( const std::vector< std::string > &  s,
const Patterns::Tuple pattern,
std_cxx14::index_sequence< U... >   
)
inlinestaticprivate

Definition at line 2337 of file patterns.h.

◆ to_value_internal_2()

template<class... Args>
static T Patterns::Tools::Convert< std::tuple< Args... > >::to_value_internal_2 ( const std::vector< std::string > &  s,
const Patterns::Tuple pattern 
)
inlinestaticprivate

Definition at line 2347 of file patterns.h.

◆ ExcInvalidQuadratureFormula()

template<int dim>
static ::ExceptionBase& QIterated< dim >::ExcInvalidQuadratureFormula ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The quadrature formula you provided cannot be used " "as the basis for iteration."

◆ ExcCellDataTypeMismatch()

template<typename CellIteratorType , typename DataType >
static ::ExceptionBase& CellDataStorage< CellIteratorType, DataType >::ExcCellDataTypeMismatch ( )
staticprivate
Note
The message that will be printed by this exception reads:
"Cell data is being retrieved with a type which is different than the type used to initialize it"

◆ ExcTriangulationMismatch() [1/2]

template<typename CellIteratorType , typename DataType >
static ::ExceptionBase& CellDataStorage< CellIteratorType, DataType >::ExcTriangulationMismatch ( )
staticprivate
Note
The message that will be printed by this exception reads:
"The provided cell iterator does not belong to the triangulation that corresponds to the CellDataStorage object."

◆ ExcInvalidQGaussOrder()

template<int dim>
static ::ExceptionBase& QuadratureSelector< dim >::ExcInvalidQGaussOrder ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to generate a QGauss object with an invalid " << "number " << arg1 << " of quadrature points in each coordinate " << "direction. This number must be greater than or equal " << "to 1."

◆ ExcInvalidOrder()

template<int dim>
static ::ExceptionBase& QuadratureSelector< dim >::ExcInvalidOrder ( std::string  arg1,
unsigned int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to generate a " << arg1 << " object; no order is needed for objects of this kind, but " << arg2 << " was given as argument."

◆ ExcInvalidQuadrature()

template<int dim>
static ::ExceptionBase& QuadratureSelector< dim >::ExcInvalidQuadrature ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< arg1 << " is not a valid name for a quadrature rule."

◆ create_quadrature()

template<int dim>
Quadrature< dim > QuadratureSelector< dim >::create_quadrature ( const std::string &  s,
const unsigned int  order 
)
staticprivate

This static function creates a quadrature object according to the name given as a string, and the appropriate order (if the name is "gauss"). It is called from the constructor.

Definition at line 24 of file quadrature_selector.cc.

◆ ExcInUse()

static ::ExceptionBase& Subscriptor::ExcInUse ( int  arg1,
std::string  arg2,
std::string  arg3 
)
static

Exception: Object may not be deleted, since it is used.

Note
The message that will be printed by this exception reads:
<< "Object of class " << arg2 << " is still used by " << arg1 << " other objects." << "\n\n" << "(Additional information: " << arg3 << ")\n\n" << "See the entry in the Frequently Asked Questions of " << "deal.II (linked to from http://www.dealii.org/) for " << "a lot more information on what this error means and " << "how to fix programs in which it happens."

◆ ExcNoSubscriber()

static ::ExceptionBase& Subscriptor::ExcNoSubscriber ( std::string  arg1,
std::string  arg2 
)
static

A subscriber with the identification string given to Subscriptor::unsubscribe() did not subscribe to the object.

Note
The message that will be printed by this exception reads:
<< "No subscriber with identifier <" << arg2 << "> subscribes to this object of class " << arg1 << ". Consequently, it cannot be unsubscribed."

◆ serialize() [2/7]

template<class Archive >
void Subscriptor::serialize ( Archive &  ar,
const unsigned int  version 
)
inline

Read or write the data of this object to or from a stream for the purpose of serialization.

This function does not actually serialize any of the member variables of this class. The reason is that what this class stores is only who subscribes to this object, but who does so at the time of storing the contents of this object does not necessarily have anything to do with who subscribes to the object when it is restored. Consequently, we do not want to overwrite the subscribers at the time of restoring, and then there is no reason to write the subscribers out in the first place.

Definition at line 301 of file subscriptor.h.

◆ check_no_subscribers()

void Subscriptor::check_no_subscribers ( ) const
privatenoexcept

Check that there are no objects subscribing to this object. If this check passes then it is safe to destroy the current object. It this check fails then this function will either abort or print an error message to deallog (by using the AssertNothrow mechanism), but will not throw an exception.

Note
Since this function is just a consistency check it does nothing in release mode.
If this function is called when there is an uncaught exception then, rather than aborting, this function prints an error message to the standard error stream and returns.

Definition at line 52 of file subscriptor.cc.

◆ ExcIndexRange() [2/2]

template<int N, typename T , bool C, unsigned int P>
static ::ExceptionBase& internal::TableBaseAccessors::Accessor< N, T, C, P >::ExcIndexRange ( size_type  arg1,
size_type  arg2,
size_type  arg3 
)
static

Exception for range check. Do not use global exception since this way we can output which index is the wrong one.

Note
The message that will be printed by this exception reads:
<< "Index " << N - P + 1 << "has a value of " << arg1 << " but needs to be in the range [" << arg2 << "," << arg3 << "[."

◆ ExcColumnNotExistent()

static ::ExceptionBase& TableHandler::ExcColumnNotExistent ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Column <" << arg1 << "> does not exist."

◆ ExcSuperColumnNotExistent()

static ::ExceptionBase& TableHandler::ExcSuperColumnNotExistent ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Supercolumn <" << arg1 << "> does not exist."

◆ ExcColumnOrSuperColumnNotExistent()

static ::ExceptionBase& TableHandler::ExcColumnOrSuperColumnNotExistent ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Column or supercolumn <" << arg1 << "> does not exist."

◆ ExcWrongNumberOfDataEntries()

static ::ExceptionBase& TableHandler::ExcWrongNumberOfDataEntries ( std::string  arg1,
int  arg2,
std::string  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Column <" << arg1 << "> has " << arg2 << " rows, but Column <" << arg3 << "> has " << arg4 << " rows."

◆ ExcUndefinedTexFormat()

static ::ExceptionBase& TableHandler::ExcUndefinedTexFormat ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "<" << arg1 << "> is not a tex column format. Use " << "'l', 'c', or 'r' to indicate left, centered, or " << "right aligned text."

◆ Column() [1/2]

TableHandler::Column::Column ( )

Constructor needed by std::map.

Definition at line 147 of file table_handler.cc.

◆ Column() [2/2]

TableHandler::Column::Column ( const std::string &  tex_caption)

Constructor.

Definition at line 136 of file table_handler.cc.

◆ pad_column_below()

void TableHandler::Column::pad_column_below ( const unsigned int  length)

Pad this column with default constructed elements to the number of rows given by the argument.

Definition at line 159 of file table_handler.cc.

◆ save() [1/7]

template<class Archive >
void TableHandler::Column::save ( Archive &  ar,
const unsigned int  version 
) const

Write the data of this object to a stream for the purpose of serialization.

Definition at line 978 of file table_handler.h.

◆ load() [1/7]

template<class Archive >
void TableHandler::Column::load ( Archive &  ar,
const unsigned int  version 
)

Read the data of this object from a stream for the purpose of serialization.

Definition at line 987 of file table_handler.h.

◆ serialize() [3/7]

template<class Archive >
void TableHandler::Column::serialize ( Archive &  archive,
const unsigned int  version 
)

Write and read the data of this object from a stream for the purpose of serialization.

◆ invalidate_cache()

void TableHandler::Column::invalidate_cache ( )

Invalidates the string cache of all the entries and recomputes the maximum length max_length.

Definition at line 179 of file table_handler.cc.

◆ get_selected_columns()

void TableHandler::get_selected_columns ( std::vector< std::string > &  sel_columns) const
protected

Help function that gives a vector of the keys of all columns that are mentioned in column_order, where each supercolumn key is replaced by its subcolumn keys.

This function implicitly checks the consistency of the data. The result is returned in sel_columns.

Definition at line 775 of file table_handler.cc.

◆ n_rows()

unsigned int TableHandler::n_rows ( ) const
protected

Builtin function, that gives the number of rows in the table and that checks if the number of rows is equal in every column. This function is e.g. called before writing output.

Definition at line 754 of file table_handler.cc.

◆ ExcParseError() [2/2]

template<int rank, int dim, typename Number = double>
static ::ExceptionBase& TensorFunctionParser< rank, dim, Number >::ExcParseError ( int  arg1,
std::string  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "Parsing Error at Column " << arg1 << ". The parser said: " << arg2

◆ ExcInvalidExpressionSize() [2/2]

template<int rank, int dim, typename Number = double>
static ::ExceptionBase& TensorFunctionParser< rank, dim, Number >::ExcInvalidExpressionSize ( int  arg1,
int  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "The number of components (" << arg1 << ") is not equal to the number of expressions (" << arg2 << ")."

◆ init_muparser() [2/2]

template<int rank, int dim, typename Number >
void TensorFunctionParser< rank, dim, Number >::init_muparser
private

Initialize tfp and vars on the current thread. This function may only be called once per thread. A thread can test whether the function has already been called by testing whether 'tfp.get().size()==0' (not initialized) or >0 (already initialized).

Definition at line 146 of file tensor_function_parser.cc.

◆ ExcNoTask()

template<typename RT = void>
static ::ExceptionBase& Threads::Task< RT >::ExcNoTask ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The current object is not associated with a task that " "can be joined. It may have been detached, or you " "may have already joined it in the past."

◆ operator+=() [1/4]

template<typename RT = void>
TaskGroup& Threads::TaskGroup< RT >::operator+= ( const Task< RT > &  t)
inline

Add another task object to the collection.

Definition at line 1805 of file thread_management.h.

◆ size() [1/2]

template<typename RT = void>
std::size_t Threads::TaskGroup< RT >::size ( ) const
inline

Return how many tasks have been put into this group. This function does not distinguish how many of these tasks have already run and have finished, are still waiting to be scheduled to a CPU resource, or are currently running. Tasks that have been joined already are also still counted.

Definition at line 1820 of file thread_management.h.

◆ join_all()

template<typename RT = void>
void Threads::TaskGroup< RT >::join_all ( ) const
inline

Wait for all tasks in the collection to finish. It is not a problem if some of them have already been waited for, i.e. you may call this function more than once, and you can also add new task objects between subsequent calls to this function if you want.

Definition at line 1833 of file thread_management.h.

◆ ExcRequiresADNumberSpecialization()

static ::ExceptionBase& Differentiation::AD::ExcRequiresADNumberSpecialization ( )
static

Exception denoting that a class requires some specialization in order to be used.

Note
The message that will be printed by this exception reads:
"This function is called in a class that is expected to be specialized " "for auto-differentiable numbers."

◆ ExcRequiresADOLC()

static ::ExceptionBase& Differentiation::AD::ExcRequiresADOLC ( )
static

Exception denoting that ADOL-C is a required feature.

Note
The message that will be printed by this exception reads:
"This function is only available if deal.II is compiled with ADOL-C."

◆ ExcSupportedDerivativeLevels()

static ::ExceptionBase& Differentiation::AD::ExcSupportedDerivativeLevels ( std::size_t  arg1,
std::size_t  arg2 
)
static

This exception is raised whenever the an auto-differentiable number does not support the required number of derivative operations

The first parameter to the constructor is the number of derivative operations that it provides, and the second is the minimum number that are required. Both parameters are of type int.

Note
The message that will be printed by this exception reads:
<< "The number of derivative levels that this auto-differentiable number type supports is " << arg1 << ", but to perform the intended operation the number must support at least " << arg2 << " levels."

◆ ExcADOLCAdvancedBranching()

static ::ExceptionBase& ExcADOLCAdvancedBranching ( )
static

An exception which states that a function has been disabled due to the configuration of ADOL-C with the advanced branching feature enabled.

Note
The message that will be printed by this exception reads:
"This function has not yet been implemented for taped ADOL-C " "numbers when the advanced branching feature is activated."

◆ ExcSymEngineParserError()

static ::ExceptionBase& Differentiation::SD::ExcSymEngineParserError ( std::string  arg1)
static

An exception to indicate that the string sent to the SymEngine parser is not valid.

Note
The message that will be printed by this exception reads:
<< "The string '" << arg1 << "' could not be parsed successfully. Are you sure that (1) it " << "consists of legitimate operations and syntax, and (2) you've " << "previously declared all symbolic variables that are present " << "in the expression?"

◆ Expression() [1/18]

Differentiation::SD::Expression::Expression ( )

Default constructor.

Definition at line 48 of file symengine_number_types.cc.

◆ Expression() [2/18]

Differentiation::SD::Expression::Expression ( const bool  value)
explicit

Constructor for boolean types.

Note
This constructor is marked as explicit so that there are no potential ambiguities related to implicit conversions in either user code or math functions that are loaded into the standard namespace.

Definition at line 53 of file symengine_number_types.cc.

◆ Expression() [3/18]

template<typename NumberType , typename = typename std::enable_if< std::is_arithmetic<NumberType>::value>::type>
Differentiation::SD::Expression::Expression ( const NumberType &  value)
explicit

Constructor for arithmetic number types.

Note
This constructor is marked as explicit so that there are no potential ambiguities related to implicit conversions in either user code or math functions that are loaded into the standard namespace.

◆ Expression() [4/18]

template<typename NumberType , typename = typename std::enable_if< std::is_arithmetic<NumberType>::value>::type>
Differentiation::SD::Expression::Expression ( const std::complex< NumberType > &  value)
explicit

Constructor for complex numbers templated on arithmetic number types.

Note
This constructor is marked as explicit so that there are no potential ambiguities related to implicit conversions in either user code or math functions that are loaded into the standard namespace.

◆ Expression() [5/18]

Differentiation::SD::Expression::Expression ( const SymEngine::integer_class &  value)

Constructor for integer types.

Definition at line 58 of file symengine_number_types.cc.

◆ Expression() [6/18]

template<typename NumberType , typename = typename std::enable_if< std::is_integral<NumberType>::value>::type>
Differentiation::SD::Expression::Expression ( const NumberType &  numerator,
const NumberType &  denominator 
)

Constructor for rational types.

It is expected that both the numerator and denominator be integral types.

◆ Expression() [7/18]

Differentiation::SD::Expression::Expression ( const SymEngine::rational_class &  value)

Constructor for rational types.

Definition at line 63 of file symengine_number_types.cc.

◆ Expression() [8/18]

Differentiation::SD::Expression::Expression ( const Expression condition,
const Expression expression_if_true,
const Expression expression_if_false 
)

Constructor for a piecewise defined function.

The generated expression may be interpreted as the result of the teniary operator, i.e. (condition ? expression_if_true : expression_if_false).

The condition can be any expression that renders an expression that is convertible to a SymEngine::Boolean operator. This includes:

  • the logical operators of the deal.II Expression class
  • SymEngine::boolean()
  • SymEngine::contains()
  • SymEngine::Eq()
  • SymEngine::Ne()
  • SymEngine::Ge()
  • SymEngine::Gt()
  • SymEngine::Le()
  • SymEngine::Lt()
  • SymEngine::logical_and()
  • SymEngine::logical_nand()
  • SymEngine::logical_or()
  • SymEngine::logical_not()
  • SymEngine::logical_nor()
  • SymEngine::logical_xor()
  • SymEngine::logical_xnor()
  • ...

An example of this constructor's use is as follows:

const Expression x("x");
const Expression y("y");
// Construct a conditional expression using the symbolic variables.
const Expression f ((x < Expression(0.0)), x+y, x-y);

Definition at line 68 of file symengine_number_types.cc.

◆ Expression() [9/18]

Differentiation::SD::Expression::Expression ( const std::vector< std::pair< Expression, Expression >> &  condition_expression,
const Expression expression_otherwise 
)

Constructor for a piecewise defined function.

The generated expression may be interpreted as the result of the set of nested if-elseif-else statements, i.e. (in pseudo-code)

if (condition_expression[0].first == true)
return condition_expression[0].second;
else if (condition_expression[1].first == true)
return condition_expression[1].second;
else if (...)
return ...;
else
return expression_otherwise;

if the input vector has more than 2 elements.

This variant takes the piecewise evaluated conditions and its results as the first argument, and the default return value as the second argument.

Definition at line 84 of file symengine_number_types.cc.

◆ Expression() [10/18]

Differentiation::SD::Expression::Expression ( const std::vector< std::pair< Expression, Expression >> &  condition_expression)

Constructor for a piecewise defined function.

The generated expression may be interpreted as the result of the set of nested if-elseif statements, i.e. (in pseudo-code)

if (condition_expression[0].first == true)
return condition_expression[0].second;
else if (condition_expression[1].first == true)
return condition_expression[1].second;
else if (...)
return ...;

if the input vector has more than 2 elements.

This variant takes only the piecewise evaluated conditions and its results. If none of the conditions are met upon evaluation then the returned result will be NaN.

Definition at line 111 of file symengine_number_types.cc.

◆ Expression() [11/18]

Differentiation::SD::Expression::Expression ( const char *  symbol)

Constructor for symbolic types.

This constructor initializes a symbolic type with a character array representing its symbolic value.

Definition at line 122 of file symengine_number_types.cc.

◆ Expression() [12/18]

Differentiation::SD::Expression::Expression ( const std::string &  symb_expr,
const bool  parse_as_expression = false 
)

Constructor for symbolic types.

This constructor initializes a symbolic type with a string representing its symbolic value. If the parse_as_expression flag is false, then the symb_expr (potentially composed of multiple characters) will be interpreted as a single symbol. If the parse_as_expression flag is true, then the symb_expr will be parsed as a symbolic expression (potentially composed of multiple symbols, constants, etc.).

Definition at line 127 of file symengine_number_types.cc.

◆ Expression() [13/18]

Differentiation::SD::Expression::Expression ( const std::string &  symbol_func,
const types::symbol_vector arguments 
)

Constructor for function symbol types.

This constructor initializes a function symbol with a string representing its symbolic name.

Definition at line 145 of file symengine_number_types.cc.

◆ Expression() [14/18]

Differentiation::SD::Expression::Expression ( const Expression rhs)
default

Copy constructor.

◆ Expression() [15/18]

Differentiation::SD::Expression::Expression ( const SymEngine::Expression &  rhs)
explicit

Copy constructor.

Note
This constructor is marked as explicit to prevent any ambiguities from implicit conversion when both the deal.II and SymEngine namespaces are imported.

Definition at line 153 of file symengine_number_types.cc.

◆ Expression() [16/18]

Differentiation::SD::Expression::Expression ( const SymEngine::RCP< const SymEngine::Basic > &  rhs)

Copy constructor.

This allows us to create our class straight from the results of SymEngine operations. This is especially important for operations like "diff", because the returned result is not primitive, but rather a set of compound operations.

Definition at line 158 of file symengine_number_types.cc.

◆ Expression() [17/18]

Differentiation::SD::Expression::Expression ( Expression &&  rhs)
default

Move constructor.

◆ Expression() [18/18]

Differentiation::SD::Expression::Expression ( SymEngine::RCP< const SymEngine::Basic > &&  rhs)

Move constructor.

This allows us to create our class straight from the results of SymEngine operations. This is especially important for operations like "diff", because the returned result is not primitive, but rather a set of compound operations.

Definition at line 163 of file symengine_number_types.cc.

◆ ~Expression()

virtual Differentiation::SD::Expression::~Expression ( )
virtualdefault

Destructor.

◆ parse()

Expression & Differentiation::SD::Expression::parse ( const std::string &  expression)

Utilities Parse an expression from a string representing a symbolic expression. This overwrites any existing value or expression that this object represents.

Definition at line 172 of file symengine_number_types.cc.

◆ print() [1/7]

std::ostream & Differentiation::SD::Expression::print ( std::ostream &  stream) const

Print the value stored by this object.

Since the stored value could be one of a number of types, we leave SymEngine to cast and output the correct representation of the data.

Definition at line 180 of file symengine_number_types.cc.

◆ save() [2/7]

void Differentiation::SD::Expression::save ( std::ostream &  stream) const

Save the value stored by this object to the stream.

Each expression will be saved on a new line of the stream.

Definition at line 188 of file symengine_number_types.cc.

◆ load() [2/7]

void Differentiation::SD::Expression::load ( std::istream &  stream)

Load the value stored in the stream into this object.

It is expected that each expression appears on its own on single line of stream.

Note
When loading a symbolic expression, it is imperative that you first create or load all of the symbolic variables used in the saved expression.

Definition at line 198 of file symengine_number_types.cc.

◆ save() [3/7]

template<class Archive >
void Differentiation::SD::Expression::save ( Archive &  archive,
const unsigned int  version 
) const

Write the data of this object to a stream for the purpose of serialization.

This effectively saves the value stored in this object to the archive with the given version number.

◆ load() [3/7]

template<class Archive >
void Differentiation::SD::Expression::load ( Archive &  archive,
const unsigned int  version 
)

Read the data of this object from a stream for the purpose of serialization.

This effectively loads into this object the value stored in of the archive with the given version number. In doing so, the previous contents of this object are thrown away.

Note
When deserializing a symbolic expression, it is imperative that you first create or deserialize all of the symbolic variables used in the serialized expression.

◆ serialize() [4/7]

template<class Archive >
void Differentiation::SD::Expression::serialize ( Archive &  archive,
const unsigned int  version 
)

Write and read the data of this object from a stream for the purpose of serialization.

This effectively saves or loads the value stored into/out of the archive with the given version number into this object. If deserializing data, then the previous contents of this object are thrown away.

Note
When deserializing a symbolic expression, it is imperative that you first create or deserialize all of the symbolic variables used in the serialized expression.

◆ get_expression() [1/2]

SE::Expression & Differentiation::SD::Expression::get_expression ( ) const

Return the value or expression that this class instance represents.

Definition at line 213 of file symengine_number_types.cc.

◆ get_value()

const SE::Basic & Differentiation::SD::Expression::get_value ( ) const

Return the primitive SymEngine data type that stores the value or expression represented by this object.

Definition at line 227 of file symengine_number_types.cc.

◆ get_RCP()

const SE::RCP< const SE::Basic > & Differentiation::SD::Expression::get_RCP ( ) const

Return the pointer to the primitive SymEngine data type that stores the value or expression represented by this object.

Definition at line 234 of file symengine_number_types.cc.

◆ operator=() [1/11]

Expression & Differentiation::SD::Expression::operator= ( const Expression rhs)

Assignment operator.

Sets the data of this object's expression equal to that of the rhs object.

Definition at line 320 of file symengine_number_types.cc.

◆ operator=() [2/11]

Expression & Differentiation::SD::Expression::operator= ( Expression &&  rhs)
noexcept

Assignment operator.

Sets the data of this object's expression equal to that of the rhs object.

Definition at line 330 of file symengine_number_types.cc.

◆ operator+=() [2/4]

Expression & Differentiation::SD::Expression::operator+= ( const Expression rhs)

Addition assignment.

The rhs expression is added in-place to that of this object's expression.

Definition at line 347 of file symengine_number_types.cc.

◆ operator-=() [1/3]

Expression & Differentiation::SD::Expression::operator-= ( const Expression rhs)

Subtraction assignment.

The rhs expression is subtracted in-place from that of this object's expression.

Definition at line 355 of file symengine_number_types.cc.

◆ operator*=() [1/3]

Expression & Differentiation::SD::Expression::operator*= ( const Expression rhs)

Multiplication assignment.

This object's expression is multiplied in-place by that of the rhs expression.

Definition at line 363 of file symengine_number_types.cc.

◆ operator/=() [1/3]

Expression & Differentiation::SD::Expression::operator/= ( const Expression rhs)

Division assignment.

This object's expression is divided in-place by that of the rhs expression.

Definition at line 371 of file symengine_number_types.cc.

◆ operator=() [3/11]

template<typename NumberType >
Expression& Differentiation::SD::Expression::operator= ( const NumberType &  rhs)

Assignment operator.

Set the data of this object's expression equal to the numerical value of the rhs.

◆ operator-() [1/4]

Expression Differentiation::SD::Expression::operator- ( ) const

Negation operator.

Return a the result of pre-multipying this object's expression by -1.

Note
This operation is not performed in-place.

Definition at line 340 of file symengine_number_types.cc.

◆ operator+=() [3/4]

template<typename NumberType >
Expression& Differentiation::SD::Expression::operator+= ( const NumberType &  rhs)

Addition assignment.

The numerical value of the rhs is added in-place to that of this object's expression.

◆ operator-=() [2/3]

template<typename NumberType >
Expression& Differentiation::SD::Expression::operator-= ( const NumberType &  rhs)

Subtraction assignment.

The numerical value of the rhs is subtracted in-place from that of this object's expression.

◆ operator*=() [2/3]

template<typename NumberType >
Expression& Differentiation::SD::Expression::operator*= ( const NumberType &  rhs)

Multiplication assignment.

This object's expression is multiplied in-place by that of the numerical value of the rhs.

◆ operator/=() [2/3]

template<typename NumberType >
Expression& Differentiation::SD::Expression::operator/= ( const NumberType &  rhs)

Division assignment.

This object's expression is divided in-place by that of the numerical value of the rhs.

◆ differentiate() [1/3]

Expression Differentiation::SD::Expression::differentiate ( const Expression symbol) const

Return the derivative of this object's expression with respect to the given symbol.

Definition at line 261 of file symengine_number_types.cc.

◆ differentiate() [2/3]

Expression Differentiation::SD::Expression::differentiate ( const SymEngine::RCP< const SymEngine::Symbol > &  symbol) const

Return the derivative of this object's expression with respect to the given symbol.

Definition at line 244 of file symengine_number_types.cc.

◆ differentiate() [3/3]

Expression Differentiation::SD::Expression::differentiate ( const SymEngine::RCP< const SymEngine::Basic > &  symbol) const

Return the derivative of this object's expression with respect to the potential symbol.

Definition at line 252 of file symengine_number_types.cc.

◆ substitute() [1/9]

Expression Differentiation::SD::Expression::substitute ( const types::substitution_map substitution_values) const

Perform substitution of all symbols found in this object's expression that match a key in the substitution_values map.

Note
The replacement value (the entry in the substitution_values that is paired with a key) need not necessarily be numerical, but may also be another symbolic type.
With dictionary substitution, partial substitution is allowed (i.e. an incomplete substitution map can be used and the return type can be symbolic).

Definition at line 294 of file symengine_number_types.cc.

◆ substitute() [2/9]

Expression Differentiation::SD::Expression::substitute ( const SymEngine::map_basic_basic &  substitution_values) const

Perform substitution of all symbols found in this object's expression that match a key in the substitution_values map.

This function is like the one above, but takes in a SymEngine map (one that maps a SymEngine::RCP<const SymEngine::Basic> to another SymEngine::RCP<const SymEngine::Basic>) as an argument.

Note
The replacement value (the entry in the substitution_values that is paired with a key) need not necessarily be numerical, but may also be another symbolic type.
With dictionary substitution, partial substitution is allowed (i.e. an incomplete substitution map can be used and the return type can be symbolic).

Definition at line 286 of file symengine_number_types.cc.

◆ substitute() [3/9]

Expression Differentiation::SD::Expression::substitute ( const Expression symbol,
const Expression value 
) const

Perform substitution of all symbols found in this object's expression that match the symbol. Each symbol will be substituted with the given value.

Note
With dictionary substitution, partial substitution is allowed (i.e. an incomplete substitution map can be used and the return type can be symbolic).

Definition at line 303 of file symengine_number_types.cc.

◆ substitute() [4/9]

template<typename NumberType >
Expression Differentiation::SD::Expression::substitute ( const Expression symbol,
const NumberType &  value 
) const

Perform substitution of all symbols found in this object's expression that match the symbol. Each symbol will be substituted with the given value.

Note
With dictionary substitution, partial substitution is allowed (i.e. an incomplete substitution map can be used and the return type can be symbolic).

◆ substitute_and_evaluate() [1/2]

template<typename ReturnType >
ReturnType Differentiation::SD::Expression::substitute_and_evaluate ( const types::substitution_map substitution_values) const

Full substitution and evaluation. This creates a Expression by symbol substitution and then immediately computes its numerical value.

Note
All symbols must be resolved by the substitution map in order for this function to return successfully.

◆ substitute_and_evaluate() [2/2]

template<typename ReturnType >
ReturnType Differentiation::SD::Expression::substitute_and_evaluate ( const SymEngine::map_basic_basic &  substitution_values) const

Full substitution and evaluation. This creates a Expression by symbol substitution and then immediately computes its numerical value.

This function is like the one above, but takes in a SymEngine map (one that maps a SymEngine::RCP<const SymEngine::Basic> to another SymEngine::RCP<const SymEngine::Basic>) as an argument.

Note
All symbols must be resolved by the substitution map in order for this function to return successfully.

◆ operator ResultType()

template<typename ResultType >
Differentiation::SD::Expression::operator ResultType ( ) const
explicit

Conversion operator for real integer or floating point values, and complex integer or floating point values.

Note
This function is marked explicit so that the conversion must be performed using a static_cast. In normal use, one would have expected (Expression)*(double) --> (Expression) If this function were not marked as explicit, then we could potentially have (Expression)*(double) --> (double) So, to get out a value on needs to do the following:

const NumberType val = static_cast<NumberType>(Expression);

or, probably less desirably,

const NumberType val = NumberType(Expression);

Note
If the underlying number is a custom type (i.e. encapsulated by a NumberWrapper), then it is necessary to derive a new class from Expression and define a specialized conversion operator that calls an Evaluator that is specialized for this custom number type. This could be achieved with an overriding conversion function in the base class, for example:
class MyNumber : public Expression
{
...
template <typename ResultType>
explicit operator ResultType() const
{
if (this->get_value()->get_type_code() ==
SymEngine::NUMBER_WRAPPER)
{
// Implement custom evaluation function
const ResultType result = ...;
return result;
}
else
// Call base class conversion operator
return Expression::operator ResultType();
}
}

◆ operator const SymEngine::Expression &()

Differentiation::SD::Expression::operator const SymEngine::Expression & ( ) const
explicit

Conversion operator that returns the value or expression that this class instance represents.

Definition at line 270 of file symengine_number_types.cc.

◆ operator const SymEngine::RCP< const SymEngine::Basic > &()

Differentiation::SD::Expression::operator const SymEngine::RCP< const SymEngine::Basic > & ( ) const

Conversion operator that returns a SymEngine reference counted pointer to the fundamental type.

◆ get_expression() [2/2]

SymEngine::Expression& Differentiation::SD::Expression::get_expression ( )
protected

Return the value or expression that this class instance represents.

◆ operator<<() [2/4]

std::ostream & Differentiation::SD::operator<< ( std::ostream &  stream,
const Expression expression 
)

Bitwise left shift operator.

This is used to output the expression to the input stream.

Definition at line 379 of file symengine_number_types.cc.

◆ operator>>() [2/2]

std::istream & Differentiation::SD::operator>> ( std::istream &  stream,
Expression expression 
)

Bitwise right shift operator.

This is used to read in an expression from the input stream.

Definition at line 387 of file symengine_number_types.cc.

◆ operator==() [3/7]

Expression Differentiation::SD::operator== ( const Expression lhs,
const Expression rhs 
)

Equality operator.

Return whether the lhs is equal to the rhs.

Definition at line 397 of file symengine_number_types.cc.

◆ operator!=() [1/3]

Expression Differentiation::SD::operator!= ( const Expression lhs,
const Expression rhs 
)

Non-equality operator.

Return whether the lhs is not equal to the rhs.

Definition at line 404 of file symengine_number_types.cc.

◆ operator<() [1/3]

Expression Differentiation::SD::operator< ( const Expression lhs,
const Expression rhs 
)

Less than operator.

Return whether the lhs is less than the rhs.

Definition at line 411 of file symengine_number_types.cc.

◆ operator>()

Expression Differentiation::SD::operator> ( const Expression lhs,
const Expression rhs 
)

Greater than operator.

Return whether the lhs is greater than the rhs.

Definition at line 418 of file symengine_number_types.cc.

◆ operator<=()

Expression Differentiation::SD::operator<= ( const Expression lhs,
const Expression rhs 
)

Less than or equals operator.

Return whether the lhs is less than, or equal to, the rhs.

Definition at line 425 of file symengine_number_types.cc.

◆ operator>=()

Expression Differentiation::SD::operator>= ( const Expression lhs,
const Expression rhs 
)

Greater than or equals operator.

Return whether the lhs is greater than, or equal to, the rhs.

Definition at line 432 of file symengine_number_types.cc.

◆ operator!()

Expression Differentiation::SD::operator! ( const Expression expression)

Logical not operator.

Note
This operator can only be applied on boolean and conditional expressions.

Definition at line 438 of file symengine_number_types.cc.

◆ operator&() [1/2]

Expression Differentiation::SD::operator& ( const Expression lhs,
const Expression rhs 
)

Logical and operator.

Note
This operator can only be applied on boolean and conditional expressions.

Definition at line 450 of file symengine_number_types.cc.

◆ operator|() [1/2]

Expression Differentiation::SD::operator| ( const Expression lhs,
const Expression rhs 
)

Logical inclusive or operator.

Note
This operator can only be applied on boolean and conditional expressions.

Definition at line 467 of file symengine_number_types.cc.

◆ operator^()

Expression Differentiation::SD::operator^ ( const Expression lhs,
const Expression rhs 
)

Logical exclusive or (xor) operator.

Note
This operator can only be applied on boolean and conditional expressions.

Definition at line 484 of file symengine_number_types.cc.

◆ operator&&()

Expression Differentiation::SD::operator&& ( const Expression lhs,
const Expression rhs 
)

And operator.

Note
This operator can only be applied on boolean and conditional expressions. This operator is a convenience wrapper for the logical and operator.

Definition at line 501 of file symengine_number_types.cc.

◆ operator||()

Expression Differentiation::SD::operator|| ( const Expression lhs,
const Expression rhs 
)

Inclusive or operator.

Note
This operator can only be applied on boolean and conditional expressions. This operator is a convenience wrapper for the logical or operator.

Definition at line 508 of file symengine_number_types.cc.

◆ operator+() [1/3]

Expression Differentiation::SD::operator+ ( Expression  lhs,
const Expression rhs 
)

Addition operator.

Return the result of adding the rhs to the lhs.

Definition at line 515 of file symengine_number_types.cc.

◆ operator-() [2/4]

Expression Differentiation::SD::operator- ( Expression  lhs,
const Expression rhs 
)

Subtraction operator.

Return the result of subtracting the rhs from the lhs.

Definition at line 523 of file symengine_number_types.cc.

◆ operator*() [1/6]

Expression Differentiation::SD::operator* ( Expression  lhs,
const Expression rhs 
)

Multiplication operator.

Return the result of multiplying the lhs by the rhs.

Definition at line 530 of file symengine_number_types.cc.

◆ operator/() [1/3]

Expression Differentiation::SD::operator/ ( Expression  lhs,
const Expression rhs 
)

Division operator.

Return the result of dividing the lhs by the rhs.

Definition at line 538 of file symengine_number_types.cc.

◆ operator+() [2/3]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator+ ( const NumberType &  lhs,
const Expression rhs 
)
inline

General addition operator.

Return the result of adding the rhs to the lhs. The lhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1090 of file symengine_number_types.h.

◆ operator+() [3/3]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator+ ( const Expression lhs,
const NumberType &  rhs 
)
inline

General addition operator.

Return the result of adding the rhs to the lhs. The rhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1107 of file symengine_number_types.h.

◆ operator-() [3/4]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator- ( const NumberType &  lhs,
const Expression rhs 
)
inline

General subtraction operator.

Return the result of subtracting the rhs from the lhs. The lhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1124 of file symengine_number_types.h.

◆ operator-() [4/4]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator- ( const Expression lhs,
const NumberType &  rhs 
)
inline

General subtraction operator.

Return the result of subtracting the rhs from the lhs. The rhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1141 of file symengine_number_types.h.

◆ operator*() [2/6]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator* ( const NumberType &  lhs,
const Expression rhs 
)
inline

General multiplication operator.

Return the result of multiplying the lhs by the rhs. The lhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1157 of file symengine_number_types.h.

◆ operator*() [3/6]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator* ( const Expression lhs,
const NumberType &  rhs 
)
inline

General multiplication operator.

Return the result of multiplying the lhs by the rhs. The rhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1173 of file symengine_number_types.h.

◆ operator/() [2/3]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator/ ( const NumberType &  lhs,
const Expression rhs 
)
inline

General division operator.

Return the result of dividing the lhs by the rhs. The lhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1190 of file symengine_number_types.h.

◆ operator/() [3/3]

template<typename NumberType , typename = typename std::enable_if< std::is_constructible<Expression, NumberType>::value>::type>
Expression Differentiation::SD::operator/ ( const Expression lhs,
const NumberType &  rhs 
)
inline

General division operator.

Return the result of dividing the lhs by the rhs. The lhs type may be any supported number type, and the result is promoted to a Expression. The type conversion makes writing scalar expressions using Expression more natural.

Definition at line 1207 of file symengine_number_types.h.

◆ ExcSymEngineLLVMNotAvailable()

static ::ExceptionBase& Differentiation::SD::ExcSymEngineLLVMNotAvailable ( )
static

An exception to indicate that the SymEngine library has not been built against the LLVM compiler.

Note
The message that will be printed by this exception reads:
"SymEngine has not been built with LLVM support."

◆ ExcSymEngineLLVMReturnTypeNotSupported()

static ::ExceptionBase& Differentiation::SD::ExcSymEngineLLVMReturnTypeNotSupported ( )
static

An exception to indicate that SymEngine's LLVM optimizer doesn't work with the desired return type.

Note
The message that will be printed by this exception reads:
"The SymEngine LLVM optimizer does not (yet) support the " "selected return type."

◆ operator<<() [3/4]

template<class StreamType >
StreamType& Differentiation::SD::operator<< ( StreamType &  s,
OptimizerType  o 
)
inline

Output operator that outputs the selected optimizer type.

Definition at line 123 of file symengine_optimizer.h.

◆ operator|() [2/2]

OptimizationFlags Differentiation::SD::operator| ( const OptimizationFlags  f1,
const OptimizationFlags  f2 
)
inline

A global operator that returns an object in which all bits are individually set in the following way: If the corresponding bit in either the first or second argument are set, then the output bit it set. Otherwise the output bit remains unset. This or type operation is performed for each bit composing the input arguments (and output) in an individual manner.

Definition at line 180 of file symengine_optimizer.h.

◆ operator|=()

OptimizationFlags& Differentiation::SD::operator|= ( OptimizationFlags f1,
const OptimizationFlags  f2 
)
inline

Global operator that sets the bits from the second argument also in the first one.

Definition at line 192 of file symengine_optimizer.h.

◆ operator&() [2/2]

OptimizationFlags Differentiation::SD::operator& ( const OptimizationFlags  f1,
const OptimizationFlags  f2 
)
inline

A global operator that returns an object in which all bits are individually set in the following way: If the corresponding bit in both the first or second argument are set, then the output bit it set. Otherwise the output bit remains unset. This and type operation is performed for each bit composing the input arguments (and output) in an individual manner.

Definition at line 211 of file symengine_optimizer.h.

◆ operator&=()

OptimizationFlags& Differentiation::SD::operator&= ( OptimizationFlags f1,
const OptimizationFlags  f2 
)
inline

Global operator which clears all the bits in the first argument if they are not also set in the second argument.

Definition at line 224 of file symengine_optimizer.h.

◆ use_symbolic_CSE() [1/2]

bool Differentiation::SD::internal::use_symbolic_CSE ( const enum OptimizationFlags flags)
inline

A utility function that checks whether or not CSE has been selected as an optimization flag.

Definition at line 238 of file symengine_optimizer.h.

◆ get_LLVM_optimization_level()

int Differentiation::SD::internal::get_LLVM_optimization_level ( const enum OptimizationFlags flags)
inline

A utility function that returns the optimization level that is to be employed when the LLVM optimizer is invoked.

Definition at line 248 of file symengine_optimizer.h.

◆ operator<<() [4/4]

template<class StreamType >
StreamType& Differentiation::SD::operator<< ( StreamType &  s,
OptimizationFlags  o 
)
inline

Output operator that outputs optimization flags as a set of or'd text values.

Definition at line 275 of file symengine_optimizer.h.

◆ tensor_evaluate_optimized() [1/2]

template<typename NumberType , int rank, int dim, template< int, int, typename > class TensorType>
TensorType<rank, dim, NumberType> Differentiation::SD::internal::tensor_evaluate_optimized ( const TensorType< rank, dim, Expression > &  symbol_tensor,
const BatchOptimizer< NumberType > &  optimizer 
)

A convenience function that returns the numeric equivalent of an input symbol_tensor, computed through the optimizer.

Template Parameters
NumberTypeThe number type that is returned as a result of operations performed by the optimizer.
rankThe rank of the output tensor.
dimThe dimension of the output tensor.
TensorTypeThe type of tensor to be evaluated and returned (i.e. Tensor or SymmetricTensor).
Parameters
[in]symbol_tensorThe symbolic tensor that is to be evaluated.
[in]optimizerThe optimizer that can evaluate the input symbol_tensor.
Returns
TensorType<rank, dim, NumberType> The numeric result that the input symbol_tensor evaluates to.

Definition at line 1137 of file symengine_optimizer.h.

◆ tensor_evaluate_optimized() [2/2]

template<typename NumberType , int dim>
SymmetricTensor<4, dim, NumberType> Differentiation::SD::internal::tensor_evaluate_optimized ( const SymmetricTensor< 4, dim, Expression > &  symbol_tensor,
const BatchOptimizer< NumberType > &  optimizer 
)

A convenience function that returns the numeric equivalent of an input symbol_tensor, computed through the optimizer. This is a specialization for rank-4 symmetric tensors.

Template Parameters
NumberTypeThe number type that is returned as a result of operations performed by the optimizer.
rankThe rank of the output tensor.
dimThe dimension of the output tensor.
TensorTypeThe type of tensor to be evaluated and returned (i.e. Tensor or SymmetricTensor).
Parameters
[in]symbol_tensorThe symbolic tensor that is to be evaluated.
[in]optimizerThe optimizer that can evaluate the input symbol_tensor.
Returns
TensorType<rank, dim, NumberType> The numeric result that the input symbol_tensor evaluates to.

Definition at line 1171 of file symengine_optimizer.h.

◆ register_functions() [1/7]

template<typename NumberType , typename T >
void Differentiation::SD::internal::register_functions ( BatchOptimizer< NumberType > &  optimizer,
const T &  function 
)

A helper function to register a single function with the optimizer.

Template Parameters
NumberTypeThe number type that is returned as a result of operations performed by the optimizer.
TA compatible type that may be used to represent a single dependent variable. This includes scalar Expressions, Tensors of Expressions and SymmetricTensors of Expressions.
Parameters
optimizerThe instance of the BatchOptimizer to register the function with.
functionA symbolic expression (scalar or tensor) that represents a dependent variable.
Note
This is the end-point for all recursive template functions with the same name.

Definition at line 1210 of file symengine_optimizer.h.

◆ register_functions() [2/7]

template<typename NumberType , typename T >
void Differentiation::SD::internal::register_functions ( BatchOptimizer< NumberType > &  optimizer,
const std::vector< T > &  functions 
)

A helper function to register a vector of functions with the optimizer.

Template Parameters
NumberTypeThe number type that is returned as a result of operations performed by the optimizer.
TA compatible type that may be used to represent a single dependent variable. This includes scalar Expressions, Tensors of Expressions and SymmetricTensors of Expressions.
Parameters
optimizerThe instance of the BatchOptimizer to register the function with.
functionsA vector of symbolic expressions (scalar or tensor) that each represent a dependent variable.
Note
This is the end-point for all recursive template functions with the same name.

Definition at line 1236 of file symengine_optimizer.h.

◆ register_functions() [3/7]

template<typename NumberType , typename T , typename... Args>
void Differentiation::SD::internal::register_functions ( BatchOptimizer< NumberType > &  optimizer,
const T &  function,
const Args &...  other_functions 
)

A helper function to register the symbolic dependent variables collectively given by function and other_functions with the optimizer.

Template Parameters
NumberTypeThe number type that is returned as a result of operations performed by the optimizer.
TA compatible type that may be used to represent a single dependent variable. This includes scalar Expressions, Tensors of Expressions and SymmetricTensors of Expressions.
ArgsThe parameter pack that collects all other types of dependent variables to be registered.
Parameters
optimizerThe instance of the BatchOptimizer to register the function with.
functionA valid symbolic expression (or collection of symbolic expression) that represents one (or more) dependent variable.
other_functionsOne or more other valid symbolic expression(s) that represent dependent variable(s).

Definition at line 1265 of file symengine_optimizer.h.

◆ unroll_to_expression_vector() [1/2]

template<int rank, int dim, template< int, int, typename > class TensorType>
types::symbol_vector Differentiation::SD::internal::unroll_to_expression_vector ( const TensorType< rank, dim, Expression > &  symbol_tensor)

A utility function that unrolls the input symbol_tensor into a vector of Expressions.

Template Parameters
rankThe rank of the input tensor.
dimThe dimension of the input tensor.
TensorTypeThe type of tensor to be evaluated and returned (i.e. Tensor or SymmetricTensor).
Parameters
symbol_tensor
Returns
A vector of Expressions, with a consistent ordering.

Definition at line 1289 of file symengine_optimizer.h.

◆ unroll_to_expression_vector() [2/2]

template<int dim>
types::symbol_vector Differentiation::SD::internal::unroll_to_expression_vector ( const SymmetricTensor< 4, dim, Expression > &  symbol_tensor)

A utility function that unrolls the input symbol_tensor into a vector of Expressions. This is a specialization for rank-4 symmetric tensors.

Template Parameters
dimThe dimension of the input tensor.
Parameters
symbol_tensor
Returns
A vector of Expressions, with a consistent ordering.

Definition at line 1316 of file symengine_optimizer.h.

◆ BatchOptimizer() [1/4]

template<typename ReturnType >
Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer

Default constructor.

By default, dictionary substitution will be selected when this constructor is called. In order to select a specific optimization approach, a call to set_optimization_method() is necessary.

Definition at line 36 of file symengine_optimizer.cc.

◆ BatchOptimizer() [2/4]

template<typename ReturnType >
Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer ( const enum OptimizerType optimization_method,
const enum OptimizationFlags optimization_flags = OptimizationFlags::optimize_all 
)

Constructor.

Parameters
[in]optimization_methodThe optimization method that is to be employed.
[in]optimization_flagsThe optimization flags that indicate which expression manipulation mechanisms are to be employed.
Note
As the optimization method is fixed, a further call to set_optimization_method() is not necessary and will result in an error being thrown.
In the case that the optimization_method is not implemented for the required ReturnType, or the desired feature is not active, then an error will be thrown. Currently the LLVM optimization method is not compatible with complex numbers.

Definition at line 46 of file symengine_optimizer.cc.

◆ BatchOptimizer() [3/4]

template<typename ReturnType >
Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer ( const BatchOptimizer< ReturnType > &  other)

Copy constructor

The copy_initialized flag, which is set to true by default, determines whether or not all of the optimized data is copied over from the other optimizer instance. Only with the flag set to false is it possible to re-optimize the data stored in this class with a different optimization scheme.

Definition at line 57 of file symengine_optimizer.cc.

◆ BatchOptimizer() [4/4]

template<typename ReturnType >
Differentiation::SD::BatchOptimizer< ReturnType >::BatchOptimizer ( BatchOptimizer< ReturnType > &&  )
default

Move constructor.

◆ ~BatchOptimizer()

template<typename ReturnType >
Differentiation::SD::BatchOptimizer< ReturnType >::~BatchOptimizer ( )
default

Destructor.

◆ print() [2/7]

template<typename ReturnType >
template<typename Stream >
void Differentiation::SD::BatchOptimizer< ReturnType >::print ( Stream &  stream,
const bool  print_cse = false 
) const

Print some information on state of the internal data structures stored in the class.

Template Parameters
StreamThe type for the output stream.
Parameters
streamThe output stream to print to.
print_cseA flag to indicate whether or not all common subexpressions should be printed to the stream.

◆ save() [4/7]

template<typename ReturnType >
template<class Archive >
void Differentiation::SD::BatchOptimizer< ReturnType >::save ( Archive &  archive,
const unsigned int  version 
) const

Write the data of this object from a stream for the purpose of serialization.

This effectively saves the value stored into the archive with the given version number into this object.

◆ load() [4/7]

template<typename ReturnType >
template<class Archive >
void Differentiation::SD::BatchOptimizer< ReturnType >::load ( Archive &  archive,
const unsigned int  version 
)

Read the data of this object from a stream for the purpose of serialization.

This effectively loads the value stored out of the archive with the given version number into this object. In doing so, the previous contents of this object are thrown away.

Note
When deserializing a symbolic expression, it is imperative that you first create or deserialize all of the symbolic variables used in the serialized expression.

◆ serialize() [5/7]

template<typename ReturnType >
template<class Archive >
void Differentiation::SD::BatchOptimizer< ReturnType >::serialize ( Archive &  archive,
const unsigned int  version 
)

Write and read the data of this object from a stream for the purpose of serialization.

This effectively saves or loads the value stored into/out of the archive with the given version number into this object. If deserializing data, then the previous contents of this object are thrown away.

Note
When deserializing a batch optimizer, it is imperative that you first create or deserialize all of the symbolic variables and symbolic functions used in the optimizer.
Complete serialization is not possible when the "lambda" optimization method is invoked. Although the registered symbols and dependent function expressions are stored, the optimization is itself not stored. It might, therefore, take some time for the deserialization when "lambda" optimization is used as the optimization step will be (automatically) performed once more.

◆ register_symbols() [1/4]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols ( const types::substitution_map substitution_map)

Register a collection of symbols that represents an independent variable. These symbols are stored as the key to the substitution_map.

Definition at line 148 of file symengine_optimizer.cc.

◆ register_symbols() [2/4]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols ( const SymEngine::map_basic_basic &  substitution_map)

Register a collection of symbols that represents an independent variable. These symbols are stored as the key to the substitution_map.

Definition at line 175 of file symengine_optimizer.cc.

◆ register_symbols() [3/4]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols ( const types::symbol_vector symbols)

Register a collection of symbols that represents independent variables.

Warning
When using this function is no mechanism to check that the ordering of the later used substitution_values vector or map matches the internal ordering of the registered symbols. This function is therefore typically used in conjunction with the substitute() function that takes in a vector of values. With this pair of functions to the class interface, the management of symbol ordering is maintained by the user.

◆ register_symbols() [4/4]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_symbols ( const SymEngine::vec_basic &  symbols)

Register a collection of symbols that represents independent variables.

Warning
When using this function is no mechanism to check that the ordering of the later used substitution_values vector or map matches the internal ordering of the registered symbols. This function is therefore typically used in conjunction with the substitute() function that takes in a vector of values. With this pair of functions to the class interface, the management of symbol ordering is maintained by the user.

Definition at line 207 of file symengine_optimizer.cc.

◆ get_independent_symbols()

template<typename ReturnType >
SD::types::symbol_vector Differentiation::SD::BatchOptimizer< ReturnType >::get_independent_symbols

Return a vector of symbols that have been registered as independent variables.

Definition at line 218 of file symengine_optimizer.cc.

◆ n_independent_variables()

template<typename ReturnType >
std::size_t Differentiation::SD::BatchOptimizer< ReturnType >::n_independent_variables

The number of independent variables that this optimizer will recognize. This is equal to the number of unique symbols passed to this class instance through the register_symbols() function.

Definition at line 227 of file symengine_optimizer.cc.

◆ register_function() [1/3]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_function ( const Expression function)

Register a scalar symbolic expression that represents a dependent variable.

Definition at line 236 of file symengine_optimizer.cc.

◆ register_function() [2/3]

template<typename ReturnType >
template<int rank, int dim>
void Differentiation::SD::BatchOptimizer< ReturnType >::register_function ( const Tensor< rank, dim, Expression > &  function_tensor)

Register a tensor of symbolic expressions that represents a dependent variable.

◆ register_function() [3/3]

template<typename ReturnType >
template<int rank, int dim>
void Differentiation::SD::BatchOptimizer< ReturnType >::register_function ( const SymmetricTensor< rank, dim, Expression > &  function_tensor)

Register a symmetric tensor of symbolic expressions that represents a dependent variable.

◆ register_functions() [4/7]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions ( const types::symbol_vector functions)

Register a collection of symbolic expressions that represent dependent variables.

◆ register_functions() [5/7]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions ( const SymEngine::vec_basic &  functions)

Register a collection of symbolic expressions that represent multiple dependent variables.

Definition at line 263 of file symengine_optimizer.cc.

◆ register_functions() [6/7]

template<typename ReturnType >
template<typename T >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions ( const std::vector< T > &  functions)

Register a collection of symbolic expressions that represent multiple dependent variables.

Template Parameters
TA compatible type that may be used to represent a single dependent variable. This includes scalar Expressions, Tensors of Expressions and SymmetricTensors of Expressions.
Parameters
functionsA vector of symbolic dependent variables.

◆ register_functions() [7/7]

template<typename ReturnType >
template<typename T , typename... Args>
void Differentiation::SD::BatchOptimizer< ReturnType >::register_functions ( const T &  functions,
const Args &...  other_functions 
)

Register a collection of symbolic expressions that represent dependent variables.

Template Parameters
TA compatible type that may be used to represent a single dependent variable. This includes scalar Expressions, Tensors of Expressions, SymmetricTensors of Expressions, and std::vectors of Expressions.
ArgsA variadic template that represents a collection of any compatible symbolic dependent variable types.
Parameters
functionsOne or more symbolic dependent variables.
other_functionsAn arbitrary collection of symbolic dependent variables.

◆ get_dependent_functions()

template<typename ReturnType >
const SD::types::symbol_vector & Differentiation::SD::BatchOptimizer< ReturnType >::get_dependent_functions

Return a vector of expressions that have been registered as dependent variables.

Definition at line 274 of file symengine_optimizer.cc.

◆ n_dependent_variables()

template<typename ReturnType >
std::size_t Differentiation::SD::BatchOptimizer< ReturnType >::n_dependent_variables

The number of dependent symbolic expressions that this optimizer will optimize. This is equal to the number of unique symbolic functions / expressions passed to this class instance through the register_functions() method.

Definition at line 283 of file symengine_optimizer.cc.

◆ set_optimization_method()

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::set_optimization_method ( const enum OptimizerType optimization_method,
const enum OptimizationFlags optimization_flags = OptimizationFlags::optimize_all 
)

Select the optimization_method for the batch optimizer to employ, in conjunction with the optimization_flags.

It is required that the this class instance is not yet optimized, i.e. that the optimize() method has not yet been called.

Note
In the case that the method is not implemented for the required ReturnType, or the desired feature is not active, then a safe default will be selected.

Definition at line 72 of file symengine_optimizer.cc.

◆ optimization_method()

template<typename ReturnType >
enum OptimizerType Differentiation::SD::BatchOptimizer< ReturnType >::optimization_method

Return the optimization method that has been selected for use.

Definition at line 95 of file symengine_optimizer.cc.

◆ optimization_flags()

template<typename ReturnType >
enum OptimizationFlags Differentiation::SD::BatchOptimizer< ReturnType >::optimization_flags

Return the optimization flags that have been selected for use.

Definition at line 104 of file symengine_optimizer.cc.

◆ use_symbolic_CSE() [2/2]

template<typename ReturnType >
bool Differentiation::SD::BatchOptimizer< ReturnType >::use_symbolic_CSE

State whether the internal selection of optimization methods and flags will render an optimizer that uses common subexpression elimination (CSE).

Definition at line 113 of file symengine_optimizer.cc.

◆ optimize()

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::optimize

Perform the optimization of all registered dependent functions using the registered symbols.

Note
This function, which should only be called once per instance of this class, finalizes the set of accepted independent symbols and dependent functions that are recognized and used by the optimizer.
This may be a time-consuming process, but if the class instance is retained throughout the course of a simulation (and both the independent and dependent variables that are associated with the class instance remain unchanged) then it need only be performed once. Serialization also offers the opportunity to reuse the already computed optimized evaluation call path.

Definition at line 300 of file symengine_optimizer.cc.

◆ optimized()

template<typename ReturnType >
bool Differentiation::SD::BatchOptimizer< ReturnType >::optimized

Returns a flag which indicates whether the optimize() function has been called and the class is finalized.

Definition at line 122 of file symengine_optimizer.cc.

◆ substitute() [5/9]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute ( const types::substitution_map substitution_map) const

Perform batch substitution of all of the registered symbols into the registered functions. The result is cached and can be extracted by calls to evaluate().

Note
Calling substitute() again with a new substitution_map overwrites any previously computed results.

Definition at line 377 of file symengine_optimizer.cc.

◆ substitute() [6/9]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute ( const SymEngine::map_basic_basic &  substitution_map) const

Perform batch substitution of all of the registered symbols into the registered functions. The result is cached and can be extracted by calls to evaluate().

Note
Calling substitute() again with a new substitution_map overwrites any previously computed results.

Definition at line 416 of file symengine_optimizer.cc.

◆ substitute() [7/9]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute ( const types::symbol_vector symbols,
const std::vector< ReturnType > &  values 
) const

Perform batch substitution of all of the registered symbols into the registered functions. The result is cached and can be extracted by calls to evaluate(). It is expected that there is a 1-1 correspondence between each of the symbols and values.

Note
Calling substitute() again with a new set of values overwrites any previously computed results.

◆ substitute() [8/9]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute ( const SymEngine::vec_basic &  symbols,
const std::vector< ReturnType > &  values 
) const

Perform batch substitution of all of the registered symbols into the registered functions. The result is cached and can be extracted by calls to evaluate(). It is expected that there is a 1-1 correspondence between each of the symbols and values.

Note
Calling substitute() again with a new set of values overwrites any previously computed results.

Definition at line 441 of file symengine_optimizer.cc.

◆ values_substituted()

template<typename ReturnType >
bool Differentiation::SD::BatchOptimizer< ReturnType >::values_substituted

Returns a flag to indicate whether the substitute() function has been called and if there are meaningful values that will be returned upon evaluation.

Definition at line 139 of file symengine_optimizer.cc.

◆ evaluate() [1/5]

template<typename ReturnType >
const std::vector< ReturnType > & Differentiation::SD::BatchOptimizer< ReturnType >::evaluate

Returns the result of a value substitution into the optimized counterpart of all dependent functions. This function fetches all of those cached values.

These values were computed by substituting a substitution_values map during substitute() call.

Note
In contrast to the other variants of this function, the order of the returned entries is an internal implementation detail, and cannot be guaranteed under all conditions. The entries in the returned vector are, in general, identical to the order in which the dependent expressions are originally registered. However, when registering tensors and symmetric tensors of expressions, these are "unrolled" and their components are individually registered. If it is necessary to control the order in which results appear in the returned vector, then the register_function() method that takes a Tensor or a SymmetricTensor as an argument should be avoided. Instead, the individual entries of these types of data should be registered one by one.

Definition at line 511 of file symengine_optimizer.cc.

◆ evaluate() [2/5]

template<typename ReturnType >
ReturnType Differentiation::SD::BatchOptimizer< ReturnType >::evaluate ( const Expression func) const

Returns the result of a value substitution into the optimized counterpart of func. This function fetches that one cached value.

This value was computed by substituting a substitution_values map during substitute() call.

Definition at line 526 of file symengine_optimizer.cc.

◆ evaluate() [3/5]

template<typename ReturnType >
std::vector< ReturnType > Differentiation::SD::BatchOptimizer< ReturnType >::evaluate ( const std::vector< Expression > &  funcs) const

Returns the result of a value substitution into the optimized counterpart of funcs. This function fetches that subset of cached values.

This value was computed by substituting a substitution_values map during substitute() call.

Definition at line 623 of file symengine_optimizer.cc.

◆ evaluate() [4/5]

template<typename ReturnType >
template<int rank, int dim>
Tensor<rank, dim, ReturnType> Differentiation::SD::BatchOptimizer< ReturnType >::evaluate ( const Tensor< rank, dim, Expression > &  funcs) const

Returns the result of a tensor value substitution into the optimized counterpart of funcs. This function fetches those cached tensor components.

This value was computed by substituting a substitution_values map during substitute() call.

◆ evaluate() [5/5]

template<typename ReturnType >
template<int rank, int dim>
SymmetricTensor<rank, dim, ReturnType> Differentiation::SD::BatchOptimizer< ReturnType >::evaluate ( const SymmetricTensor< rank, dim, Expression > &  funcs) const

Returns the result of a tensor value substitution into the optimized counterpart of funcs. This function fetches those cached symmetric tensor components.

This value was computed by substituting a substitution_values map during substitute() call.

◆ is_valid_nonunique_dependent_variable() [1/2]

template<typename ReturnType >
bool Differentiation::SD::BatchOptimizer< ReturnType >::is_valid_nonunique_dependent_variable ( const SD::Expression function) const
private

A check to see if a function is exactly equal to one of the logical results of a differentiation operation.

Definition at line 639 of file symengine_optimizer.cc.

◆ is_valid_nonunique_dependent_variable() [2/2]

template<typename ReturnType >
bool Differentiation::SD::BatchOptimizer< ReturnType >::is_valid_nonunique_dependent_variable ( const SymEngine::RCP< const SymEngine::Basic > &  function) const
private

A check to see if a function is exactly equal to one of the logical results of a differentiation operation.

Definition at line 649 of file symengine_optimizer.cc.

◆ register_scalar_function()

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_scalar_function ( const SD::Expression function)
private

Register a single symbol that represents a dependent variable.

Definition at line 682 of file symengine_optimizer.cc.

◆ register_vector_functions()

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::register_vector_functions ( const types::symbol_vector functions)
private

Register a collection of symbols that represent dependent variables.

Definition at line 710 of file symengine_optimizer.cc.

◆ create_optimizer()

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::create_optimizer ( std::unique_ptr< SymEngine::Visitor > &  optimizer)
private

Create an instance of the selected optimizer.

Definition at line 744 of file symengine_optimizer.cc.

◆ substitute() [9/9]

template<typename ReturnType >
void Differentiation::SD::BatchOptimizer< ReturnType >::substitute ( const std::vector< ReturnType > &  substitution_values) const
private

Perform batch substitution of all of the registered symbols into the registered functions. The result is cached and can be extracted by calls to evaluate().

Note
Calling substitute() again with a new set of substitution_values overwrites any previously computed results.
Warning
When using this function there is no mechanism to check that the ordering of the substitution_values vector matches the internal ordering of the registered symbols. This function is therefore typically used in conjunction with the register_symbols() function that takes in a vector of symbols. With this pair of functions to the class interface, the management of symbol ordering is maintained by the user.

Definition at line 454 of file symengine_optimizer.cc.

◆ ExcInvalidObject() [1/2]

template<int structdim, typename DoFHandlerType , bool level_dof_access>
static ::ExceptionBase& DoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcInvalidObject ( )
static

Exceptions for child classes

Note
The message that will be printed by this exception reads:
"This accessor object has not been " "associated with any DoFHandler object."

◆ ExcVectorNotEmpty() [1/2]

template<int structdim, typename DoFHandlerType , bool level_dof_access>
static ::ExceptionBase& DoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcVectorNotEmpty ( )
static

Exception

◆ ExcVectorDoesNotMatch() [1/2]

template<int structdim, typename DoFHandlerType , bool level_dof_access>
static ::ExceptionBase& DoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcVectorDoesNotMatch ( )
static

Exception

◆ ExcMatrixDoesNotMatch() [1/2]

template<int structdim, typename DoFHandlerType , bool level_dof_access>
static ::ExceptionBase& DoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcMatrixDoesNotMatch ( )
static

Exception

◆ ExcNotActive() [1/2]

template<int structdim, typename DoFHandlerType , bool level_dof_access>
static ::ExceptionBase& DoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcNotActive ( )
static

A function has been called for a cell which should be active, but is refined.

◆ ExcCantCompareIterators() [1/3]

template<int structdim, typename DoFHandlerType , bool level_dof_access>
static ::ExceptionBase& DoFAccessor< structdim, DoFHandlerType, level_dof_access >::ExcCantCompareIterators ( )
static

Exception

◆ ExcInvalidObject() [2/2]

template<template< int, int > class DoFHandlerType, int spacedim, bool level_dof_access>
static ::ExceptionBase& DoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcInvalidObject ( )
static

Exceptions for child classes

Note
The message that will be printed by this exception reads:
"This accessor object has not been " "associated with any DoFHandler object."

◆ ExcVectorNotEmpty() [2/2]

template<template< int, int > class DoFHandlerType, int spacedim, bool level_dof_access>
static ::ExceptionBase& DoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcVectorNotEmpty ( )
static

Exception

◆ ExcVectorDoesNotMatch() [2/2]

template<template< int, int > class DoFHandlerType, int spacedim, bool level_dof_access>
static ::ExceptionBase& DoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcVectorDoesNotMatch ( )
static

Exception

◆ ExcMatrixDoesNotMatch() [2/2]

template<template< int, int > class DoFHandlerType, int spacedim, bool level_dof_access>
static ::ExceptionBase& DoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcMatrixDoesNotMatch ( )
static

Exception

◆ ExcNotActive() [2/2]

template<template< int, int > class DoFHandlerType, int spacedim, bool level_dof_access>
static ::ExceptionBase& DoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcNotActive ( )
static

A function has been called for a cell which should be active, but is refined.

◆ ExcCantCompareIterators() [2/3]

template<template< int, int > class DoFHandlerType, int spacedim, bool level_dof_access>
static ::ExceptionBase& DoFAccessor< 0, DoFHandlerType< 1, spacedim >, level_dof_access >::ExcCantCompareIterators ( )
static

Exception

◆ ExcGridsDoNotMatch() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DoFHandler< dim, spacedim >::ExcGridsDoNotMatch ( )
static

Exception

◆ ExcInvalidBoundaryIndicator() [1/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DoFHandler< dim, spacedim >::ExcInvalidBoundaryIndicator ( )
static

Exception

◆ ExcNewNumbersNotConsecutive() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DoFHandler< dim, spacedim >::ExcNewNumbersNotConsecutive ( types::global_dof_index  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The given list of new dof indices is not consecutive: " << "the index " << arg1 << " does not exist."

◆ ExcInvalidLevel() [1/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DoFHandler< dim, spacedim >::ExcInvalidLevel ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The given level " << arg1 << " is not in the valid range!"

◆ ExcFacesHaveNoLevel() [1/4]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DoFHandler< dim, spacedim >::ExcFacesHaveNoLevel ( )
static

Exception

◆ ExcEmptyLevel() [1/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& DoFHandler< dim, spacedim >::ExcEmptyLevel ( int  arg1)
static

The triangulation level you accessed is empty.

Note
The message that will be printed by this exception reads:
<< "You tried to do something on level " << arg1 << ", but this level is empty."

◆ ExcDoFHandlerNotInitialized()

static ::ExceptionBase& DoFRenumbering::ExcDoFHandlerNotInitialized ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The DoFHandler on which this function should work has not " "been initialized, i.e., it doesn't appear that DoF indices " "have been distributed on it."

◆ ExcInvalidComponentOrder()

static ::ExceptionBase& DoFRenumbering::ExcInvalidComponentOrder ( )
static

Exception

◆ ExcNotDGFEM()

static ::ExceptionBase& DoFRenumbering::ExcNotDGFEM ( )
static

The function is only implemented for Discontinuous Galerkin Finite elements.

◆ ExcFiniteElementsDontMatch()

static ::ExceptionBase& DoFTools::ExcFiniteElementsDontMatch ( )
static
Todo:
Write description

◆ ExcGridNotCoarser()

static ::ExceptionBase& DoFTools::ExcGridNotCoarser ( )
static
Todo:
Write description

◆ ExcGridsDontMatch()

static ::ExceptionBase& DoFTools::ExcGridsDontMatch ( )
static
Todo:
Write description

Exception

◆ ExcNoFESelected() [1/2]

static ::ExceptionBase& DoFTools::ExcNoFESelected ( )
static

The DoFHandler or hp::DoFHandler was not initialized with a finite element. Please call DoFHandler::distribute_dofs() etc. first.

◆ ExcInvalidBoundaryIndicator() [2/3]

static ::ExceptionBase& DoFTools::ExcInvalidBoundaryIndicator ( )
static
Todo:
Write description

◆ ExcNoComponentSelected()

static ::ExceptionBase& ComponentMask::ExcNoComponentSelected ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The number of selected components in a mask " "must be greater than zero."

◆ ExcShapeFunctionNotPrimitive() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcShapeFunctionNotPrimitive ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The shape function with index " << arg1 << " is not primitive, i.e. it is vector-valued and " << "has more than one non-zero vector component. This " << "function cannot be called for these shape functions. " << "Maybe you want to use the same function with the " << "_component suffix?"

◆ ExcFENotPrimitive() [1/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcFENotPrimitive ( )
static

Exception

◆ ExcUnitShapeValuesDoNotExist()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcUnitShapeValuesDoNotExist ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are trying to access the values or derivatives of shape functions " "on the reference cell of an element that does not define its shape " "functions through mapping from the reference cell. Consequently, " "you cannot ask for shape function values or derivatives on the " "reference cell."

◆ ExcFEHasNoSupportPoints()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcFEHasNoSupportPoints ( )
static

Attempt to access support points of a finite element that is not Lagrangian.

Note
The message that will be printed by this exception reads:
"You are trying to access the support points of a finite " "element that either has no support points at all, or for " "which the corresponding tables have not been implemented."

◆ ExcEmbeddingVoid()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcEmbeddingVoid ( )
static

Attempt to access embedding matrices of a finite element that did not implement these matrices.

Note
The message that will be printed by this exception reads:
"You are trying to access the matrices that describe how " "to embed a finite element function on one cell into the " "finite element space on one of its children (i.e., the " "'embedding' or 'prolongation' matrices). However, the " "current finite element can either not define this sort of " "operation, or it has not yet been implemented."

◆ ExcProjectionVoid()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcProjectionVoid ( )
static

Attempt to access restriction matrices of a finite element that did not implement these matrices.

Exception

Note
The message that will be printed by this exception reads:
"You are trying to access the matrices that describe how " "to restrict a finite element function from the children " "of one cell to the finite element space defined on their " "parent (i.e., the 'restriction' or 'projection' matrices). " "However, the current finite element can either not define " "this sort of operation, or it has not yet been " "implemented."

◆ ExcWrongInterfaceMatrixSize()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcWrongInterfaceMatrixSize ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The interface matrix has a size of " << arg1 << "x" << arg2 << ", which is not reasonable for the current element " "in the present dimension."

◆ ExcInterpolationNotImplemented()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FiniteElement< dim, spacedim >::ExcInterpolationNotImplemented ( )
static

Exception

◆ ExcFEQCannotHaveDegree0()

template<class PolynomialType , int dim = PolynomialType::dimension, int spacedim = dim>
static ::ExceptionBase& FE_Q_Base< PolynomialType, dim, spacedim >::ExcFEQCannotHaveDegree0 ( )
static

Attempt to construct an FE_Q object of degree 0

Note
The message that will be printed by this exception reads:
"FE_Q can only be used for polynomial degrees " "greater than zero. If you want an element of polynomial " "degree zero, then it cannot be continuous and you " "will want to use FE_DGQ<dim>(0)."

◆ ExcInvalidFEName()

static ::ExceptionBase& FETools::ExcInvalidFEName ( std::string  arg1)
static

The string used for get_fe_by_name() cannot be translated to a finite element.

Either the string is badly formatted or you are using a custom element that must be added using add_fe_name() first.

Note
The message that will be printed by this exception reads:
<< "Can't re-generate a finite element from the string '" << arg1 << "'."

◆ ExcInvalidFEDimension()

static ::ExceptionBase& FETools::ExcInvalidFEDimension ( char  arg1,
int  arg2 
)
static

The string used for get_fe_by_name() cannot be translated to a finite element.

Dimension arguments in finite element names should be avoided. If they are there, the dimension should be dim or d. Here, you gave a numeric dimension argument, which does not match the template dimension of the finite element class.

Note
The message that will be printed by this exception reads:
<< "The dimension " << arg1 << " in the finite element string must match " << "the space dimension " << arg2 << "."

◆ ExcInvalidFE()

static ::ExceptionBase& FETools::ExcInvalidFE ( )
static

Exception

◆ ExcFENotPrimitive() [2/3]

static ::ExceptionBase& FETools::ExcFENotPrimitive ( )
static

The finite element must be primitive.

◆ ExcTriangulationMismatch() [2/2]

static ::ExceptionBase& FETools::ExcTriangulationMismatch ( )
static

Exception

◆ ExcHangingNodesNotAllowed()

static ::ExceptionBase& FETools::ExcHangingNodesNotAllowed ( )
static

A continuous element is used on a mesh with hanging nodes, but the constraint matrices are missing.

Note
The message that will be printed by this exception reads:
"You are using continuous elements on a grid with " "hanging nodes but without providing hanging node " "constraints. Use the respective function with " "additional AffineConstraints argument(s), instead."

◆ ExcGridNotRefinedAtLeastOnce()

static ::ExceptionBase& FETools::ExcGridNotRefinedAtLeastOnce ( )
static

You need at least two grid levels.

◆ ExcMatrixDimensionMismatch()

static ::ExceptionBase& FETools::ExcMatrixDimensionMismatch ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

The dimensions of the matrix used did not match the expected dimensions.

Note
The message that will be printed by this exception reads:
<< "This is a " << arg1 << "x" << arg2 << " matrix, " << "but should be a " << arg3 << "x" << arg4 << " matrix."

◆ ExcLeastSquaresError()

static ::ExceptionBase& FETools::ExcLeastSquaresError ( double  arg1)
static

Exception thrown if an embedding matrix was computed inaccurately.

Note
The message that will be printed by this exception reads:
<< "Least squares fit leaves a gap of " << arg1

◆ ExcNotGreaterThan()

static ::ExceptionBase& FETools::ExcNotGreaterThan ( int  arg1,
int  arg2 
)
static

Exception thrown if one variable may not be greater than another.

Note
The message that will be printed by this exception reads:
<< arg1 << " must be greater than " << arg2

◆ ExcAccessToUninitializedField() [1/2]

template<int dim, int spacedim>
static ::ExceptionBase& FEValuesBase< dim, spacedim >::ExcAccessToUninitializedField ( std::string  arg1)
static

This exception is thrown if FEValuesBase is asked to return the value of a field which was not required by the UpdateFlags for this FEValuesBase.

Note
The message that will be printed by this exception reads:
<< "You are requesting information from an FEValues/FEFaceValues/FESubfaceValues " << "object for which this kind of information has not been computed. What " << "information these objects compute is determined by the update_* flags you " << "pass to the constructor. Here, the operation you are attempting requires " << "the <" << arg1 << "> flag to be set, but it was apparently not specified " << "upon construction."

◆ ExcFEDontMatch()

template<int dim, int spacedim>
static ::ExceptionBase& FEValuesBase< dim, spacedim >::ExcFEDontMatch ( )
static

Mismatch between the FEValues FiniteElement and cell->get_dof_handler().get_fe()

Note
The message that will be printed by this exception reads:
"The FiniteElement you provided to FEValues and the FiniteElement that belongs " "to the DoFHandler that provided the cell iterator do not match."

◆ ExcShapeFunctionNotPrimitive() [2/2]

template<int dim, int spacedim>
static ::ExceptionBase& FEValuesBase< dim, spacedim >::ExcShapeFunctionNotPrimitive ( int  arg1)
static

A given shape function is not primitive, but it needs to be.

Note
The message that will be printed by this exception reads:
<< "The shape function with index " << arg1 << " is not primitive, i.e. it is vector-valued and " << "has more than one non-zero vector component. This " << "function cannot be called for these shape functions. " << "Maybe you want to use the same function with the " << "_component suffix?"

◆ ExcFENotPrimitive() [3/3]

template<int dim, int spacedim>
static ::ExceptionBase& FEValuesBase< dim, spacedim >::ExcFENotPrimitive ( )
static

The given FiniteElement is not a primitive element, see FiniteElement::is_primitive().

Note
The message that will be printed by this exception reads:
"The given FiniteElement is not a primitive element but the requested operation " "only works for those. See FiniteElement::is_primitive() for more information."

◆ ExcReinitCalledWithBoundaryFace()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FESubfaceValues< dim, spacedim >::ExcReinitCalledWithBoundaryFace ( )
static
Todo:
Document this

◆ ExcFaceHasNoSubfaces()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FESubfaceValues< dim, spacedim >::ExcFaceHasNoSubfaces ( )
static
Todo:
Document this

◆ ExcInvalidData()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Mapping< dim, spacedim >::ExcInvalidData ( )
static

Exception

◆ ExcTransformationFailed()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Mapping< dim, spacedim >::ExcTransformationFailed ( )
static

Computing the mapping between a real space point and a point in reference space failed, typically because the given point lies outside the cell where the inverse mapping is not unique.

Note
The message that will be printed by this exception reads:
"Computing the mapping between a real space point and a point in reference " "space failed, typically because the given point lies outside the cell " "where the inverse mapping is not unique."

◆ ExcDistortedMappedCell()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Mapping< dim, spacedim >::ExcDistortedMappedCell ( Point< spacedim >  arg1,
double  arg2,
int  arg3 
)
static

deal.II assumes the Jacobian determinant to be positive. When the cell geometry is distorted under the image of the mapping, the mapping becomes invalid and this exception is thrown.

Note
The message that will be printed by this exception reads:
<< "The image of the mapping applied to cell with center [" << arg1 << "] is distorted. The cell geometry or the " << "mapping are invalid, giving a non-positive volume " << "fraction of " << arg2 << " in quadrature point " << arg3 << "."

◆ ExcInactiveCell() [1/3]

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim, spacedim>>
static ::ExceptionBase& MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::ExcInactiveCell ( )
static

Exception

◆ ExcInactiveCell() [2/3]

template<int dim, typename VectorType = Vector<double>, int spacedim = dim>
static ::ExceptionBase& MappingQ1Eulerian< dim, VectorType, spacedim >::ExcInactiveCell ( )
static

Exception.

◆ ExcInactiveCell() [3/3]

template<int dim, typename VectorType = Vector<double>, int spacedim = dim>
static ::ExceptionBase& MappingQEulerian< dim, VectorType, spacedim >::ExcInactiveCell ( )
static

Exception which is thrown when the mapping is being evaluated at non-active cell.

◆ ExcInvalidElement()

template<typename BaseIterator >
static ::ExceptionBase& FilteredIterator< BaseIterator >::ExcInvalidElement ( BaseIterator  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The element " << arg1 << " with which you want to compare or which you want to" << " assign from is invalid since it does not satisfy the predicate."

◆ ExcInvalidRadii()

static ::ExceptionBase& GridGenerator::ExcInvalidRadii ( )
static

Exception

◆ ExcInvalidRepetitions()

static ::ExceptionBase& GridGenerator::ExcInvalidRepetitions ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of repetitions " << arg1 << " must be >=1."

◆ ExcInvalidRepetitionsDimension()

static ::ExceptionBase& GridGenerator::ExcInvalidRepetitionsDimension ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The vector of repetitions must have " << arg1 << " elements."

◆ ExcInvalidInputOrientation()

static ::ExceptionBase& GridGenerator::ExcInvalidInputOrientation ( )
static

Exception for input that is not properly oriented.

Note
The message that will be printed by this exception reads:
"The input to this function is oriented in a way that will" " cause all cells to have negative measure."

◆ ExcUnknownSectionType()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcUnknownSectionType ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The section type <" << arg1 << "> in an UNV " << "input file is not implemented."

◆ ExcUnknownElementType()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcUnknownElementType ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The element type <" << arg1 << "> in an UNV " << "input file is not implemented."

◆ ExcUnknownIdentifier()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcUnknownIdentifier ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The identifier <" << arg1 << "> as name of a " << "part in an UCD input file is unknown or the " << "respective input routine is not implemented." << "(Maybe the space dimension of triangulation and " << "input file do not match?"

◆ ExcNoTriangulationSelected() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcNoTriangulationSelected ( )
static

Exception

◆ ExcInvalidVertexIndex() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcInvalidVertexIndex ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "While creating cell " << arg1 << ", you are referencing a vertex with index " << arg2 << " but no vertex with this index has been described in the input file."

◆ ExcInvalidVertexIndexGmsh()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcInvalidVertexIndexGmsh ( int  arg1,
int  arg2,
int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "While creating cell " << arg1 << " (which is numbered as " << arg2 << " in the input file), you are referencing a vertex with index " << arg3 << " but no vertex with this index has been described in the input file."

◆ ExcInvalidDBMeshFormat()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcInvalidDBMeshFormat ( )
static

Exception

◆ ExcInvalidDBMESHInput()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcInvalidDBMESHInput ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The string <" << arg1 << "> is not recognized at the present" << " position of a DB Mesh file."

◆ ExcDBMESHWrongDimension()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcDBMESHWrongDimension ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The specified dimension " << arg1 << " is not the same as that of the triangulation to be created."

◆ ExcInvalidGMSHInput()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcInvalidGMSHInput ( std::string  arg1)
static
Note
The message that will be printed by this exception reads:
<< "The string <" << arg1 << "> is not recognized at the present" << " position of a Gmsh Mesh file."

◆ ExcGmshUnsupportedGeometry()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcGmshUnsupportedGeometry ( int  arg1)
static
Note
The message that will be printed by this exception reads:
<< "The Element Identifier <" << arg1 << "> is not " << "supported in the deal.II library when " << "reading meshes in " << dim << " dimensions.\n" << "Supported elements are: \n" << "ELM-TYPE\n" << "1 Line (2 nodes, 1 edge).\n" << "3 Quadrilateral (4 nodes, 4 edges).\n" << "5 Hexahedron (8 nodes, 12 edges, 6 faces) when in 3d.\n" << "15 Point (1 node, ignored when read)"

◆ ExcGmshNoCellInformation()

template<int dim, int spacedim = dim>
static ::ExceptionBase& GridIn< dim, spacedim >::ExcGmshNoCellInformation ( )
static

◆ ExcInvalidState() [2/2]

static ::ExceptionBase& GridOut::ExcInvalidState ( )
static

Exception

◆ ExcNegativeCriteria()

static ::ExceptionBase& GridRefinement::ExcNegativeCriteria ( )
static

An exception thrown if the vector with cell criteria contains negative values

◆ ExcInvalidParameterValue()

static ::ExceptionBase& GridRefinement::ExcInvalidParameterValue ( )
static

One of the threshold parameters causes trouble. Or the refinement and coarsening thresholds overlap.

◆ ExcMeshNotOrientable()

static ::ExceptionBase& ExcMeshNotOrientable ( )
static

An exception that is thrown whenever the edges of a mesh are not orientable.

Note
The message that will be printed by this exception reads:
"The edges of the mesh are not consistently orientable."

◆ ExcInvalidNumberOfPartitions() [1/4]

static ::ExceptionBase& GridTools::ExcInvalidNumberOfPartitions ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of partitions you gave is " << arg1 << ", but must be greater than zero."

◆ ExcNonExistentSubdomain()

static ::ExceptionBase& GridTools::ExcNonExistentSubdomain ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The subdomain id " << arg1 << " has no cells associated with it."

◆ ExcTriangulationHasBeenRefined()

static ::ExceptionBase& GridTools::ExcTriangulationHasBeenRefined ( )
static

Exception

◆ ExcScalingFactorNotPositive()

static ::ExceptionBase& GridTools::ExcScalingFactorNotPositive ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The scaling factor must be positive, but it is " << arg1 << "."

◆ ExcPointNotFoundInCoarseGrid()

template<int N>
static ::ExceptionBase& GridTools::ExcPointNotFoundInCoarseGrid ( Point< N >  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The point <" << arg1 << "> could not be found inside any of the " << "coarse grid cells."

◆ ExcPointNotFound()

template<int N>
static ::ExceptionBase& GridTools::ExcPointNotFound ( Point< N >  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The point <" << arg1 << "> could not be found inside any of the " << "subcells of a coarse grid cell."

◆ ExcVertexNotUsed()

static ::ExceptionBase& GridTools::ExcVertexNotUsed ( unsigned int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The given vertex with index " << arg1 << " is not used in the given triangulation."

◆ ExcInvalidKey()

template<class MeshType >
static ::ExceptionBase& InterGridMap< MeshType >::ExcInvalidKey ( cell_iterator  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The iterator " << arg1 << " is not valid as key for " << "this map."

◆ ExcIncompatibleGrids()

template<class MeshType >
static ::ExceptionBase& InterGridMap< MeshType >::ExcIncompatibleGrids ( )
static

Exception

◆ ExcPeriodicBox()

template<int dim, int spacedim = dim>
static ::ExceptionBase& FlatManifold< dim, spacedim >::ExcPeriodicBox ( int  arg1,
Point< spacedim >  arg2,
double  arg3 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "The component number " << arg1 << " of the point [ " << arg2 << " ] is not in the interval [ 0, " << arg3 << "), bailing out."

◆ ExcTriaNotEmpty()

template<int dim, int spacedim = dim>
static ::ExceptionBase& PersistentTriangulation< dim, spacedim >::ExcTriaNotEmpty ( )
static

Exception.

◆ ExcFlagsNotCleared()

template<int dim, int spacedim = dim>
static ::ExceptionBase& PersistentTriangulation< dim, spacedim >::ExcFlagsNotCleared ( )
static

Exception.

◆ ExcInvalidLevel() [2/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcInvalidLevel ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You are requesting information from refinement level " << arg1 << " of a triangulation, but this triangulation only has " << arg2 << " refinement levels. The given level " << arg1 << " must be *less* than " << arg2 << "."

◆ ExcTriangulationNotEmpty()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcTriangulationNotEmpty ( int  arg1,
int  arg2 
)
static

The function raising this exception can only operate on an empty Triangulation, i.e., a Triangulation without grid cells.

Note
The message that will be printed by this exception reads:
<< "You are trying to perform an operation on a triangulation " << "that is only allowed if the triangulation is currently empty. " << "However, it currently stores " << arg1 << " vertices and has " << "cells on " << arg2 << " levels."

◆ ExcGridReadError()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcGridReadError ( )
static

Trying to re-read a grid, an error occurred.

◆ ExcFacesHaveNoLevel() [2/4]

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcFacesHaveNoLevel ( )
static

Exception

◆ ExcEmptyLevel() [2/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcEmptyLevel ( int  arg1)
static

The triangulation level you accessed is empty.

Note
The message that will be printed by this exception reads:
<< "You tried to do something on level " << arg1 << ", but this level is empty."

◆ ExcNonOrientableTriangulation()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcNonOrientableTriangulation ( )
static

Exception

◆ ExcBoundaryIdNotFound()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcBoundaryIdNotFound ( types::boundary_id  arg1)
static

Exception

Requested boundary_id not found

Note
The message that will be printed by this exception reads:
<< "The given boundary_id " << arg1 << " is not defined in this Triangulation!"

◆ ExcInconsistentCoarseningFlags()

template<int dim, int spacedim = dim>
static ::ExceptionBase& Triangulation< dim, spacedim >::ExcInconsistentCoarseningFlags ( )
static

Exception

Note
The message that will be printed by this exception reads:
"A cell is flagged for coarsening, but either not all of its siblings " "are active or flagged for coarsening as well. Please clean up all " "coarsen flags on your triangulation via " "Triangulation::prepare_coarsening_and_refinement() beforehand!"

◆ ExcCellNotUsed()

static ::ExceptionBase& TriaAccessorExceptions::ExcCellNotUsed ( )
static
Note
The message that will be printed by this exception reads:
"The operation you are attempting can only be performed for " "(cell, face, or edge) iterators that point to valid " "objects. These objects need not necessarily be active, " "i.e., have no children, but they need to be part of a " "triangulation. (The objects pointed to by an iterator " "may -- after coarsening -- also be objects that used " "to be part of a triangulation, but are now no longer " "used. Their memory location may have been retained " "for re-use upon the next mesh refinement, but is " "currently unused.)"

◆ ExcCellNotActive()

static ::ExceptionBase& TriaAccessorExceptions::ExcCellNotActive ( )
static

The cell is not an active cell, but it already has children. Some operations, like setting refinement flags or accessing degrees of freedom are only possible on active cells.

Note
The message that will be printed by this exception reads:
"The operation you are attempting can only be performed for " "(cell, face, or edge) iterators that point to 'active' " "objects. 'Active' objects are those that do not have " "children (in the case of cells), or that are part of " "an active cell (in the case of faces or edges). However, " "the object on which you are trying the current " "operation is not 'active' in this sense."

◆ ExcCellHasNoChildren()

static ::ExceptionBase& TriaAccessorExceptions::ExcCellHasNoChildren ( )
static

Trying to access the children of a cell which is in fact active.

Note
The message that will be printed by this exception reads:
"The operation you are attempting can only be performed for " "(cell, face, or edge) iterators that have children, " "but the object on which you are trying the current " "operation does not have any."

◆ ExcCellHasNoParent()

static ::ExceptionBase& TriaAccessorExceptions::ExcCellHasNoParent ( )
static

Trying to access the parent of a cell which is in the coarsest level of the triangulation.

Note
The message that will be printed by this exception reads:
"The operation you are attempting can only be performed for " "(cell, face, or edge) iterators that have a parent object, " "but the object on which you are trying the current " "operation does not have one -- i.e., it is on the " "coarsest level of the triangulation."

◆ ExcCantSetChildren()

static ::ExceptionBase& TriaAccessorExceptions::ExcCantSetChildren ( int  arg1)
static
Note
The message that will be printed by this exception reads:
<< "You can only set the child index if the cell does not " << "currently have children registered; or you can clear it. " << "The given index was " << arg1 << " (-1 means: clear children)."

◆ ExcDereferenceInvalidObject() [1/2]

template<typename AccessorType >
static ::ExceptionBase& TriaAccessorExceptions::ExcDereferenceInvalidObject ( AccessorType  arg1)
static
Note
The message that will be printed by this exception reads:
<< "You tried to dereference an iterator for which this " << "is not possible. More information on this iterator: " << "index=" << arg1.index() << ", state=" << (arg1.state() == IteratorState::valid ? "valid" : (arg1.state() == IteratorState::past_the_end ? "past_the_end" : "invalid"))

◆ ExcCantCompareIterators() [3/3]

static ::ExceptionBase& TriaAccessorExceptions::ExcCantCompareIterators ( )
static
Note
The message that will be printed by this exception reads:
"Iterators can only be compared if they point to the same " "triangulation, or if neither of them are associated " "with a triangulation."

◆ ExcNeighborIsCoarser()

static ::ExceptionBase& TriaAccessorExceptions::ExcNeighborIsCoarser ( )
static

◆ ExcNeighborIsNotCoarser()

static ::ExceptionBase& TriaAccessorExceptions::ExcNeighborIsNotCoarser ( )
static

◆ ExcFacesHaveNoLevel() [3/4]

static ::ExceptionBase& TriaAccessorExceptions::ExcFacesHaveNoLevel ( )
static

You are trying to access the level of a face, but faces have no inherent level. The level of a face can only be determined by the level of an adjacent face, which in turn implies that a face can have several levels.

◆ ExcNoPeriodicNeighbor()

static ::ExceptionBase& TriaAccessorExceptions::ExcNoPeriodicNeighbor ( )
static

You are trying to get the periodic neighbor for a face, which does not have a periodic neighbor. For more information on this, refer to entry for periodic boundaries.

◆ ExcSetOnlyEvenChildren()

static ::ExceptionBase& TriaAccessorExceptions::ExcSetOnlyEvenChildren ( int  arg1)
static
Note
The message that will be printed by this exception reads:
<< "You can only set the child index of an even numbered child." << "The number of the child given was " << arg1 << "."

◆ ExcRefineCellNotActive()

template<int dim, int spacedim = dim>
static ::ExceptionBase& CellAccessor< dim, spacedim >::ExcRefineCellNotActive ( )
static

◆ ExcCellFlaggedForRefinement()

template<int dim, int spacedim = dim>
static ::ExceptionBase& CellAccessor< dim, spacedim >::ExcCellFlaggedForRefinement ( )
static

◆ ExcCellFlaggedForCoarsening()

template<int dim, int spacedim = dim>
static ::ExceptionBase& CellAccessor< dim, spacedim >::ExcCellFlaggedForCoarsening ( )
static

◆ ExcDereferenceInvalidCell()

template<typename Accessor >
static ::ExceptionBase& TriaRawIterator< Accessor >::ExcDereferenceInvalidCell ( Accessor  arg1)
static

Exception for TriaObjects with level, i.e. cells.

Note
The message that will be printed by this exception reads:
<< "You tried to dereference a cell iterator for which this " << "is not possible. More information on this iterator: " << "level=" << arg1.level() << ", index=" << arg1.index() << ", state=" << (arg1.state() == IteratorState::valid ? "valid" : (arg1.state() == IteratorState::past_the_end ? "past_the_end" : "invalid"))

◆ ExcDereferenceInvalidObject() [2/2]

template<typename Accessor >
static ::ExceptionBase& TriaRawIterator< Accessor >::ExcDereferenceInvalidObject ( Accessor  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "You tried to dereference an iterator for which this " << "is not possible. More information on this iterator: " << "index=" << arg1.index() << ", state=" << (arg1.state() == IteratorState::valid ? "valid" : (arg1.state() == IteratorState::past_the_end ? "past_the_end" : "invalid"))

◆ ExcAdvanceInvalidObject()

template<typename Accessor >
static ::ExceptionBase& TriaRawIterator< Accessor >::ExcAdvanceInvalidObject ( )
static

Exception

◆ ExcInvalidComparison()

template<typename Accessor >
static ::ExceptionBase& TriaRawIterator< Accessor >::ExcInvalidComparison ( )
static

Exception

◆ ExcAssignmentOfUnusedObject()

template<typename Accessor >
static ::ExceptionBase& TriaIterator< Accessor >::ExcAssignmentOfUnusedObject ( )
static

Exception

◆ ExcAssignmentOfInactiveObject()

template<typename Accessor >
static ::ExceptionBase& TriaActiveIterator< Accessor >::ExcAssignmentOfInactiveObject ( )
static

Exception

◆ ExcMemoryInexact() [1/3]

template<int dim>
static ::ExceptionBase& internal::TriangulationImplementation::TriaLevel< dim >::ExcMemoryInexact ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The containers have sizes " << arg1 << " and " << arg2 << ", which is not as expected."

◆ ExcMemoryInexact() [2/3]

static ::ExceptionBase& internal::TriangulationImplementation::TriaLevel< 3 >::ExcMemoryInexact ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The containers have sizes " << arg1 << " and " << arg2 << ", which is not as expected."

◆ ExcMemoryInexact() [3/3]

template<typename G >
static ::ExceptionBase& internal::TriangulationImplementation::TriaObjects< G >::ExcMemoryInexact ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The containers have sizes " << arg1 << " and " << arg2 << ", which is not as expected."

◆ ExcPointerIndexClash()

template<typename G >
static ::ExceptionBase& internal::TriangulationImplementation::TriaObjects< G >::ExcPointerIndexClash ( )
static

Triangulation objects can either access a user pointer or a user index. What you tried to do is trying to access one of those after using the other.

◆ ExcNoFESelected() [2/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcNoFESelected ( )
static

Exception

◆ ExcGridsDoNotMatch() [2/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcGridsDoNotMatch ( )
static

Exception

◆ ExcInvalidBoundaryIndicator() [3/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcInvalidBoundaryIndicator ( )
static

Exception

◆ ExcMatrixHasWrongSize()

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcMatrixHasWrongSize ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The matrix has the wrong dimension " << arg1

◆ ExcFunctionNotUseful()

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcFunctionNotUseful ( )
static

Exception

◆ ExcNewNumbersNotConsecutive() [2/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcNewNumbersNotConsecutive ( types::global_dof_index  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The given list of new dof indices is not consecutive: " << "the index " << arg1 << " does not exist."

◆ ExcInvalidFEIndex()

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcInvalidFEIndex ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The mesh contains a cell with an active_fe_index of " << arg1 << ", but the finite element collection only has " << arg2 << " elements"

◆ ExcInvalidLevel() [3/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcInvalidLevel ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The given level " << arg1 << " is not in the valid range!"

◆ ExcFacesHaveNoLevel() [4/4]

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcFacesHaveNoLevel ( )
static

Exception

◆ ExcEmptyLevel() [3/3]

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::DoFHandler< dim, spacedim >::ExcEmptyLevel ( int  arg1)
static

The triangulation level you accessed is empty.

Note
The message that will be printed by this exception reads:
<< "You tried to do something on level " << arg1 << ", but this level is empty."

◆ ExcNoFiniteElements()

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::FECollection< dim, spacedim >::ExcNoFiniteElements ( )
static

Exception

◆ ExcNoDominatedFiniteElementAmongstChildren()

template<int dim, int spacedim = dim>
static ::ExceptionBase& hp::FECollection< dim, spacedim >::ExcNoDominatedFiniteElementAmongstChildren ( )
static

Exception

Note
The message that will be printed by this exception reads:
"No FiniteElement has been found in your FECollection that is " "dominated by all children of a cell you are trying to coarsen!"

◆ ExcNoQuadrature()

template<int dim>
static ::ExceptionBase& hp::QCollection< dim >::ExcNoQuadrature ( )
static

Exception

◆ ExcMatrixIsClosed()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcMatrixIsClosed ( )
static

Exception

◆ ExcMatrixNotClosed()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcMatrixNotClosed ( )
static

Exception

◆ ExcLineInexistant() [1/2]

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcLineInexistant ( size_type  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The specified line " << arg1 << " does not exist."

◆ ExcEntryAlreadyExists() [2/2]

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcEntryAlreadyExists ( size_type  arg1,
size_type  arg2,
number  arg3,
number  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The entry for the indices " << arg1 << " and " << arg2 << " already exists, but the values " << arg3 << " (old) and " << arg4 << " (new) differ " << "by " << (arg4 - arg3) << "."

◆ ExcDoFConstrainedToConstrainedDoF()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcDoFConstrainedToConstrainedDoF ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to constrain DoF " << arg1 << " to DoF " << arg2 << ", but that one is also constrained. This is not allowed!"

◆ ExcDoFIsConstrainedFromBothObjects()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcDoFIsConstrainedFromBothObjects ( size_type  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "Degree of freedom " << arg1 << " is constrained from both object in a merge operation."

◆ ExcDoFIsConstrainedToConstrainedDoF()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcDoFIsConstrainedToConstrainedDoF ( size_type  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "In the given argument a degree of freedom is constrained " << "to another DoF with number " << arg1 << ", which however is constrained by this object. This is not" << " allowed."

◆ ExcRowNotStoredHere()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcRowNotStoredHere ( size_type  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The index set given to this constraints object indicates " << "constraints for degree of freedom " << arg1 << " should not be stored by this object, but a constraint " << "is being added."

◆ ExcColumnNotStoredHere()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcColumnNotStoredHere ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The index set given to this constraints object indicates " << "constraints using degree of freedom " << arg2 << " should not be stored by this object, but a constraint " << "for degree of freedom " << arg1 << " uses it."

◆ ExcIncorrectConstraint()

template<typename number = double>
static ::ExceptionBase& AffineConstraints< number >::ExcIncorrectConstraint ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "While distributing the constraint for DoF " << arg1 << ", it turns out that one of the processors " << "who own the " << arg2 << " degrees of freedom that x_" << arg1 << " is constrained against does not know about " << "the constraint on x_" << arg1 << ". Did you not initialize the AffineConstraints container " << "with the appropriate locally_relevant set so " << "that every processor who owns a DoF that constrains " << "another DoF also knows about this constraint?"

◆ ArpackExcInvalidNumberofEigenvalues()

static ::ExceptionBase& ArpackSolver::ArpackExcInvalidNumberofEigenvalues ( int  arg1,
int  arg2 
)
staticprivate

Exceptions.

Note
The message that will be printed by this exception reads:
<< "Number of wanted eigenvalues " << arg1 << " is larger that the size of the matrix " << arg2

◆ ArpackExcInvalidEigenvectorSize()

static ::ExceptionBase& ArpackSolver::ArpackExcInvalidEigenvectorSize ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of wanted eigenvalues " << arg1 << " is larger that the size of eigenvectors " << arg2

◆ ArpackExcInvalidEigenvectorSizeNonsymmetric()

static ::ExceptionBase& ArpackSolver::ArpackExcInvalidEigenvectorSizeNonsymmetric ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "To store the real and complex parts of " << arg1 << " eigenvectors in real-valued vectors, their size (currently set to " << arg2 << ") should be greater than or equal to " << arg1 + 1

◆ ArpackExcInvalidEigenvalueSize()

static ::ExceptionBase& ArpackSolver::ArpackExcInvalidEigenvalueSize ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of wanted eigenvalues " << arg1 << " is larger that the size of eigenvalues " << arg2

◆ ArpackExcInvalidNumberofArnoldiVectors()

static ::ExceptionBase& ArpackSolver::ArpackExcInvalidNumberofArnoldiVectors ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of Arnoldi vectors " << arg1 << " is larger that the size of the matrix " << arg2

◆ ArpackExcSmallNumberofArnoldiVectors()

static ::ExceptionBase& ArpackSolver::ArpackExcSmallNumberofArnoldiVectors ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of Arnoldi vectors " << arg1 << " is too small to obtain " << arg2 << " eigenvalues"

◆ ArpackExcArpackIdo()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackIdo ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "This ido " << arg1 << " is not supported. Check documentation of ARPACK"

◆ ArpackExcArpackMode()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackMode ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "This mode " << arg1 << " is not supported. Check documentation of ARPACK"

◆ ArpackExcArpackInfodsaupd()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackInfodsaupd ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Error with dsaupd, info " << arg1 << ". Check documentation of ARPACK"

◆ ArpackExcArpackInfodnaupd()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackInfodnaupd ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Error with dnaupd, info " << arg1 << ". Check documentation of ARPACK"

◆ ArpackExcArpackInfodseupd()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackInfodseupd ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Error with dseupd, info " << arg1 << ". Check documentation of ARPACK"

◆ ArpackExcArpackInfodneupd()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackInfodneupd ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Error with dneupd, info " << arg1 << ". Check documentation of ARPACK"

◆ ArpackExcArpackInfoMaxIt()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackInfoMaxIt ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Maximum number " << arg1 << " of iterations reached."

◆ ArpackExcArpackNoShifts()

static ::ExceptionBase& ArpackSolver::ArpackExcArpackNoShifts ( )
staticprivate
Note
The message that will be printed by this exception reads:
"No shifts could be applied during implicit" " Arnoldi update, try increasing the number of" " Arnoldi vectors."

◆ ExcIncompatibleRowNumbers() [1/3]

template<typename MatrixType >
static ::ExceptionBase& BlockMatrixBase< MatrixType >::ExcIncompatibleRowNumbers ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The blocks [" << arg1 << ',' << arg2 << "] and [" << arg3 << ',' << arg4 << "] have differing row numbers."

◆ ExcIncompatibleColNumbers() [1/3]

template<typename MatrixType >
static ::ExceptionBase& BlockMatrixBase< MatrixType >::ExcIncompatibleColNumbers ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The blocks [" << arg1 << ',' << arg2 << "] and [" << arg3 << ',' << arg4 << "] have differing column numbers."

◆ clear()

template<typename MatrixType >
void BlockMatrixBase< MatrixType >::clear ( )
protected

Release all memory and return to a state just like after having called the default constructor. It also forgets the sparsity pattern it was previously tied to.

This calls clear for all sub-matrices and then resets this object to have no blocks at all.

This function is protected since it may be necessary to release additional structures. A derived class can make it public again, if it is sufficient.

◆ collect_sizes() [1/2]

template<typename MatrixType >
void BlockMatrixBase< MatrixType >::collect_sizes ( )
protected

This function collects the sizes of the sub-objects and stores them in internal arrays, in order to be able to relay global indices into the matrix to indices into the subobjects. You must call this function each time after you have changed the size of the sub-objects.

Derived classes should call this function whenever the size of the sub- objects has changed and the X_block_indices arrays need to be updated.

Note that this function is not public since not all derived classes need to export its interface. For example, for the usual deal.II SparseMatrix class, the sizes are implicitly determined whenever reinit() is called, and individual blocks cannot be resized. For that class, this function therefore does not have to be public. On the other hand, for the PETSc classes, there is no associated sparsity pattern object that determines the block sizes, and for these the function needs to be publicly available. These classes therefore export this function.

◆ vmult_block_block()

template<typename MatrixType >
template<class BlockVectorType >
void BlockMatrixBase< MatrixType >::vmult_block_block ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const
protected

Matrix-vector multiplication: let \(dst = M*src\) with \(M\) being this matrix.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ vmult_block_nonblock()

template<typename MatrixType >
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::vmult_block_nonblock ( BlockVectorType &  dst,
const VectorType src 
) const
protected

Matrix-vector multiplication. Just like the previous function, but only applicable if the matrix has only one block column.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ vmult_nonblock_block()

template<typename MatrixType >
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::vmult_nonblock_block ( VectorType dst,
const BlockVectorType &  src 
) const
protected

Matrix-vector multiplication. Just like the previous function, but only applicable if the matrix has only one block row.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ vmult_nonblock_nonblock()

template<typename MatrixType >
template<class VectorType >
void BlockMatrixBase< MatrixType >::vmult_nonblock_nonblock ( VectorType dst,
const VectorType src 
) const
protected

Matrix-vector multiplication. Just like the previous function, but only applicable if the matrix has only one block.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ Tvmult_block_block()

template<typename MatrixType >
template<class BlockVectorType >
void BlockMatrixBase< MatrixType >::Tvmult_block_block ( BlockVectorType &  dst,
const BlockVectorType &  src 
) const
protected

Matrix-vector multiplication: let \(dst = M^T*src\) with \(M\) being this matrix. This function does the same as vmult() but takes the transposed matrix.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ Tvmult_block_nonblock()

template<typename MatrixType >
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::Tvmult_block_nonblock ( BlockVectorType &  dst,
const VectorType src 
) const
protected

Matrix-vector multiplication. Just like the previous function, but only applicable if the matrix has only one block row.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ Tvmult_nonblock_block()

template<typename MatrixType >
template<class BlockVectorType , class VectorType >
void BlockMatrixBase< MatrixType >::Tvmult_nonblock_block ( VectorType dst,
const BlockVectorType &  src 
) const
protected

Matrix-vector multiplication. Just like the previous function, but only applicable if the matrix has only one block column.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ Tvmult_nonblock_nonblock()

template<typename MatrixType >
template<class VectorType >
void BlockMatrixBase< MatrixType >::Tvmult_nonblock_nonblock ( VectorType dst,
const VectorType src 
) const
protected

Matrix-vector multiplication. Just like the previous function, but only applicable if the matrix has only one block.

Due to problems with deriving template arguments between the block and non-block versions of the vmult/Tvmult functions, the actual functions are implemented in derived classes, with implementations forwarding the calls to the implementations provided here under a unique name for which template arguments can be derived by the compiler.

◆ prepare_add_operation()

template<typename MatrixType >
void BlockMatrixBase< MatrixType >::prepare_add_operation ( )
protected

Some matrix types, in particular PETSc, need to synchronize set and add operations. This has to be done for all matrices in the BlockMatrix. This routine prepares adding of elements by notifying all blocks. Called by all internal routines before adding elements.

◆ prepare_set_operation()

template<typename MatrixType >
void BlockMatrixBase< MatrixType >::prepare_set_operation ( )
protected

Notifies all blocks to let them prepare for setting elements, see prepare_add_operation().

◆ operator=() [4/11]

template<typename MatrixType >
TemporaryData& BlockMatrixBase< MatrixType >::TemporaryData::operator= ( const TemporaryData )
inline

Copy operator. This is needed because the default copy operator of this class is deleted (since std::mutex is not copyable) and hence the default copy operator of the enclosing class is also deleted.

The implementation here simply does nothing – TemporaryData objects are just scratch objects that are resized at the beginning of their use, so there is no point actually copying anything.

Definition at line 1055 of file block_matrix_base.h.

◆ ExcBlockDimensionMismatch()

template<typename number >
static ::ExceptionBase& BlockSparseMatrix< number >::ExcBlockDimensionMismatch ( )
static

Exception

◆ ExcIncompatibleRowNumbers() [2/3]

template<typename SparsityPatternType >
static ::ExceptionBase& BlockSparsityPatternBase< SparsityPatternType >::ExcIncompatibleRowNumbers ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The blocks [" << arg1 << ',' << arg2 << "] and [" << arg3 << ',' << arg4 << "] have differing row numbers."

◆ ExcIncompatibleColNumbers() [2/3]

template<typename SparsityPatternType >
static ::ExceptionBase& BlockSparsityPatternBase< SparsityPatternType >::ExcIncompatibleColNumbers ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The blocks [" << arg1 << ',' << arg2 << "] and [" << arg3 << ',' << arg4 << "] have differing column numbers."

◆ BlockSparsityPattern() [1/2]

BlockSparsityPattern::BlockSparsityPattern ( )
default

Initialize the matrix empty, that is with no memory allocated. This is useful if you want such objects as member variables in other classes. You can make the structure usable by calling the reinit() function.

◆ BlockSparsityPattern() [2/2]

BlockSparsityPattern::BlockSparsityPattern ( const size_type  n_rows,
const size_type  n_columns 
)

Initialize the matrix with the given number of block rows and columns. The blocks themselves are still empty, and you have to call collect_sizes() after you assign them sizes.

Definition at line 333 of file block_sparsity_pattern.cc.

◆ reinit() [1/6]

void BlockSparsityPattern::reinit ( const size_type  n_block_rows,
const size_type  n_block_columns 
)
inline

Forwarding to BlockSparsityPatternBase::reinit().

Definition at line 986 of file block_sparsity_pattern.h.

◆ reinit() [2/6]

void BlockSparsityPattern::reinit ( const BlockIndices row_indices,
const BlockIndices col_indices,
const std::vector< std::vector< unsigned int >> &  row_lengths 
)

Initialize the pattern with two BlockIndices for the block structures of matrix rows and columns as well as a row length vector.

The row length vector should be in the format produced by DoFTools. Alternatively, there is a simplified version, where each of the inner vectors has length one. Then, the corresponding entry is used as the maximal row length.

For the diagonal blocks, the inner SparsityPattern is initialized with optimized diagonals, while this is not done for the off-diagonal blocks.

Definition at line 340 of file block_sparsity_pattern.cc.

◆ is_compressed()

bool BlockSparsityPattern::is_compressed ( ) const

Return whether the structure is compressed or not, i.e. whether all sub- matrices are compressed.

Definition at line 378 of file block_sparsity_pattern.cc.

◆ memory_consumption() [13/16]

std::size_t BlockSparsityPattern::memory_consumption ( ) const

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

Definition at line 389 of file block_sparsity_pattern.cc.

◆ copy_from() [1/6]

void BlockSparsityPattern::copy_from ( const BlockDynamicSparsityPattern dsp)

Copy data from an object of type BlockDynamicSparsityPattern, i.e. resize this object to the size of the given argument, and copy over the contents of each of the subobjects. Previous content of this object is lost.

Definition at line 407 of file block_sparsity_pattern.cc.

◆ BlockDynamicSparsityPattern() [1/5]

BlockDynamicSparsityPattern::BlockDynamicSparsityPattern ( )
default

Initialize the matrix empty, that is with no memory allocated. This is useful if you want such objects as member variables in other classes. You can make the structure usable by calling the reinit() function.

◆ BlockDynamicSparsityPattern() [2/5]

BlockDynamicSparsityPattern::BlockDynamicSparsityPattern ( const size_type  n_rows,
const size_type  n_columns 
)

Initialize the matrix with the given number of block rows and columns. The blocks themselves are still empty, and you have to call collect_sizes() after you assign them sizes.

Definition at line 425 of file block_sparsity_pattern.cc.

◆ BlockDynamicSparsityPattern() [3/5]

BlockDynamicSparsityPattern::BlockDynamicSparsityPattern ( const std::vector< size_type > &  row_block_sizes,
const std::vector< size_type > &  col_block_sizes 
)

Initialize the pattern with two BlockIndices for the block structures of matrix rows and columns. This function is equivalent to calling the previous constructor with the length of the two index vector and then entering the index values.

Definition at line 433 of file block_sparsity_pattern.cc.

◆ BlockDynamicSparsityPattern() [4/5]

BlockDynamicSparsityPattern::BlockDynamicSparsityPattern ( const std::vector< IndexSet > &  partitioning)

Initialize the pattern with symmetric blocks. The number of IndexSets in the vector determine the number of rows and columns of blocks. The size of each block is determined by the size() of the respective IndexSet. Each block only stores the rows given by the values in the IndexSet, which is useful for distributed memory parallel computations and usually corresponds to the locally owned DoFs.

Definition at line 446 of file block_sparsity_pattern.cc.

◆ BlockDynamicSparsityPattern() [5/5]

BlockDynamicSparsityPattern::BlockDynamicSparsityPattern ( const BlockIndices row_indices,
const BlockIndices col_indices 
)

Initialize the pattern with two BlockIndices for the block structures of matrix rows and columns.

Definition at line 460 of file block_sparsity_pattern.cc.

◆ reinit() [3/6]

void BlockDynamicSparsityPattern::reinit ( const std::vector< size_type > &  row_block_sizes,
const std::vector< size_type > &  col_block_sizes 
)

Resize the pattern to a tensor product of matrices with dimensions defined by the arguments.

The matrix will have as many block rows and columns as there are entries in the two arguments. The block at position (i,j) will have the dimensions row_block_sizes[i] times col_block_sizes[j].

Definition at line 469 of file block_sparsity_pattern.cc.

◆ reinit() [4/6]

void BlockDynamicSparsityPattern::reinit ( const std::vector< IndexSet > &  partitioning)

Resize the pattern with symmetric blocks determined by the size() of each IndexSet. See the constructor taking a vector of IndexSets for details.

Definition at line 482 of file block_sparsity_pattern.cc.

◆ reinit() [5/6]

void BlockDynamicSparsityPattern::reinit ( const BlockIndices row_indices,
const BlockIndices col_indices 
)

Resize the matrix to a tensor product of matrices with dimensions defined by the arguments. The two BlockIndices objects must be initialized and the sparsity pattern will have the same block structure afterwards.

Definition at line 495 of file block_sparsity_pattern.cc.

◆ column_number()

BlockDynamicSparsityPattern::size_type BlockDynamicSparsityPattern::column_number ( const size_type  row,
const unsigned int  index 
) const
inline

Access to column number field. Return the column number of the index th entry in row row.

Definition at line 957 of file block_sparsity_pattern.h.

◆ ExcIteratorRangeDoesNotMatchVectorSize() [1/4]

template<typename Number >
static ::ExceptionBase& BlockVector< Number >::ExcIteratorRangeDoesNotMatchVectorSize ( )
static

Exception

◆ reinit_range_vector()

template<typename number >
template<typename Matrix >
static void internal::LinearOperatorImplementation::ReinitHelper< BlockVector< number > >::reinit_range_vector ( const Matrix &  matrix,
BlockVector< number > &  v,
bool  omit_zeroing_entries 
)
inlinestatic

Definition at line 514 of file block_vector.h.

◆ reinit_domain_vector()

template<typename number >
template<typename Matrix >
static void internal::LinearOperatorImplementation::ReinitHelper< BlockVector< number > >::reinit_domain_vector ( const Matrix &  matrix,
BlockVector< number > &  v,
bool  omit_zeroing_entries 
)
inlinestatic

Definition at line 523 of file block_vector.h.

◆ ExcPointerToDifferentVectors()

template<class BlockVectorType , bool Constness>
static ::ExceptionBase& internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::ExcPointerToDifferentVectors ( )
static

Exception thrown when one performs arithmetical comparisons on iterators belonging to two different block vectors.

Note
The message that will be printed by this exception reads:
"Your program tried to compare iterators pointing to " "different block vectors. There is no reasonable way " "to do this."

◆ move_forward()

template<class BlockVectorType , bool Constness>
void internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::move_forward ( )
private

Move forward one element.

◆ move_backward()

template<class BlockVectorType , bool Constness>
void internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::move_backward ( )
private

Move backward one element.

◆ BlockVectorBase() [1/3]

template<class VectorType >
BlockVectorBase< VectorType >::BlockVectorBase ( )
default

Default constructor.

◆ BlockVectorBase() [2/3]

template<class VectorType >
BlockVectorBase< VectorType >::BlockVectorBase ( const BlockVectorBase< VectorType > &  )
default

Copy constructor.

◆ BlockVectorBase() [3/3]

template<class VectorType >
BlockVectorBase< VectorType >::BlockVectorBase ( BlockVectorBase< VectorType > &&  )
defaultnoexcept

Move constructor. Each block of the argument vector is moved into the current object if the underlying VectorType is move-constructible, otherwise they are copied.

◆ collect_sizes() [2/2]

template<class VectorType >
void BlockVectorBase< VectorType >::collect_sizes ( )

Update internal structures after resizing vectors. Whenever you reinited a block of a block vector, the internal data structures are corrupted. Therefore, you should call this function after all blocks got their new size.

◆ compress() [1/2]

template<class VectorType >
void BlockVectorBase< VectorType >::compress ( ::VectorOperation::values  operation)

Call the compress() function on all the subblocks of the matrix.

This functionality only needs to be called if using MPI based vectors and exists in other objects for compatibility.

See Compressing distributed objects for more information.

◆ block() [1/2]

template<class VectorType >
BlockType& BlockVectorBase< VectorType >::block ( const unsigned int  i)

Access to a single block.

◆ block() [2/2]

template<class VectorType >
const BlockType& BlockVectorBase< VectorType >::block ( const unsigned int  i) const

Read-only access to a single block.

◆ get_block_indices()

template<class VectorType >
const BlockIndices& BlockVectorBase< VectorType >::get_block_indices ( ) const

Return a reference on the object that describes the mapping between block and global indices. The use of this function is highly deprecated and it should vanish in one of the next versions

◆ n_blocks()

template<class VectorType >
unsigned int BlockVectorBase< VectorType >::n_blocks ( ) const

Number of blocks.

◆ size() [2/2]

template<class VectorType >
std::size_t BlockVectorBase< VectorType >::size ( ) const

Return dimension of the vector. This is the sum of the dimensions of all components.

◆ locally_owned_elements()

template<class VectorType >
IndexSet BlockVectorBase< VectorType >::locally_owned_elements ( ) const

Return an index set that describes which elements of this vector are owned by the current processor. Note that this index set does not include elements this vector may store locally as ghost elements but that are in fact owned by another processor. As a consequence, the index sets returned on different processors if this is a distributed vector will form disjoint sets that add up to the complete index set. Obviously, if a vector is created on only one processor, then the result would satisfy

vec.locally_owned_elements() == complete_index_set (vec.size())

For block vectors, this function returns the union of the locally owned elements of the individual blocks, shifted by their respective index offsets.

◆ begin() [1/4]

template<class VectorType >
iterator BlockVectorBase< VectorType >::begin ( )

Return an iterator pointing to the first element.

◆ begin() [2/4]

template<class VectorType >
const_iterator BlockVectorBase< VectorType >::begin ( ) const

Return an iterator pointing to the first element of a constant block vector.

◆ end() [1/4]

template<class VectorType >
iterator BlockVectorBase< VectorType >::end ( )

Return an iterator pointing to the element past the end.

◆ end() [2/4]

template<class VectorType >
const_iterator BlockVectorBase< VectorType >::end ( ) const

Return an iterator pointing to the element past the end of a constant block vector.

◆ operator()() [2/4]

template<class VectorType >
value_type BlockVectorBase< VectorType >::operator() ( const size_type  i) const

Access components, returns U(i).

◆ operator()() [3/4]

template<class VectorType >
reference BlockVectorBase< VectorType >::operator() ( const size_type  i)

Access components, returns U(i) as a writeable reference.

◆ operator[]() [1/2]

template<class VectorType >
value_type BlockVectorBase< VectorType >::operator[] ( const size_type  i) const

Access components, returns U(i).

Exactly the same as operator().

◆ operator[]() [2/2]

template<class VectorType >
reference BlockVectorBase< VectorType >::operator[] ( const size_type  i)

Access components, returns U(i) as a writeable reference.

Exactly the same as operator().

◆ extract_subvector_to() [1/2]

template<class VectorType >
template<typename OtherNumber >
void BlockVectorBase< VectorType >::extract_subvector_to ( const std::vector< size_type > &  indices,
std::vector< OtherNumber > &  values 
) const

Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. The indices of the elements to be read are stated in the first argument, the corresponding values are returned in the second.

If the current vector is called v, then this function is the equivalent to the code

for (unsigned int i=0; i<indices.size(); ++i)
values[i] = v[indices[i]];
Precondition
The sizes of the indices and values arrays must be identical.

◆ extract_subvector_to() [2/2]

template<class VectorType >
template<typename ForwardIterator , typename OutputIterator >
void BlockVectorBase< VectorType >::extract_subvector_to ( ForwardIterator  indices_begin,
const ForwardIterator  indices_end,
OutputIterator  values_begin 
) const

Instead of getting individual elements of a vector via operator(), this function allows getting a whole set of elements at once. In contrast to the previous function, this function obtains the indices of the elements by dereferencing all elements of the iterator range provided by the first two arguments, and puts the vector values into memory locations obtained by dereferencing a range of iterators starting at the location pointed to by the third argument.

If the current vector is called v, then this function is the equivalent to the code

ForwardIterator indices_p = indices_begin;
OutputIterator values_p = values_begin;
while (indices_p != indices_end)
{
*values_p = v[*indices_p];
++indices_p;
++values_p;
}
Precondition
It must be possible to write into as many memory locations starting at values_begin as there are iterators between indices_begin and indices_end.

◆ operator=() [5/11]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator= ( const value_type  s)

Copy operator: fill all components of the vector with the given scalar value.

◆ operator=() [6/11]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator= ( const BlockVectorBase< VectorType > &  V)

Copy operator for arguments of the same type.

◆ operator=() [7/11]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator= ( BlockVectorBase< VectorType > &&  )
default

Move assignment operator. Move each block of the given argument vector into the current object if VectorType is move-constructible, otherwise copy them.

◆ operator=() [8/11]

template<class VectorType >
template<class VectorType2 >
BlockVectorBase& BlockVectorBase< VectorType >::operator= ( const BlockVectorBase< VectorType2 > &  V)

Copy operator for template arguments of different types.

◆ operator=() [9/11]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator= ( const VectorType v)

Copy operator from non-block vectors to block vectors.

◆ operator==() [4/7]

template<class VectorType >
template<class VectorType2 >
bool BlockVectorBase< VectorType >::operator== ( const BlockVectorBase< VectorType2 > &  v) const

Check for equality of two block vector types. This operation is only allowed if the two vectors already have the same block structure.

◆ operator*() [4/6]

template<class VectorType >
value_type BlockVectorBase< VectorType >::operator* ( const BlockVectorBase< VectorType > &  V) const

\(U = U * V\): scalar product.

◆ norm_sqr()

template<class VectorType >
real_type BlockVectorBase< VectorType >::norm_sqr ( ) const

Return the square of the \(l_2\)-norm.

◆ mean_value()

template<class VectorType >
value_type BlockVectorBase< VectorType >::mean_value ( ) const

Return the mean value of the elements of this vector.

◆ l1_norm()

template<class VectorType >
real_type BlockVectorBase< VectorType >::l1_norm ( ) const

Return the \(l_1\)-norm of the vector, i.e. the sum of the absolute values.

◆ l2_norm()

template<class VectorType >
real_type BlockVectorBase< VectorType >::l2_norm ( ) const

Return the \(l_2\)-norm of the vector, i.e. the square root of the sum of the squares of the elements.

◆ linfty_norm()

template<class VectorType >
real_type BlockVectorBase< VectorType >::linfty_norm ( ) const

Return the maximum absolute value of the elements of this vector, which is the \(l_\infty\)-norm of a vector.

◆ add_and_dot()

template<class VectorType >
value_type BlockVectorBase< VectorType >::add_and_dot ( const value_type  a,
const BlockVectorBase< VectorType > &  V,
const BlockVectorBase< VectorType > &  W 
)

Performs a combined operation of a vector addition and a subsequent inner product, returning the value of the inner product. In other words, the result of this function is the same as if the user called

this->add(a, V);
return_value = *this * W;

The reason this function exists is that this operation involves less memory transfer than calling the two functions separately on deal.II's vector classes (Vector<Number> and LinearAlgebra::distributed::Vector<double>). This method only needs to load three vectors, this, V, W, whereas calling separate methods means to load the calling vector this twice. Since most vector operations are memory transfer limited, this reduces the time by 25% (or 50% if W equals this).

For complex-valued vectors, the scalar product in the second step is implemented as \(\left<v,w\right>=\sum_i v_i \bar{w_i}\).

◆ in_local_range()

template<class VectorType >
bool BlockVectorBase< VectorType >::in_local_range ( const size_type  global_index) const

Return true if the given global index is in the local range of this processor. Asks the corresponding block.

◆ all_zero()

template<class VectorType >
bool BlockVectorBase< VectorType >::all_zero ( ) const

Return whether the vector contains only elements with value zero. This function is mainly for internal consistency check and should seldom be used when not in debug mode since it uses quite some time.

◆ is_non_negative()

template<class VectorType >
bool BlockVectorBase< VectorType >::is_non_negative ( ) const

Return true if the vector has no negative entries, i.e. all entries are zero or positive. This function is used, for example, to check whether refinement indicators are really all positive (or zero).

◆ operator+=() [4/4]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator+= ( const BlockVectorBase< VectorType > &  V)

Addition operator. Fast equivalent to U.add(1, V).

◆ operator-=() [3/3]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator-= ( const BlockVectorBase< VectorType > &  V)

Subtraction operator. Fast equivalent to U.add(-1, V).

◆ add() [1/6]

template<class VectorType >
template<typename Number >
void BlockVectorBase< VectorType >::add ( const std::vector< size_type > &  indices,
const std::vector< Number > &  values 
)

A collective add operation: This function adds a whole set of values stored in values to the vector components specified by indices.

◆ add() [2/6]

template<class VectorType >
template<typename Number >
void BlockVectorBase< VectorType >::add ( const std::vector< size_type > &  indices,
const Vector< Number > &  values 
)

This is a second collective add operation. As a difference, this function takes a deal.II vector of values.

◆ add() [3/6]

template<class VectorType >
template<typename Number >
void BlockVectorBase< VectorType >::add ( const size_type  n_elements,
const size_type indices,
const Number *  values 
)

Take an address where n_elements are stored contiguously and add them into the vector. Handles all cases which are not covered by the other two add() functions above.

◆ add() [4/6]

template<class VectorType >
void BlockVectorBase< VectorType >::add ( const value_type  s)

\(U(0-DIM)+=s\). Addition of s to all components. Note that s is a scalar and not a vector.

◆ add() [5/6]

template<class VectorType >
void BlockVectorBase< VectorType >::add ( const value_type  a,
const BlockVectorBase< VectorType > &  V 
)

U+=a*V. Simple addition of a scaled vector.

◆ add() [6/6]

template<class VectorType >
void BlockVectorBase< VectorType >::add ( const value_type  a,
const BlockVectorBase< VectorType > &  V,
const value_type  b,
const BlockVectorBase< VectorType > &  W 
)

U+=a*V+b*W. Multiple addition of scaled vectors.

◆ sadd() [1/4]

template<class VectorType >
void BlockVectorBase< VectorType >::sadd ( const value_type  s,
const BlockVectorBase< VectorType > &  V 
)

U=s*U+V. Scaling and simple vector addition.

◆ sadd() [2/4]

template<class VectorType >
void BlockVectorBase< VectorType >::sadd ( const value_type  s,
const value_type  a,
const BlockVectorBase< VectorType > &  V 
)

U=s*U+a*V. Scaling and simple addition.

◆ sadd() [3/4]

template<class VectorType >
void BlockVectorBase< VectorType >::sadd ( const value_type  s,
const value_type  a,
const BlockVectorBase< VectorType > &  V,
const value_type  b,
const BlockVectorBase< VectorType > &  W 
)

U=s*U+a*V+b*W. Scaling and multiple addition.

◆ sadd() [4/4]

template<class VectorType >
void BlockVectorBase< VectorType >::sadd ( const value_type  s,
const value_type  a,
const BlockVectorBase< VectorType > &  V,
const value_type  b,
const BlockVectorBase< VectorType > &  W,
const value_type  c,
const BlockVectorBase< VectorType > &  X 
)

U=s*U+a*V+b*W+c*X. Scaling and multiple addition.

◆ operator*=() [3/3]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator*= ( const value_type  factor)

Scale each element of the vector by a constant value.

◆ operator/=() [3/3]

template<class VectorType >
BlockVectorBase& BlockVectorBase< VectorType >::operator/= ( const value_type  factor)

Scale each element of the vector by the inverse of the given value.

◆ scale()

template<class VectorType >
template<class BlockVector2 >
void BlockVectorBase< VectorType >::scale ( const BlockVector2 &  v)

Multiply each element of this vector by the corresponding element of v.

◆ equ()

template<class VectorType >
template<class BlockVector2 >
void BlockVectorBase< VectorType >::equ ( const value_type  a,
const BlockVector2 &  V 
)

U=a*V. Assignment.

◆ update_ghost_values()

template<class VectorType >
void BlockVectorBase< VectorType >::update_ghost_values ( ) const

Update the ghost values by calling update_ghost_values for each block.

◆ memory_consumption() [14/16]

template<class VectorType >
std::size_t BlockVectorBase< VectorType >::memory_consumption ( ) const

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

◆ ExcInvalidIndex() [1/5]

template<typename number >
static ::ExceptionBase& ChunkSparseMatrix< number >::ExcInvalidIndex ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You are trying to access the matrix entry with index <" << arg1 << ',' << arg2 << ">, but this entry does not exist in the sparsity pattern " "of this matrix." "\n\n" "The most common cause for this problem is that you used " "a method to build the sparsity pattern that did not " "(completely) take into account all of the entries you " "will later try to write into. An example would be " "building a sparsity pattern that does not include " "the entries you will write into due to constraints " "on degrees of freedom such as hanging nodes or periodic " "boundary conditions. In such cases, building the " "sparsity pattern will succeed, but you will get errors " "such as the current one at one point or other when " "trying to write into the entries of the matrix."

◆ ExcDifferentChunkSparsityPatterns()

template<typename number >
static ::ExceptionBase& ChunkSparseMatrix< number >::ExcDifferentChunkSparsityPatterns ( )
static

Exception

◆ ExcIteratorRange() [1/4]

template<typename number >
static ::ExceptionBase& ChunkSparseMatrix< number >::ExcIteratorRange ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The iterators denote a range of " << arg1 << " elements, but the given number of rows was " << arg2

◆ ExcSourceEqualsDestination() [1/6]

template<typename number >
static ::ExceptionBase& ChunkSparseMatrix< number >::ExcSourceEqualsDestination ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting an operation on two matrices that " "are the same object, but the operation requires that the " "two objects are in fact different."

◆ compute_location()

template<typename number >
size_type ChunkSparseMatrix< number >::compute_location ( const size_type  i,
const size_type  j 
) const
private

Return the location of entry \((i,j)\) within the val array.

◆ ExcInvalidNumber() [1/2]

static ::ExceptionBase& ChunkSparsityPattern::ExcInvalidNumber ( size_type  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The provided number is invalid here: " << arg1

◆ ExcInvalidIndex() [2/5]

static ::ExceptionBase& ChunkSparsityPattern::ExcInvalidIndex ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The given index " << arg1 << " should be less than " << arg2 << "."

◆ ExcNotEnoughSpace() [1/2]

static ::ExceptionBase& ChunkSparsityPattern::ExcNotEnoughSpace ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Upon entering a new entry to row " << arg1 << ": there was no free entry any more. " << std::endl << "(Maximum number of entries for this row: " << arg2 << "; maybe the matrix is already compressed?)"

◆ ExcNotCompressed() [1/2]

static ::ExceptionBase& ChunkSparsityPattern::ExcNotCompressed ( )
static

The operation is only allowed after the SparsityPattern has been set up and compress() was called.

Note
The message that will be printed by this exception reads:
"The operation you attempted is only allowed after the SparsityPattern " "has been set up and compress() was called."

◆ ExcMatrixIsCompressed() [1/2]

static ::ExceptionBase& ChunkSparsityPattern::ExcMatrixIsCompressed ( )
static

This operation changes the structure of the SparsityPattern and is not possible after compress() has been called.

Note
The message that will be printed by this exception reads:
"The operation you attempted changes the structure of the SparsityPattern " "and is not possible after compress() has been called."

◆ ExcEmptyObject() [2/2]

static ::ExceptionBase& ChunkSparsityPattern::ExcEmptyObject ( )
static

Exception

◆ ExcIteratorRange() [2/4]

static ::ExceptionBase& ChunkSparsityPattern::ExcIteratorRange ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The iterators denote a range of " << arg1 << " elements, but the given number of rows was " << arg2

◆ ExcMETISNotInstalled() [1/2]

static ::ExceptionBase& ChunkSparsityPattern::ExcMETISNotInstalled ( )
static

Exception

◆ ExcInvalidNumberOfPartitions() [2/4]

static ::ExceptionBase& ChunkSparsityPattern::ExcInvalidNumberOfPartitions ( size_type  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of partitions you gave is " << arg1 << ", but must be greater than zero."

◆ ExcInvalidArraySize() [1/2]

static ::ExceptionBase& ChunkSparsityPattern::ExcInvalidArraySize ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The array has size " << arg1 << " but should have size " << arg2

◆ ExcVectorTypeNotCompatible() [1/6]

template<typename Number >
static ::ExceptionBase& LinearAlgebra::CUDAWrappers::Vector< Number >::ExcVectorTypeNotCompatible ( )
static

Attempt to perform an operation between two incompatible vector types.

◆ DummyAccessor() [1/2]

static ::ExceptionBase& DynamicSparsityPatternIterators::Accessor::DummyAccessor ( )
staticprotected
Note
The message that will be printed by this exception reads:
"The instance of this class was initialized" " without DynamicSparsityPattern object, which" " means that it is a dummy accessor that can" " not do any operations."

◆ ExcNotQuadratic()

static ::ExceptionBase& LACExceptions::ExcNotQuadratic ( )
static

This function only works for quadratic matrices.

Note
The message that will be printed by this exception reads:
"This function only works for quadratic objects!"

◆ ExcSingular()

static ::ExceptionBase& LACExceptions::ExcSingular ( )
static

The operation cannot be finished since the matrix is singular.

◆ ExcDifferentBlockIndices()

static ::ExceptionBase& LACExceptions::ExcDifferentBlockIndices ( )
static

Block indices of two block objects are different.

◆ ExcTrilinosError() [1/8]

static ::ExceptionBase& LACExceptions::ExcTrilinosError ( int  arg1)
static

An error of a Trilinos function was encountered. Check the Trilinos documentation for details.

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcEmptyMatrix()

template<typename number >
static ::ExceptionBase& FullMatrix< number >::ExcEmptyMatrix ( )
static

Exception

◆ ExcNotRegular()

template<typename number >
static ::ExceptionBase& FullMatrix< number >::ExcNotRegular ( number  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The maximal pivot is " << arg1 << ", which is below the threshold. The matrix may be singular."

◆ ExcInvalidDestination()

template<typename number >
static ::ExceptionBase& FullMatrix< number >::ExcInvalidDestination ( size_type  arg1,
size_type  arg2,
size_type  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Target region not in matrix: size in this direction=" << arg1 << ", size of new matrix=" << arg2 << ", offset=" << arg3

◆ ExcSourceEqualsDestination() [2/6]

template<typename number >
static ::ExceptionBase& FullMatrix< number >::ExcSourceEqualsDestination ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting an operation on two matrices that " "are the same object, but the operation requires that the " "two objects are in fact different."

◆ ExcMatrixNotPositiveDefinite()

template<typename number >
static ::ExceptionBase& FullMatrix< number >::ExcMatrixNotPositiveDefinite ( )
static

Exception

◆ ExcVectorTypeNotCompatible() [2/6]

template<typename Number >
static ::ExceptionBase& LinearAlgebra::distributed::BlockVector< Number >::ExcVectorTypeNotCompatible ( )
static

Attempt to perform an operation between two incompatible vector types.

◆ ExcIteratorRangeDoesNotMatchVectorSize() [2/4]

template<typename Number >
static ::ExceptionBase& LinearAlgebra::distributed::BlockVector< Number >::ExcIteratorRangeDoesNotMatchVectorSize ( )
static

Exception

◆ ExcVectorTypeNotCompatible() [3/6]

template<typename Number , typename MemorySpace = MemorySpace::Host>
static ::ExceptionBase& LinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcVectorTypeNotCompatible ( )
static

Attempt to perform an operation between two incompatible vector types.

◆ ExcNotAllowedForCuda()

template<typename Number , typename MemorySpace = MemorySpace::Host>
static ::ExceptionBase& LinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcNotAllowedForCuda ( )
static

Attempt to perform an operation not implemented on the device.

◆ ExcNonMatchingElements()

template<typename Number , typename MemorySpace = MemorySpace::Host>
static ::ExceptionBase& LinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcNonMatchingElements ( Number  arg1,
Number  arg2,
unsigned int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Called compress(VectorOperation::insert), but" << " the element received from a remote processor, value " << std::setprecision(16) << arg1 << ", does not match with the value " << std::setprecision(16) << arg2 << " on the owner processor " << arg3

◆ ExcAccessToNonLocalElement() [1/4]

template<typename Number , typename MemorySpace = MemorySpace::Host>
static ::ExceptionBase& LinearAlgebra::distributed::Vector< Number, MemorySpace >::ExcAccessToNonLocalElement ( size_type  arg1,
size_type  arg2,
size_type  arg3,
size_type  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access element " << arg1 << " of a distributed vector, but this element is not " << "stored on the current processor. Note: The range of " << "locally owned elements is " << arg2 << " to " << arg3 << ", and there are " << arg4 << " ghost elements " << "that this vector can access."

◆ ExcVectorTypeNotCompatible() [4/6]

template<typename Number >
static ::ExceptionBase& LinearAlgebra::Vector< Number >::ExcVectorTypeNotCompatible ( )
static

Attempt to perform an operation between two incompatible vector types.

◆ ExcErrorCode()

static ::ExceptionBase& LAPACKSupport::ExcErrorCode ( std::string  arg1,
types::blas_int  arg2 
)
static

A LAPACK function returned an error code.

Note
The message that will be printed by this exception reads:
<< "The function " << arg1 << " returned with an error code " << arg2

◆ ExcState()

static ::ExceptionBase& LAPACKSupport::ExcState ( State  arg1)
static

Exception thrown when a matrix is not in a suitable state for an operation. For instance, a LAPACK routine may have left the matrix in an unusable state, then vmult does not make sense anymore.

Note
The message that will be printed by this exception reads:
<< "The function cannot be called while the matrix is in state " << state_name(arg1)

◆ ExcProperty()

static ::ExceptionBase& LAPACKSupport::ExcProperty ( Property  arg1)
static

Exception thrown when a matrix does not have suitable properties for an operation.

Note
The message that will be printed by this exception reads:
<< "The function cannot be called with a " << property_name(arg1) << " matrix."

◆ ExcMissing()

static ::ExceptionBase& LAPACKSupport::ExcMissing ( std::string  arg1)
static

This exception is thrown if a certain LAPACK function is not available because no LAPACK installation was detected during configuration.

Note
The message that will be printed by this exception reads:
<< "When you ran 'cmake' during installation of deal.II, " << "no suitable installation of the BLAS or LAPACK library could " << "be found. Consequently, the function <" << arg1 << "> can not be called. Refer to the doc/readme.html " << "file for information on how to ensure that deal.II " << "picks up an existing BLAS and LAPACK installation at " << "configuration time."

◆ ExcBlockIndexMismatch()

template<typename MatrixType >
static ::ExceptionBase& MatrixBlock< MatrixType >::ExcBlockIndexMismatch ( size_type  arg1,
size_type  arg2 
)
static

The block number computed from an index by using BlockIndices does not match the block coordinates stored in this object.

Note
The message that will be printed by this exception reads:
<< "Block index " << arg1 << " does not match " << arg2

◆ PArpackExcConvergedEigenvectors()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcConvergedEigenvectors ( int  arg1,
int  arg2 
)
staticprivate

PArpackExcInfoPdnaupds.

Note
The message that will be printed by this exception reads:
<< arg1 << " eigenpairs were requested, but only " << arg2 << " converged"

◆ PArpackExcInvalidNumberofEigenvalues()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInvalidNumberofEigenvalues ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of wanted eigenvalues " << arg1 << " is larger that the size of the matrix " << arg2

◆ PArpackExcInvalidEigenvectorSize()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInvalidEigenvectorSize ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of wanted eigenvalues " << arg1 << " is larger that the size of eigenvectors " << arg2

◆ PArpackExcInvalidEigenvectorSizeNonsymmetric()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInvalidEigenvectorSizeNonsymmetric ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "To store the real and complex parts of " << arg1 << " eigenvectors in real-valued vectors, their size (currently set to " << arg2 << ") should be greater than or equal to " << arg1 + 1

◆ PArpackExcInvalidEigenvalueSize()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInvalidEigenvalueSize ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of wanted eigenvalues " << arg1 << " is larger that the size of eigenvalues " << arg2

◆ PArpackExcInvalidNumberofArnoldiVectors()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInvalidNumberofArnoldiVectors ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of Arnoldi vectors " << arg1 << " is larger that the size of the matrix " << arg2

◆ PArpackExcSmallNumberofArnoldiVectors()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcSmallNumberofArnoldiVectors ( int  arg1,
int  arg2 
)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Number of Arnoldi vectors " << arg1 << " is too small to obtain " << arg2 << " eigenvalues"

◆ PArpackExcIdo()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcIdo ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "This ido " << arg1 << " is not supported. Check documentation of ARPACK"

◆ PArpackExcMode()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcMode ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "This mode " << arg1 << " is not supported. Check documentation of ARPACK"

◆ PArpackExcInfoPdnaupd()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInfoPdnaupd ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Error with Pdnaupd, info " << arg1 << ". Check documentation of ARPACK"

◆ PArpackExcInfoPdneupd()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInfoPdneupd ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Error with Pdneupd, info " << arg1 << ". Check documentation of ARPACK"

◆ PArpackExcInfoMaxIt()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcInfoMaxIt ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "Maximum number " << arg1 << " of iterations reached."

◆ PArpackExcNoShifts()

template<typename VectorType >
static ::ExceptionBase& PArpackSolver< VectorType >::PArpackExcNoShifts ( int  arg1)
staticprivate
Note
The message that will be printed by this exception reads:
<< "No shifts could be applied during implicit" << " Arnoldi update, try increasing the number of" << " Arnoldi vectors."

◆ ExcIteratorRangeDoesNotMatchVectorSize() [3/4]

static ::ExceptionBase& PETScWrappers::MPI::BlockVector::ExcIteratorRangeDoesNotMatchVectorSize ( )
static

Exception

◆ ExcNonMatchingBlockVectors() [1/2]

static ::ExceptionBase& PETScWrappers::MPI::BlockVector::ExcNonMatchingBlockVectors ( )
static

Exception

◆ ExcBeyondEndOfMatrix() [1/2]

static ::ExceptionBase& PETScWrappers::MatrixIterators::const_iterator::Accessor::ExcBeyondEndOfMatrix ( )
static

Exception

◆ ExcAccessToNonlocalRow() [1/4]

static ::ExceptionBase& PETScWrappers::MatrixIterators::const_iterator::Accessor::ExcAccessToNonlocalRow ( int  arg1,
int  arg2,
int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access row " << arg1 << " of a distributed matrix, but only rows " << arg2 << " through " << arg3 << " are stored locally and can be accessed."

◆ ExcInvalidIndexWithinRow() [1/3]

static ::ExceptionBase& PETScWrappers::MatrixIterators::const_iterator::ExcInvalidIndexWithinRow ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Attempt to access element " << arg2 << " of row " << arg1 << " which doesn't have that many elements."

◆ ExcSourceEqualsDestination() [3/6]

static ::ExceptionBase& PETScWrappers::MatrixBase::ExcSourceEqualsDestination ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting an operation on two matrices that " "are the same object, but the operation requires that the " "two objects are in fact different."

◆ ExcWrongMode()

static ::ExceptionBase& PETScWrappers::MatrixBase::ExcWrongMode ( int  arg1,
int  arg2 
)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "You tried to do a " << (arg1 == 1 ? "'set'" : (arg1 == 2 ? "'add'" : "???")) << " operation but the matrix is currently in " << (arg2 == 1 ? "'set'" : (arg2 == 2 ? "'add'" : "???")) << " mode. You first have to call 'compress()'."

◆ ExcLocalRowsTooLarge()

static ::ExceptionBase& PETScWrappers::MPI::SparseMatrix::ExcLocalRowsTooLarge ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of local rows " << arg1 << " must be larger than the total number of rows " << arg2

◆ matrix_norm_square()

PetscScalar SparseMatrix< number >::matrix_norm_square ( const Vector v) const

Return the square of the norm of the vector \(v\) with respect to the norm induced by this matrix, i.e. \(\left(v^\ast,Mv\right)\). This is useful, e.g. in the finite element context, where the \(L_2\) norm of a function equals the matrix norm with respect to the mass matrix of the vector representing the nodal values of the finite element function.

Obviously, the matrix needs to be quadratic for this operation.

The implementation of this function is not as efficient as the one in the MatrixBase class used in deal.II (i.e. the original one, not the PETSc wrapper class) since PETSc doesn't support this operation and needs a temporary vector.

Definition at line 679 of file petsc_parallel_sparse_matrix.cc.

◆ matrix_scalar_product()

PetscScalar SparseMatrix< number >::matrix_scalar_product ( const Vector u,
const Vector v 
) const

Compute the matrix scalar product \(\left(u^\ast,Mv\right)\).

The implementation of this function is not as efficient as the one in the MatrixBase class used in deal.II (i.e. the original one, not the PETSc wrapper class) since PETSc doesn't support this operation and needs a temporary vector.

Definition at line 688 of file petsc_parallel_sparse_matrix.cc.

◆ locally_owned_domain_indices()

IndexSet SparseMatrix< number >::locally_owned_domain_indices ( ) const

Return the partitioning of the domain space of this matrix, i.e., the partitioning of the vectors this matrix has to be multiplied with.

Definition at line 697 of file petsc_parallel_sparse_matrix.cc.

◆ locally_owned_range_indices()

IndexSet SparseMatrix< number >::locally_owned_range_indices ( ) const

Return the partitioning of the range space of this matrix, i.e., the partitioning of the vectors that result from matrix-vector products.

Definition at line 723 of file petsc_parallel_sparse_matrix.cc.

◆ mmult()

void SparseMatrix< number >::mmult ( SparseMatrix C,
const SparseMatrix B,
const MPI::Vector V = MPI::Vector() 
) const

Perform the matrix-matrix multiplication \(C = AB\), or, \(C = A \text{diag}(V) B\) given a compatible vector \(V\).

This function calls MatrixBase::mmult() to do the actual work.

Definition at line 749 of file petsc_parallel_sparse_matrix.cc.

◆ Tmmult()

void SparseMatrix< number >::Tmmult ( SparseMatrix C,
const SparseMatrix B,
const MPI::Vector V = MPI::Vector() 
) const

Perform the matrix-matrix multiplication with the transpose of this, i.e., \(C = A^T B\), or, \(C = A^T \text{diag}(V) B\) given a compatible vector \(V\).

This function calls MatrixBase::Tmmult() to do the actual work.

Definition at line 760 of file petsc_parallel_sparse_matrix.cc.

◆ do_reinit() [1/4]

void SparseMatrix< number >::do_reinit ( const size_type  m,
const size_type  n,
const size_type  local_rows,
const size_type  local_columns,
const size_type  n_nonzero_per_row,
const bool  is_symmetric = false,
const size_type  n_offdiag_nonzero_per_row = 0 
)
private

Do the actual work for the respective reinit() function and the matching constructor, i.e. create a matrix. Getting rid of the previous matrix is left to the caller.

Definition at line 245 of file petsc_parallel_sparse_matrix.cc.

◆ do_reinit() [2/4]

void SparseMatrix< number >::do_reinit ( const size_type  m,
const size_type  n,
const size_type  local_rows,
const size_type  local_columns,
const std::vector< size_type > &  row_lengths,
const bool  is_symmetric = false,
const std::vector< size_type > &  offdiag_row_lengths = std::vector<size_type>() 
)
private

Same as previous function.

Definition at line 281 of file petsc_parallel_sparse_matrix.cc.

◆ do_reinit() [3/4]

template<typename SparsityPatternType >
void SparseMatrix< SparsityPatternType >::do_reinit ( const SparsityPatternType &  sparsity_pattern,
const std::vector< size_type > &  local_rows_per_process,
const std::vector< size_type > &  local_columns_per_process,
const unsigned int  this_process,
const bool  preset_nonzero_locations 
)
private

Same as previous functions.

Definition at line 495 of file petsc_parallel_sparse_matrix.cc.

◆ do_reinit() [4/4]

template<typename SparsityPatternType >
void SparseMatrix< SparsityPatternType >::do_reinit ( const IndexSet local_rows,
const IndexSet local_columns,
const SparsityPatternType &  sparsity_pattern 
)
private

Same as previous functions.

Definition at line 352 of file petsc_parallel_sparse_matrix.cc.

◆ AdditionalData() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
PreconditionBlock< MatrixType, inverse_type >::AdditionalData::AdditionalData ( const size_type  block_size,
const double  relaxation = 1.,
const bool  invert_diagonal = true,
const bool  same_diagonal = false 
)

Constructor. Block size must be given since there is no reasonable default parameter.

◆ ExcWrongBlockSize()

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
static ::ExceptionBase& PreconditionBlock< MatrixType, inverse_type >::ExcWrongBlockSize ( int  arg1,
int  arg2 
)
static

For non-overlapping block preconditioners, the block size must divide the matrix size. If not, this exception gets thrown.

Note
The message that will be printed by this exception reads:
<< "The blocksize " << arg1 << " and the size of the matrix " << arg2 << " do not match."

◆ ExcInverseMatricesAlreadyExist()

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
static ::ExceptionBase& PreconditionBlock< MatrixType, inverse_type >::ExcInverseMatricesAlreadyExist ( )
static

Exception

◆ Accessor() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::Accessor ( const PreconditionBlockJacobi< MatrixType, inverse_type > *  matrix,
const size_type  row 
)

Constructor. Since we use accessors only for read access, a const matrix pointer is sufficient.

◆ row() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::row ( ) const

Row number of the element represented by this object.

◆ column() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::column ( ) const

Column number of the element represented by this object.

◆ value() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
inverse_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::value ( ) const

Value of this matrix entry.

◆ const_iterator() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::const_iterator ( const PreconditionBlockJacobi< MatrixType, inverse_type > *  matrix,
const size_type  row 
)

Constructor.

◆ operator++() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const_iterator& PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator++ ( )

Prefix increment.

◆ operator*() [5/6]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const Accessor& PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator* ( ) const

Dereferencing operator.

◆ operator->() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const Accessor* PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator-> ( ) const

Dereferencing operator.

◆ operator==() [5/7]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
bool PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator== ( const const_iterator ) const

Comparison. True, if both iterators point to the same matrix position.

◆ operator!=() [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
bool PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator!= ( const const_iterator ) const

Inverse of ==.

◆ operator<() [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
bool PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::operator< ( const const_iterator ) const

Comparison operator. Result is true if either the first row number is smaller or if the row numbers are equal and the first index is smaller.

◆ vmult() [1/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockJacobi< MatrixType, inverse_type >::vmult< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute block Jacobi preconditioning.

This function will automatically use the inverse matrices if they exist, if not then BlockJacobi will need much time inverting the diagonal block matrices in each preconditioning step.

◆ Tvmult() [1/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockJacobi< MatrixType, inverse_type >::Tvmult< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Same as vmult, since Jacobi is symmetric.

◆ vmult_add() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockJacobi< MatrixType, inverse_type >::vmult_add< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute block Jacobi preconditioning, adding to dst.

This function will automatically use the inverse matrices if they exist, if not then BlockJacobi will need much time inverting the diagonal block matrices in each preconditioning step.

◆ Tvmult_add() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockJacobi< MatrixType, inverse_type >::Tvmult_add< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Same as vmult_add, since Jacobi is symmetric.

◆ step() [1/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::step ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the Jacobi iteration.

◆ Tstep() [1/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::Tstep ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the Jacobi iteration.

◆ begin() [3/4]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::begin ( ) const

Iterator starting at the first entry.

◆ end() [3/4]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::end ( ) const

Final iterator.

◆ begin() [4/4]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::begin ( const size_type  r) const

Iterator starting at the first entry of row r.

◆ end() [4/4]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::end ( const size_type  r) const

Final iterator of row r.

◆ do_vmult()

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockJacobi< MatrixType, inverse_type >::do_vmult ( Vector< number2 > &  ,
const Vector< number2 > &  ,
bool  adding 
) const
private

Actual implementation of the preconditioner.

Depending on adding, the result of preconditioning is added to the destination vector.

◆ PreconditionBlockSOR() [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
PreconditionBlockSOR< MatrixType, inverse_type >::PreconditionBlockSOR ( )

Default constructor.

◆ vmult() [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockSOR< MatrixType, inverse_type >::vmult< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute block SOR preconditioning.

This function will automatically use the inverse matrices if they exist, if not then BlockSOR will waste much time inverting the diagonal block matrices in each preconditioning step.

For matrices which are empty above the diagonal blocks BlockSOR is a direct solver.

◆ vmult_add() [2/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockSOR< MatrixType, inverse_type >::vmult_add< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute block SOR preconditioning.

Warning: this function performs normal vmult without adding. The reason for its existence is that BlockMatrixArray requires the adding version by default. On the other hand, adding requires an additional auxiliary vector, which is not desirable.

See also
vmult

◆ Tvmult() [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockSOR< MatrixType, inverse_type >::Tvmult< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Backward application of vmult().

In the current implementation, this is not the transpose of vmult(). It is a transposed Gauss-Seidel algorithm applied to the whole matrix, but the diagonal blocks being inverted are not transposed. Therefore, it is the transposed, if the diagonal blocks are symmetric.

◆ Tvmult_add() [2/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockSOR< MatrixType, inverse_type >::Tvmult_add< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute backward block SOR preconditioning.

Warning: this function performs normal vmult without adding. The reason for its existence is that BlockMatrixArray requires the adding version by default. On the other hand, adding requires an additional auxiliary vector, which is not desirable.

See also
vmult

◆ step() [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::step ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the SOR iteration.

◆ Tstep() [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::Tstep ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the transposed SOR iteration.

◆ PreconditionBlockSOR() [2/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
PreconditionBlockSOR< MatrixType, inverse_type >::PreconditionBlockSOR ( bool  store)
protected

Constructor to be used by PreconditionBlockSSOR.

◆ forward()

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::forward ( Vector< number2 > &  ,
const Vector< number2 > &  ,
const bool  transpose_diagonal,
const bool  adding 
) const
protected

Implementation of the forward substitution loop called by vmult() and vmult_add().

If a permutation is set by set_permutation(), it will automatically be honored by this function.

The parameter adding does not have any function, yet.

◆ backward()

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockSOR< MatrixType, inverse_type >::backward ( Vector< number2 > &  ,
const Vector< number2 > &  ,
const bool  transpose_diagonal,
const bool  adding 
) const
protected

Implementation of the backward substitution loop called by Tvmult() and Tvmult_add().

If a permutation is set by set_permutation(), it will automatically be honored by this function.

The parameter adding does not have any function, yet.

◆ PreconditionBlockSSOR()

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
PreconditionBlockSSOR< MatrixType, inverse_type >::PreconditionBlockSSOR ( )

Constructor.

◆ vmult() [3/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockSSOR< MatrixType, inverse_type >::vmult< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Execute block SSOR preconditioning.

This function will automatically use the inverse matrices if they exist, if not then BlockSOR will waste much time inverting the diagonal block matrices in each preconditioning step.

◆ Tvmult() [3/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
template void PreconditionBlockSSOR< MatrixType, inverse_type >::Tvmult< double > ( Vector< number2 > &  ,
const Vector< number2 > &   
) const

Same as vmult()

◆ step() [3/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockSSOR< MatrixType, inverse_type >::step ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the SOR iteration.

◆ Tstep() [3/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
template<typename number2 >
void PreconditionBlockSSOR< MatrixType, inverse_type >::Tstep ( Vector< number2 > &  dst,
const Vector< number2 > &  rhs 
) const

Perform one step of the transposed SOR iteration.

◆ ExcDiagonalsNotStored()

template<typename number >
static ::ExceptionBase& PreconditionBlockBase< number >::ExcDiagonalsNotStored ( )
static

You are trying to access a diagonal block (not its inverse), but you decided not to store the diagonal blocks.

◆ ExcInverseNotAvailable()

template<typename number >
static ::ExceptionBase& PreconditionBlockBase< number >::ExcInverseNotAvailable ( )
static

You are accessing a diagonal block, assuming that it has a certain type. But, the method used for inverting the diagonal blocks does not use this type

◆ ExcNoMatrixGivenToUse()

template<typename MatrixType = SparseMatrix<double>, typename VectorType = ::Vector<double>>
static ::ExceptionBase& PreconditionSelector< MatrixType, VectorType >::ExcNoMatrixGivenToUse ( )
static

Exception.

◆ ExcSLEPcWrappersUsageError()

static ::ExceptionBase& SLEPcWrappers::SolverBase::ExcSLEPcWrappersUsageError ( )
static

Exception. Standard exception.

◆ ExcSLEPcError()

static ::ExceptionBase& SLEPcWrappers::SolverBase::ExcSLEPcError ( int  arg1)
static

Exception. SLEPc error with error number.

Note
The message that will be printed by this exception reads:
<< " An error with error number " << arg1 << " occurred while calling a SLEPc function"

◆ ExcSLEPcEigenvectorConvergenceMismatchError()

static ::ExceptionBase& SLEPcWrappers::SolverBase::ExcSLEPcEigenvectorConvergenceMismatchError ( int  arg1,
int  arg2 
)
static

Exception. Convergence failure on the number of eigenvectors.

Note
The message that will be printed by this exception reads:
<< " The number of converged eigenvectors is " << arg1 << " but " << arg2 << " were requested. "

◆ ExcHistoryDataRequired()

static ::ExceptionBase& SolverControl::ExcHistoryDataRequired ( )
static

This exception is thrown if a function operating on the vector of history data of a SolverControl object id called, but storage of history data was not enabled by enable_history_data().

◆ ExcTooFewTmpVectors()

template<class VectorType = Vector<double>>
static ::ExceptionBase& SolverGMRES< VectorType >::ExcTooFewTmpVectors ( int  arg1)
static
Note
The message that will be printed by this exception reads:
<< "The number of temporary vectors you gave (" << arg1 << ") is too small. It should be at least 10 for " << "any results, and much more for reasonable ones."

◆ ExcPreconditionerNotDefinite()

template<class VectorType = Vector<double>>
static ::ExceptionBase& SolverMinRes< VectorType >::ExcPreconditionerNotDefinite ( )
static

Exception

◆ criterion()

template<class VectorType = Vector<double>>
virtual double SolverMinRes< VectorType >::criterion ( )
protectedvirtual

Implementation of the computation of the norm of the residual.

◆ print_vectors()

template<class VectorType = Vector<double>>
virtual void SolverMinRes< VectorType >::print_vectors ( const unsigned int  step,
const VectorType x,
const VectorType r,
const VectorType d 
) const
protectedvirtual

Interface for derived class. This function gets the current iteration vector, the residual and the update vector in each step. It can be used for graphical output of the convergence history.

◆ ExcSolverDoesNotExist()

template<typename VectorType = Vector<double>>
static ::ExceptionBase& SolverSelector< VectorType >::ExcSolverDoesNotExist ( std::string  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "Solver " << arg1 << " does not exist. Use one of " << std::endl << get_solver_names()

◆ AdditionalData() [2/2]

template<typename number >
SparseLUDecomposition< number >::AdditionalData::AdditionalData ( const double  strengthen_diagonal = 0,
const unsigned int  extra_off_diagonals = 0,
const bool  use_previous_sparsity = false,
const SparsityPattern use_this_sparsity = nullptr 
)

Constructor. For the parameters' description, see below.

◆ ExcInvalidStrengthening() [1/3]

template<typename number >
static ::ExceptionBase& SparseLUDecomposition< number >::ExcInvalidStrengthening ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The strengthening parameter " << arg1 << " is not greater or equal than zero!"

◆ copy_from() [2/6]

template<typename number >
template<typename somenumber >
template void SparseLUDecomposition< number >::copy_from< float > ( const SparseMatrix< somenumber > &  matrix)
protected

Copies the passed SparseMatrix onto this object. This object's sparsity pattern remains unchanged.

◆ strengthen_diagonal_impl()

template<typename number >
virtual void SparseLUDecomposition< number >::strengthen_diagonal_impl ( )
protectedvirtual

Performs the strengthening loop. For each row calculates the sum of absolute values of its elements, determines the strengthening factor (through get_strengthen_diagonal()) sf and multiplies the diagonal entry with sf+1.

◆ get_strengthen_diagonal()

template<typename number >
virtual number SparseLUDecomposition< number >::get_strengthen_diagonal ( const number  rowsum,
const size_type  row 
) const
protectedvirtual

In the decomposition phase, computes a strengthening factor for the diagonal entry in row row with sum of absolute values of its elements rowsum.

Note
The default implementation in SparseLUDecomposition returns strengthen_diagonal's value. This variable is set to a nonzero value in several of the derived classes.

◆ prebuild_lower_bound()

template<typename number >
void SparseLUDecomposition< number >::prebuild_lower_bound ( )
protected

Fills the prebuilt_lower_bound array.

◆ ExcUMFPACKError()

static ::ExceptionBase& SparseDirectUMFPACK::ExcUMFPACKError ( std::string  arg1,
int  arg2 
)
static

One of the UMFPack routines threw an error. The error code is included in the output and can be looked up in the UMFPack user manual. The name of the routine is included for reference.

Note
The message that will be printed by this exception reads:
<< "UMFPACK routine " << arg1 << " returned error status " << arg2 << "." << "\n\n" << ("A complete list of error codes can be found in the file " "<bundled/umfpack/UMFPACK/Include/umfpack.h>." "\n\n" "That said, the two most common errors that can happen are " "that your matrix cannot be factorized because it is " "rank deficient, and that UMFPACK runs out of memory " "because your problem is too large." "\n\n" "The first of these cases most often happens if you " "forget terms in your bilinear form necessary to ensure " "that the matrix has full rank, or if your equation has a " "spatially variable coefficient (or nonlinearity) that is " "supposed to be strictly positive but, for whatever " "reasons, is negative or zero. In either case, you probably " "want to check your assembly procedure. Similarly, a " "matrix can be rank deficient if you forgot to apply the " "appropriate boundary conditions. For example, the " "Laplace equation for a problem where only Neumann boundary " "conditions are posed (or where you forget to apply Dirichlet " "boundary conditions) has exactly one eigenvalue equal to zero " "and its rank is therefore deficient by one. Finally, the matrix " "may be rank deficient because you are using a quadrature " "formula with too few quadrature points." "\n\n" "The other common situation is that you run out of memory. " "On a typical laptop or desktop, it should easily be possible " "to solve problems with 100,000 unknowns in 2d. If you are " "solving problems with many more unknowns than that, in " "particular if you are in 3d, then you may be running out " "of memory and you will need to consider iterative " "solvers instead of the direct solver employed by " "UMFPACK.")

◆ ExcInvalidStrengthening() [2/3]

template<typename number >
static ::ExceptionBase& SparseILU< number >::ExcInvalidStrengthening ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The strengthening parameter " << arg1 << " is not greater or equal than zero!"

◆ ExcZeroPivot()

template<typename number >
static ::ExceptionBase& SparseILU< number >::ExcZeroPivot ( size_type  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "While computing the ILU decomposition, the algorithm " "found a zero pivot on the diagonal of row " << arg1 << ". This must stop the ILU algorithm because it means " "that the matrix for which you try to compute a " "decomposition is singular."

◆ ExcInvalidIndex() [3/5]

template<typename number >
static ::ExceptionBase& SparseMatrix< number >::ExcInvalidIndex ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You are trying to access the matrix entry with index <" << arg1 << ',' << arg2 << ">, but this entry does not exist in the sparsity pattern " "of this matrix." "\n\n" "The most common cause for this problem is that you used " "a method to build the sparsity pattern that did not " "(completely) take into account all of the entries you " "will later try to write into. An example would be " "building a sparsity pattern that does not include " "the entries you will write into due to constraints " "on degrees of freedom such as hanging nodes or periodic " "boundary conditions. In such cases, building the " "sparsity pattern will succeed, but you will get errors " "such as the current one at one point or other when " "trying to write into the entries of the matrix."

◆ ExcDifferentSparsityPatterns()

template<typename number >
static ::ExceptionBase& SparseMatrix< number >::ExcDifferentSparsityPatterns ( )
static

Exception

Note
The message that will be printed by this exception reads:
"When copying one sparse matrix into another, " "or when adding one sparse matrix to another, " "both matrices need to refer to the same " "sparsity pattern."

◆ ExcIteratorRange() [3/4]

template<typename number >
static ::ExceptionBase& SparseMatrix< number >::ExcIteratorRange ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The iterators denote a range of " << arg1 << " elements, but the given number of rows was " << arg2

◆ ExcSourceEqualsDestination() [4/6]

template<typename number >
static ::ExceptionBase& SparseMatrix< number >::ExcSourceEqualsDestination ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting an operation on two matrices that " "are the same object, but the operation requires that the " "two objects are in fact different."

◆ prepare_add()

template<typename number >
void SparseMatrix< number >::prepare_add ( )
protected

For some matrix storage formats, in particular for the PETSc distributed blockmatrices, set and add operations on individual elements can not be freely mixed. Rather, one has to synchronize operations when one wants to switch from setting elements to adding to elements. BlockMatrixBase automatically synchronizes the access by calling this helper function for each block. This function ensures that the matrix is in a state that allows adding elements; if it previously already was in this state, the function does nothing.

◆ prepare_set()

template<typename number >
void SparseMatrix< number >::prepare_set ( )
protected

Same as prepare_add() but prepare the matrix for setting elements if the representation of elements in this class requires such an operation.

◆ Entry() [3/4]

template<typename number >
SparseMatrixEZ< number >::Entry::Entry
inline

Standard constructor. Sets column to invalid.

Definition at line 920 of file sparse_matrix_ez.h.

◆ Entry() [4/4]

template<typename number >
SparseMatrixEZ< number >::Entry::Entry ( const size_type  column,
const number &  value 
)
inline

Constructor. Fills column and value.

Definition at line 911 of file sparse_matrix_ez.h.

◆ RowInfo()

template<typename number >
SparseMatrixEZ< number >::RowInfo::RowInfo ( const size_type  start = Entry::invalid)
inline

Constructor.

Definition at line 927 of file sparse_matrix_ez.h.

◆ Accessor() [2/2]

template<typename number >
SparseMatrixEZ< number >::const_iterator::Accessor::Accessor ( const SparseMatrixEZ< number > *  matrix,
const size_type  row,
const unsigned short  index 
)
inline

Constructor. Since we use accessors only for read access, a const matrix pointer is sufficient.

Definition at line 936 of file sparse_matrix_ez.h.

◆ row() [2/2]

template<typename number >
SparseMatrixEZ< number >::size_type SparseMatrixEZ< number >::const_iterator::Accessor::row ( ) const
inline

Row number of the element represented by this object.

Definition at line 948 of file sparse_matrix_ez.h.

◆ index()

template<typename number >
unsigned short SparseMatrixEZ< number >::const_iterator::Accessor::index ( ) const
inline

Index in row of the element represented by this object.

Definition at line 964 of file sparse_matrix_ez.h.

◆ column() [2/2]

template<typename number >
SparseMatrixEZ< number >::size_type SparseMatrixEZ< number >::const_iterator::Accessor::column ( ) const
inline

Column number of the element represented by this object.

Definition at line 956 of file sparse_matrix_ez.h.

◆ value() [2/2]

template<typename number >
number SparseMatrixEZ< number >::const_iterator::Accessor::value ( ) const
inline

Value of this matrix entry.

Definition at line 973 of file sparse_matrix_ez.h.

◆ const_iterator() [2/2]

template<typename number >
SparseMatrixEZ< number >::const_iterator::const_iterator ( const SparseMatrixEZ< number > *  matrix,
const size_type  row,
const unsigned short  index 
)
inline

Constructor.

Definition at line 980 of file sparse_matrix_ez.h.

◆ operator++() [2/2]

template<typename number >
SparseMatrixEZ< number >::const_iterator & SparseMatrixEZ< number >::const_iterator::operator++
inline

Prefix increment. This always returns a valid entry or end().

Definition at line 1015 of file sparse_matrix_ez.h.

◆ operator*() [6/6]

template<typename number >
const SparseMatrixEZ< number >::const_iterator::Accessor & SparseMatrixEZ< number >::const_iterator::operator*
inline

Dereferencing operator.

Definition at line 1042 of file sparse_matrix_ez.h.

◆ operator->() [2/2]

template<typename number >
const SparseMatrixEZ< number >::const_iterator::Accessor * SparseMatrixEZ< number >::const_iterator::operator->
inline

Dereferencing operator.

Definition at line 1050 of file sparse_matrix_ez.h.

◆ operator==() [6/7]

template<typename number >
bool SparseMatrixEZ< number >::const_iterator::operator== ( const const_iterator other) const
inline

Comparison. True, if both iterators point to the same matrix position.

Definition at line 1059 of file sparse_matrix_ez.h.

◆ operator!=() [3/3]

template<typename number >
bool SparseMatrixEZ< number >::const_iterator::operator!= ( const const_iterator other) const
inline

Inverse of ==.

Definition at line 1069 of file sparse_matrix_ez.h.

◆ operator<() [3/3]

template<typename number >
bool SparseMatrixEZ< number >::const_iterator::operator< ( const const_iterator other) const
inline

Comparison operator. Result is true if either the first row number is smaller or if the row numbers are equal and the first index is smaller.

Definition at line 1078 of file sparse_matrix_ez.h.

◆ ExcNoDiagonal()

template<typename number >
static ::ExceptionBase& SparseMatrixEZ< number >::ExcNoDiagonal ( )
static

Exception for missing diagonal entry.

◆ ExcInvalidEntry()

template<typename number >
static ::ExceptionBase& SparseMatrixEZ< number >::ExcInvalidEntry ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The entry with index (" << arg1 << ',' << arg2 << ") does not exist."

◆ ExcEntryAllocationFailure()

template<typename number >
static ::ExceptionBase& SparseMatrixEZ< number >::ExcEntryAllocationFailure ( int  arg1,
int  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "An entry with index (" << arg1 << ',' << arg2 << ") cannot be allocated."

◆ locate() [1/2]

template<typename number >
const SparseMatrixEZ< number >::Entry * SparseMatrixEZ< number >::locate ( const size_type  row,
const size_type  col 
) const
inlineprivate

Find an entry and return a const pointer. Return a zero-pointer if the entry does not exist.

Definition at line 1127 of file sparse_matrix_ez.h.

◆ locate() [2/2]

template<typename number >
SparseMatrixEZ< number >::Entry * SparseMatrixEZ< number >::locate ( const size_type  row,
const size_type  col 
)
inlineprivate

Find an entry and return a writable pointer. Return a zero-pointer if the entry does not exist.

Definition at line 1105 of file sparse_matrix_ez.h.

◆ allocate()

template<typename number >
SparseMatrixEZ< number >::Entry * SparseMatrixEZ< number >::allocate ( const size_type  row,
const size_type  col 
)
inlineprivate

Find an entry or generate it.

Definition at line 1136 of file sparse_matrix_ez.h.

◆ threaded_vmult()

template<typename number >
template<typename somenumber >
void SparseMatrixEZ< number >::threaded_vmult ( Vector< somenumber > &  dst,
const Vector< somenumber > &  src,
const size_type  begin_row,
const size_type  end_row 
) const
private

Version of vmult which only performs its actions on the region defined by [begin_row,end_row). This function is called by vmult in the case of enabled multithreading.

◆ threaded_matrix_norm_square()

template<typename number >
template<typename somenumber >
void SparseMatrixEZ< number >::threaded_matrix_norm_square ( const Vector< somenumber > &  v,
const size_type  begin_row,
const size_type  end_row,
somenumber *  partial_sum 
) const
private

Version of matrix_norm_square which only performs its actions on the region defined by [begin_row,end_row). This function is called by matrix_norm_square in the case of enabled multithreading.

◆ threaded_matrix_scalar_product()

template<typename number >
template<typename somenumber >
void SparseMatrixEZ< number >::threaded_matrix_scalar_product ( const Vector< somenumber > &  u,
const Vector< somenumber > &  v,
const size_type  begin_row,
const size_type  end_row,
somenumber *  partial_sum 
) const
private

Version of matrix_scalar_product which only performs its actions on the region defined by [begin_row,end_row). This function is called by matrix_scalar_product in the case of enabled multithreading.

◆ ExcStrengthenDiagonalTooSmall()

template<typename number >
static ::ExceptionBase& SparseMIC< number >::ExcStrengthenDiagonalTooSmall ( )
static

Exception

◆ ExcInvalidStrengthening() [3/3]

template<typename number >
static ::ExceptionBase& SparseMIC< number >::ExcInvalidStrengthening ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The strengthening parameter " << arg1 << " is not greater or equal than zero!"

◆ ExcDecompositionNotStable()

template<typename number >
static ::ExceptionBase& SparseMIC< number >::ExcDecompositionNotStable ( int  arg1,
double  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The diagonal element (" << arg1 << "," << arg1 << ") is " << arg2 << ", but must be positive"

◆ get_rowsum()

template<typename number >
number SparseMIC< number >::get_rowsum ( const size_type  row) const
private

Compute the row-th "inner sum".

◆ DummyAccessor() [2/2]

static ::ExceptionBase& SparsityPatternIterators::Accessor::DummyAccessor ( )
staticprotected
Note
The message that will be printed by this exception reads:
"The instance of this class was initialized" " without SparsityPattern object, which" " means that it is a dummy accessor that can" " not do any operations."

◆ ExcNotCompressed() [2/2]

static ::ExceptionBase& SparsityPatternBase::ExcNotCompressed ( )
static

The operation is only allowed after the SparsityPattern has been set up and compress() was called.

Note
The message that will be printed by this exception reads:
"The operation you attempted is only allowed after the SparsityPattern " "has been set up and compress() was called."

◆ ExcNotEnoughSpace() [2/2]

static ::ExceptionBase& SparsityPatternBase::ExcNotEnoughSpace ( int  arg1,
int  arg2 
)
static

You tried to add an element to a row, but there was no space left.

Note
The message that will be printed by this exception reads:
<< "Upon entering a new entry to row " << arg1 << ": there was no free entry any more. " << std::endl << "(Maximum number of entries for this row: " << arg2 << "; maybe the matrix is already compressed?)"

◆ ExcMatrixIsCompressed() [2/2]

static ::ExceptionBase& SparsityPatternBase::ExcMatrixIsCompressed ( )
static

This operation changes the structure of the SparsityPattern and is not possible after compress() has been called.

Note
The message that will be printed by this exception reads:
"The operation you attempted changes the structure of the SparsityPattern " "and is not possible after compress() has been called."

◆ SparsityPattern() [1/7]

SparsityPattern::SparsityPattern ( )

Initialize the matrix empty, that is with no memory allocated. This is useful if you want such objects as member variables in other classes. You can make the structure usable by calling the reinit() function.

Definition at line 53 of file sparsity_pattern.cc.

◆ SparsityPattern() [2/7]

SparsityPattern::SparsityPattern ( const SparsityPattern s)

Copy constructor. This constructor is only allowed to be called if the matrix structure to be copied is empty. This is so in order to prevent involuntary copies of objects for temporaries, which can use large amounts of computing time. However, copy constructors are needed if one wants to place a SparsityPattern in a container, e.g., to write such statements like v.push_back (SparsityPattern());, with v a std::vector of SparsityPattern objects.

Usually, it is sufficient to use the explicit keyword to disallow unwanted temporaries, but this does not work for std::vectors. Since copying a structure like this is not useful anyway because multiple matrices can use the same sparsity structure, copies are only allowed for empty objects, as described above.

Definition at line 62 of file sparsity_pattern.cc.

◆ SparsityPattern() [3/7]

SparsityPattern::SparsityPattern ( const size_type  m,
const size_type  n,
const unsigned int  max_per_row 
)

Initialize a rectangular pattern of size m x n.

Parameters
[in]mThe number of rows.
[in]nThe number of columns.
[in]max_per_rowMaximum number of nonzero entries per row.

Definition at line 78 of file sparsity_pattern.cc.

◆ SparsityPattern() [4/7]

SparsityPattern::SparsityPattern ( const size_type  m,
const size_type  n,
const std::vector< unsigned int > &  row_lengths 
)

Initialize a rectangular pattern of size m x n.

Parameters
[in]mThe number of rows.
[in]nThe number of columns.
[in]row_lengthsPossible number of nonzero entries for each row. This vector must have one entry for each row.

Definition at line 89 of file sparsity_pattern.cc.

◆ SparsityPattern() [5/7]

SparsityPattern::SparsityPattern ( const size_type  m,
const unsigned int  max_per_row 
)

Initialize a quadratic pattern of dimension m with at most max_per_row nonzero entries per row.

This constructor automatically enables optimized storage of diagonal elements. To avoid this, use the constructor taking row and column numbers separately.

Definition at line 100 of file sparsity_pattern.cc.

◆ SparsityPattern() [6/7]

SparsityPattern::SparsityPattern ( const size_type  m,
const std::vector< unsigned int > &  row_lengths 
)

Initialize a quadratic pattern of size m x m.

Parameters
[in]mThe number of rows and columns.
[in]row_lengthsMaximum number of nonzero entries for each row. This vector must have one entry for each row.

Definition at line 109 of file sparsity_pattern.cc.

◆ SparsityPattern() [7/7]

SparsityPattern::SparsityPattern ( const SparsityPattern original,
const unsigned int  max_per_row,
const size_type  extra_off_diagonals 
)

Make a copy with extra off-diagonals.

This constructs objects intended for the application of the ILU(n)-method or other incomplete decompositions. Therefore, additional to the original entry structure, space for extra_off_diagonals side- diagonals is provided on both sides of the main diagonal.

max_per_row is the maximum number of nonzero elements per row which this structure is to hold. It is assumed that this number is sufficiently large to accommodate both the elements in original as well as the new off-diagonal elements created by this constructor. You will usually want to give the same number as you gave for original plus the number of side diagonals times two. You may however give a larger value if you wish to add further nonzero entries for the decomposition based on other criteria than their being on side- diagonals.

This function requires that original refers to a quadratic matrix structure. It must be compressed. The matrix structure is not compressed after this function finishes.

Definition at line 118 of file sparsity_pattern.cc.

◆ ~SparsityPattern()

SparsityPattern::~SparsityPattern ( )
overridedefault

Destructor.

◆ operator=() [10/11]

SparsityPattern & SparsityPattern::operator= ( const SparsityPattern s)

Copy operator. For this the same holds as for the copy constructor: it is declared, defined and fine to be called, but the latter only for empty objects.

Definition at line 198 of file sparsity_pattern.cc.

◆ reinit() [6/6]

void SparsityPattern::reinit ( const size_type  m,
const size_type  n,
const ArrayView< const unsigned int > &  row_lengths 
)
overridevirtual

Reallocate memory for a matrix of size m times n. The number of entries for each row is taken from the ArrayView row_lengths which has to give this number of each row \(i=0\ldots m-1\).

Implements SparsityPatternBase.

Definition at line 229 of file sparsity_pattern.cc.

◆ compress() [2/2]

void SparsityPattern::compress ( )

This function compresses the sparsity structure that this object represents. It does so by eliminating unused entries and sorting the remaining ones to allow faster access by usage of binary search algorithms. A special sorting scheme is used for the diagonal entry of quadratic matrices, which is always the first entry of each row.

The memory which is no more needed is released.

SparseMatrix objects require the SparsityPattern objects they are initialized with to be compressed, to reduce memory requirements.

Definition at line 338 of file sparsity_pattern.cc.

◆ copy_from() [3/6]

template<typename ForwardIterator >
void SparsityPattern::copy_from ( const size_type  n_rows,
const size_type  n_cols,
const ForwardIterator  begin,
const ForwardIterator  end 
)

This function can be used as a replacement for reinit(), subsequent calls to add() and a final call to close() if you know exactly in advance the entries that will form the matrix sparsity pattern.

The first two parameters determine the size of the matrix. For the two last ones, note that a sparse matrix can be described by a sequence of rows, each of which is represented by a sequence of pairs of column indices and values. In the present context, the begin() and end() parameters designate iterators (of forward iterator type) into a container, one representing one row. The distance between begin() and end() should therefore be equal to n_rows(). These iterators may be iterators of std::vector, std::list, pointers into a C-style array, or any other iterator satisfying the requirements of a forward iterator. The objects pointed to by these iterators (i.e. what we get after applying operator* or operator-> to one of these iterators) must be a container itself that provides functions begin and end designating a range of iterators that describe the contents of one line. Dereferencing these inner iterators must either yield a pair of an unsigned integer as column index and a value of arbitrary type (such a type would be used if we wanted to describe a sparse matrix with one such object), or simply an unsigned integer (of we only wanted to describe a sparsity pattern). The function is able to determine itself whether an unsigned integer or a pair is what we get after dereferencing the inner iterators, through some template magic.

While the order of the outer iterators denotes the different rows of the matrix, the order of the inner iterator denoting the columns does not matter, as they are sorted internal to this function anyway.

Since that all sounds very complicated, consider the following example code, which may be used to fill a sparsity pattern:

std::vector<std::vector<unsigned int> > column_indices (n_rows);
for (unsigned int row=0; row<n_rows; ++row)
// generate necessary columns in this row
fill_row (column_indices[row]);
sparsity.copy_from (n_rows, n_cols,
column_indices.begin(),
column_indices.end());

Note that this example works since the iterators dereferenced yield containers with functions begin and end (namely std::vectors), and the inner iterators dereferenced yield unsigned integers as column indices. Note that we could have replaced each of the two std::vector occurrences by std::list, and the inner one by std::set as well.

Another example would be as follows, where we initialize a whole matrix, not only a sparsity pattern:

std::vector<std::map<unsigned int,double> > entries (n_rows);
for (unsigned int row=0; row<n_rows; ++row)
// generate necessary pairs of columns
// and corresponding values in this row
fill_row (entries[row]);
sparsity.copy_from (n_rows, n_cols,
column_indices.begin(),
column_indices.end());
matrix.reinit (sparsity);
matrix.copy_from (column_indices.begin(),
column_indices.end());

This example works because dereferencing iterators of the inner type yields a pair of unsigned integers and a value, the first of which we take as column index. As previously, the outer std::vector could be replaced by std::list, and the inner std::map<unsigned int,double> could be replaced by std::vector<std::pair<unsigned int,double> >, or a list or set of such pairs, as they all return iterators that point to such pairs.

◆ copy_from() [4/6]

void SparsityPattern::copy_from ( const DynamicSparsityPattern dsp)

Copy data from a DynamicSparsityPattern. Previous content of this object is lost, and the sparsity pattern is in compressed mode afterwards.

Definition at line 490 of file sparsity_pattern.cc.

◆ copy_from() [5/6]

void SparsityPattern::copy_from ( const SparsityPattern sp)

Copy data from a SparsityPattern. Previous content of this object is lost, and the sparsity pattern is in compressed mode afterwards.

Definition at line 442 of file sparsity_pattern.cc.

◆ copy_from() [6/6]

template<typename number >
void SparsityPattern::copy_from ( const FullMatrix< number > &  matrix)

Take a full matrix and use its nonzero entries to generate a sparse matrix entry pattern for this object.

Previous content of this object is lost, and the sparsity pattern is in compressed mode afterwards.

Definition at line 551 of file sparsity_pattern.cc.

◆ add_entries()

template<typename ForwardIterator >
void SparsityPattern::add_entries ( const size_type  row,
ForwardIterator  begin,
ForwardIterator  end,
const bool  indices_are_sorted = false 
)

Add several nonzero entries to the specified matrix row. This function may only be called for non-compressed sparsity patterns.

If some of the entries already exist, nothing bad happens.

Definition at line 733 of file sparsity_pattern.cc.

◆ operator==() [7/7]

bool SparsityPattern::operator== ( const SparsityPattern ) const

Test for equality of two SparsityPatterns.

◆ stores_only_added_elements()

bool SparsityPattern::stores_only_added_elements ( ) const

Return whether this object stores only those entries that have been added explicitly, or if the sparsity pattern contains elements that have been added through other means (implicitly) while building it. For the current class, the result is false if and only if it is square because it then unconditionally stores the diagonal entries whether they have been added explicitly or not.

This function mainly serves the purpose of describing the current class in cases where several kinds of sparsity patterns can be passed as template arguments.

◆ memory_consumption() [15/16]

std::size_t SparsityPattern::memory_consumption ( ) const

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

Definition at line 1039 of file sparsity_pattern.cc.

◆ operator()() [4/4]

SparsityPattern::size_type SparsityPattern::operator() ( const size_type  i,
const size_type  j 
) const

Return the index of the matrix element with row number i and column number j. If the matrix element is not a nonzero one, return SparsityPattern::invalid_entry.

This function is usually called by the SparseMatrix::operator()(). It may only be called for compressed sparsity patterns, since in this case searching whether the entry exists can be done quite fast with a binary sort algorithm because the column numbers are sorted.

If m is the number of entries in row, then the complexity of this function is log(m) if the sparsity pattern is compressed.

Note
This function is not cheap since it has to search through all of the elements of the given row i to find whether index j exists. Thus, it is more expensive than necessary in cases where you want to loop over all of the nonzero elements of this sparsity pattern (or of a sparse matrix associated with it) or of a single row. In such cases, it is more efficient to use iterators over the elements of the sparsity pattern or of the sparse matrix.

Definition at line 666 of file sparsity_pattern.cc.

◆ block_write() [1/4]

void SparsityPattern::block_write ( std::ostream &  out) const

Write the data of this object en bloc to a file. This is done in a binary mode, so the output is neither readable by humans nor (probably) by other computers using a different operating system or number format.

The purpose of this function is that you can swap out matrices and sparsity pattern if you are short of memory, want to communicate between different programs, or allow objects to be persistent across different runs of the program.

Definition at line 968 of file sparsity_pattern.cc.

◆ block_read() [1/4]

void SparsityPattern::block_read ( std::istream &  in)

Read data that has previously been written by block_write() from a file. This is done using the inverse operations to the above function, so it is reasonably fast because the bitstream is not interpreted except for a few numbers up front.

The object is resized on this operation, and all previous contents are lost.

A primitive form of error checking is performed which will recognize the bluntest attempts to interpret some data as a vector stored bitwise to a file, but not more.

Definition at line 992 of file sparsity_pattern.cc.

◆ save() [5/7]

template<class Archive >
void SparsityPattern::save ( Archive &  ar,
const unsigned int  version 
) const

Write the data of this object to a stream for the purpose of serialization

◆ load() [5/7]

template<class Archive >
void SparsityPattern::load ( Archive &  ar,
const unsigned int  version 
)

Read the data of this object from a stream for the purpose of serialization

◆ serialize() [6/7]

template<class Archive >
void SparsityPattern::serialize ( Archive &  archive,
const unsigned int  version 
)

Write and read the data of this object from a stream for the purpose of serialization.

◆ ExcIteratorRange() [4/4]

static ::ExceptionBase& SparsityPattern::ExcIteratorRange ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The iterators denote a range of " << arg1 << " elements, but the given number of rows was " << arg2

◆ ExcInvalidNumberOfPartitions() [3/4]

static ::ExceptionBase& SparsityPattern::ExcInvalidNumberOfPartitions ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of partitions you gave is " << arg1 << ", but must be greater than zero."

◆ ExcMETISNotInstalled() [2/2]

static ::ExceptionBase& SparsityTools::ExcMETISNotInstalled ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The function you called requires METIS, but you did not " "configure deal.II with METIS."

◆ ExcInvalidNumberOfPartitions() [4/4]

static ::ExceptionBase& SparsityTools::ExcInvalidNumberOfPartitions ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of partitions you gave is " << arg1 << ", but must be greater than zero."

◆ ExcMETISError()

static ::ExceptionBase& SparsityTools::ExcMETISError ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< " An error with error number " << arg1 << " occurred while calling a METIS function"

◆ ExcInvalidArraySize() [2/2]

static ::ExceptionBase& SparsityTools::ExcInvalidArraySize ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The array has size " << arg1 << " but should have size " << arg2

◆ ExcZOLTANNotInstalled()

static ::ExceptionBase& SparsityTools::ExcZOLTANNotInstalled ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The function you called requires ZOLTAN, but you did not " "configure deal.II with ZOLTAN or zoltan_cpp.h is not available."

◆ ExcIncompatibleRowNumbers() [3/3]

static ::ExceptionBase& TrilinosWrappers::BlockSparseMatrix::ExcIncompatibleRowNumbers ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The blocks [" << arg1 << ',' << arg2 << "] and [" << arg3 << ',' << arg4 << "] have differing row numbers."

◆ ExcIncompatibleColNumbers() [3/3]

static ::ExceptionBase& TrilinosWrappers::BlockSparseMatrix::ExcIncompatibleColNumbers ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The blocks [" << arg1 << ',' << arg2 << "] and [" << arg3 << ',' << arg4 << "] have differing column numbers."

◆ ExcDifferentParallelPartitioning() [1/3]

static ::ExceptionBase& LinearAlgebra::EpetraWrappers::Vector::ExcDifferentParallelPartitioning ( )
static

The vectors have different partitioning, i.e. their IndexSet objects don't represent the same indices.

◆ ExcVectorTypeNotCompatible() [5/6]

static ::ExceptionBase& LinearAlgebra::EpetraWrappers::Vector::ExcVectorTypeNotCompatible ( )
static

Attempt to perform an operation between two incompatible vector types.

◆ ExcTrilinosError() [2/8]

static ::ExceptionBase& LinearAlgebra::EpetraWrappers::Vector::ExcTrilinosError ( int  arg1)
static

Exception thrown by an error in Trilinos.

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcIteratorRangeDoesNotMatchVectorSize() [4/4]

static ::ExceptionBase& TrilinosWrappers::MPI::BlockVector::ExcIteratorRangeDoesNotMatchVectorSize ( )
static

Exception

◆ ExcNonMatchingBlockVectors() [2/2]

static ::ExceptionBase& TrilinosWrappers::MPI::BlockVector::ExcNonMatchingBlockVectors ( )
static

Exception

◆ ExcNonMatchingMaps()

static ::ExceptionBase& TrilinosWrappers::PreconditionBase::ExcNonMatchingMaps ( std::string  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The sparse matrix the preconditioner is based on " << "uses a map that is not compatible to the one in vector " << arg1 << ". Check preconditioner and matrix setup."

◆ ExcTrilinosError() [3/8]

static ::ExceptionBase& TrilinosWrappers::SolverBase::ExcTrilinosError ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcTrilinosError() [4/8]

static ::ExceptionBase& TrilinosWrappers::SolverDirect::ExcTrilinosError ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcBeyondEndOfMatrix() [2/2]

static ::ExceptionBase& TrilinosWrappers::SparseMatrixIterators::ExcBeyondEndOfMatrix ( )
static

Exception

◆ ExcAccessToNonlocalRow() [2/4]

static ::ExceptionBase& TrilinosWrappers::SparseMatrixIterators::ExcAccessToNonlocalRow ( std::size_t  arg1,
std::size_t  arg2,
std::size_t  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access row " << arg1 << " of a distributed sparsity pattern, " << " but only rows " << arg2 << " through " << arg3 << " are stored locally and can be accessed."

◆ ExcInvalidIndexWithinRow() [2/3]

template<bool Constness>
static ::ExceptionBase& TrilinosWrappers::SparseMatrixIterators::Iterator< Constness >::ExcInvalidIndexWithinRow ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Attempt to access element " << arg2 << " of row " << arg1 << " which doesn't have that many elements."

◆ ExcAccessToNonlocalRow() [3/4]

static ::ExceptionBase& TrilinosWrappers::SparseMatrix::ExcAccessToNonlocalRow ( std::size_t  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access row " << arg1 << " of a non-contiguous locally owned row set." << " The row " << arg1 << " is not stored locally and can't be accessed."

◆ ExcTrilinosError() [5/8]

static ::ExceptionBase& TrilinosWrappers::SparseMatrix::ExcTrilinosError ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcInvalidIndex() [4/5]

static ::ExceptionBase& TrilinosWrappers::SparseMatrix::ExcInvalidIndex ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The entry with index <" << arg1 << ',' << arg2 << "> does not exist."

◆ ExcSourceEqualsDestination() [5/6]

static ::ExceptionBase& TrilinosWrappers::SparseMatrix::ExcSourceEqualsDestination ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting an operation on two matrices that " "are the same object, but the operation requires that the " "two objects are in fact different."

◆ ExcMatrixNotCompressed()

static ::ExceptionBase& TrilinosWrappers::SparseMatrix::ExcMatrixNotCompressed ( )
static

Exception

◆ ExcAccessToNonLocalElement() [2/4]

static ::ExceptionBase& TrilinosWrappers::SparseMatrix::ExcAccessToNonLocalElement ( size_type  arg1,
size_type  arg2,
size_type  arg3,
size_type  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access element (" << arg1 << "/" << arg2 << ")" << " of a distributed matrix, but only rows " << arg3 << " through " << arg4 << " are stored locally and can be accessed."

◆ ExcAccessToNonPresentElement() [1/2]

static ::ExceptionBase& TrilinosWrappers::SparseMatrix::ExcAccessToNonPresentElement ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access element (" << arg1 << "/" << arg2 << ")" << " of a sparse matrix, but it appears to not" << " exist in the Trilinos sparsity pattern."

◆ ExcBeyondEndOfSparsityPattern()

static ::ExceptionBase& TrilinosWrappers::SparsityPatternIterators::Accessor::ExcBeyondEndOfSparsityPattern ( )
static

Exception

◆ ExcAccessToNonlocalRow() [4/4]

static ::ExceptionBase& TrilinosWrappers::SparsityPatternIterators::Accessor::ExcAccessToNonlocalRow ( size_type  arg1,
size_type  arg2,
size_type  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access row " << arg1 << " of a distributed sparsity pattern, " << " but only rows " << arg2 << " through " << arg3 << " are stored locally and can be accessed."

◆ ExcInvalidIndexWithinRow() [3/3]

static ::ExceptionBase& TrilinosWrappers::SparsityPatternIterators::Iterator::ExcInvalidIndexWithinRow ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Attempt to access element " << arg2 << " of row " << arg1 << " which doesn't have that many elements."

◆ ExcTrilinosError() [6/8]

static ::ExceptionBase& TrilinosWrappers::SparsityPattern::ExcTrilinosError ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcInvalidIndex() [5/5]

static ::ExceptionBase& TrilinosWrappers::SparsityPattern::ExcInvalidIndex ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The entry with index <" << arg1 << ',' << arg2 << "> does not exist."

◆ ExcSourceEqualsDestination() [6/6]

static ::ExceptionBase& TrilinosWrappers::SparsityPattern::ExcSourceEqualsDestination ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting an operation on two sparsity patterns that " "are the same object, but the operation requires that the " "two objects are in fact different."

◆ ExcAccessToNonLocalElement() [3/4]

static ::ExceptionBase& TrilinosWrappers::SparsityPattern::ExcAccessToNonLocalElement ( size_type  arg1,
size_type  arg2,
size_type  arg3,
size_type  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access element (" << arg1 << "/" << arg2 << ")" << " of a distributed matrix, but only rows " << arg3 << " through " << arg4 << " are stored locally and can be accessed."

◆ ExcAccessToNonPresentElement() [2/2]

static ::ExceptionBase& TrilinosWrappers::SparsityPattern::ExcAccessToNonPresentElement ( size_type  arg1,
size_type  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access element (" << arg1 << "/" << arg2 << ")" << " of a sparse matrix, but it appears to not" << " exist in the Trilinos sparsity pattern."

◆ ExcDifferentParallelPartitioning() [2/3]

template<typename Number >
static ::ExceptionBase& LinearAlgebra::TpetraWrappers::Vector< Number >::ExcDifferentParallelPartitioning ( )
static

The vectors have different partitioning, i.e. their IndexSet objects don't represent the same indices.

◆ ExcVectorTypeNotCompatible() [6/6]

template<typename Number >
static ::ExceptionBase& LinearAlgebra::TpetraWrappers::Vector< Number >::ExcVectorTypeNotCompatible ( )
static

Attempt to perform an operation between two incompatible vector types.

◆ ExcTrilinosError() [7/8]

template<typename Number >
static ::ExceptionBase& LinearAlgebra::TpetraWrappers::Vector< Number >::ExcTrilinosError ( int  arg1)
static

Exception thrown by an error in Trilinos.

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcDifferentParallelPartitioning() [3/3]

static ::ExceptionBase& TrilinosWrappers::MPI::Vector::ExcDifferentParallelPartitioning ( )
static

Exception

◆ ExcTrilinosError() [8/8]

static ::ExceptionBase& TrilinosWrappers::MPI::Vector::ExcTrilinosError ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "An error with error number " << arg1 << " occurred while calling a Trilinos function"

◆ ExcAccessToNonLocalElement() [4/4]

static ::ExceptionBase& TrilinosWrappers::MPI::Vector::ExcAccessToNonLocalElement ( size_type  arg1,
size_type  arg2,
size_type  arg3,
size_type  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to access element " << arg1 << " of a distributed vector, but this element is not stored " << "on the current processor. Note: There are " << arg2 << " elements stored " << "on the current processor from within the range " << arg3 << " through " << arg4 << " but Trilinos vectors need not store contiguous " << "ranges on each processor, and not every element in " << "this range may in fact be stored locally."

◆ ExcNotAllocatedHere()

template<typename VectorType = ::Vector<double>>
static ::ExceptionBase& VectorMemory< VectorType >::ExcNotAllocatedHere ( )
static

Vector was not allocated from this memory pool.

Note
The message that will be printed by this exception reads:
"You are trying to deallocate a vector from a memory pool, but this " "vector has not actually been allocated by the same pool before."

◆ Pointer() [1/3]

template<typename VectorType = ::Vector<double>>
VectorMemory< VectorType >::Pointer::Pointer ( )
default

Default constructor. This constructor corresponds to a nullptr object that does not own a vector. It can, however, later be assigned another Pointer object via move assignment in which case it will steal the vector owned by the other object (as std::unique_ptr does).

◆ Pointer() [2/3]

template<typename VectorType = ::Vector<double>>
VectorMemory< VectorType >::Pointer::Pointer ( Pointer &&  p)
defaultnoexcept

Move constructor: this creates a new Pointer by stealing the internal data owned by p.

◆ operator=() [11/11]

template<typename VectorType = ::Vector<double>>
Pointer& VectorMemory< VectorType >::Pointer::operator= ( Pointer &&  p)
defaultnoexcept

Move operator: this releases the vector owned by the current Pointer and then steals the internal data owned by p.

◆ Pointer() [3/3]

template<typename VectorType = ::Vector<double>>
VectorMemory< VectorType >::Pointer::Pointer ( VectorMemory< VectorType > &  mem)

Constructor. This constructor automatically allocates a vector from the given vector memory object mem.

◆ ~Pointer()

template<typename VectorType = ::Vector<double>>
VectorMemory< VectorType >::Pointer::~Pointer ( )
default

Destructor, automatically releasing the vector from the memory pool.

◆ alloc() [1/2]

template<typename VectorType = ::Vector<double>>
virtual VectorType* PrimitiveVectorMemory< VectorType >::alloc ( )
overridevirtual

Return a pointer to a new vector. The number of elements or their subdivision into blocks (if applicable) is unspecified and users of this function should reset vectors to their proper size. The same holds for the contents of vectors: they are unspecified. In other words, the place that calls this function will need to resize or reinitialize it appropriately.

For the present class, calling this function will allocate a new vector on the heap and returning a pointer to it. Later calling free() then returns the memory to the global heap managed by the operating system.

Warning
Just like using new and delete explicitly in code invites bugs where memory is leaked (either because the corresponding delete is forgotten altogether, or because of exception safety issues), using the alloc() and free() functions explicitly invites writing code that accidentally leaks memory. You should consider using the VectorMemory::Pointer class instead, which provides the same kind of service that std::unique provides for arbitrary memory allocated on the heap.

Implements VectorMemory< ::Vector< double > >.

◆ free() [1/2]

template<typename VectorType = ::Vector<double>>
virtual void PrimitiveVectorMemory< VectorType >::free ( const VectorType *const  v)
overridevirtual

Return a vector and indicate that it is not going to be used any further by the instance that called alloc() to get a pointer to it.

For the present class, this means that the vector is returned to the global heap.

Warning
Just like using new and delete explicitly in code invites bugs where memory is leaked (either because the corresponding delete is forgotten altogether, or because of exception safety issues), using the alloc() and free() functions explicitly invites writing code that accidentally leaks memory. You should consider using the VectorMemory::Pointer class instead, which provides the same kind of service that std::unique provides for arbitrary memory allocated on the heap.

◆ GrowingVectorMemory()

template<typename VectorType = ::Vector<double>>
GrowingVectorMemory< VectorType >::GrowingVectorMemory ( const size_type  initial_size = 0,
const bool  log_statistics = false 
)

Constructor. The argument allows to preallocate a certain number of vectors. The default is not to do this.

◆ ~GrowingVectorMemory()

template<typename VectorType = ::Vector<double>>
virtual GrowingVectorMemory< VectorType >::~GrowingVectorMemory ( )
overridevirtual

Destructor. The destructor also checks that all vectors that have been allocated through the current object have all been released again. However, as discussed in the class documentation, this does not imply that their memory is returned to the operating system.

◆ alloc() [2/2]

template<typename VectorType = ::Vector<double>>
virtual VectorType* GrowingVectorMemory< VectorType >::alloc ( )
overridevirtual

Return a pointer to a new vector. The number of elements or their subdivision into blocks (if applicable) is unspecified and users of this function should reset vectors to their proper size. The same holds for the contents of vectors: they are unspecified. In other words, the place that calls this function will need to resize or reinitialize it appropriately.

Warning
Just like using new and delete explicitly in code invites bugs where memory is leaked (either because the corresponding delete is forgotten altogether, or because of exception safety issues), using the alloc() and free() functions explicitly invites writing code that accidentally leaks memory. You should consider using the VectorMemory::Pointer class instead, which provides the same kind of service that std::unique provides for arbitrary memory allocated on the heap.

Implements VectorMemory< ::Vector< double > >.

◆ free() [2/2]

template<typename VectorType = ::Vector<double>>
virtual void GrowingVectorMemory< VectorType >::free ( const VectorType * const  )
overridevirtual

Return a vector and indicate that it is not going to be used any further by the instance that called alloc() to get a pointer to it.

For the present class, this means retaining the vector for later reuse by the alloc() method.

Warning
Just like using new and delete explicitly in code invites bugs where memory is leaked (either because the corresponding delete is forgotten altogether, or because of exception safety issues), using the alloc() and free() functions explicitly invites writing code that accidentally leaks memory. You should consider using the VectorMemory::Pointer class instead, which provides the same kind of service that std::unique provides for arbitrary memory allocated on the heap.

◆ release_unused_memory()

template<typename VectorType = ::Vector<double>>
static void GrowingVectorMemory< VectorType >::release_unused_memory ( )
static

Release all vectors that are not currently in use.

◆ memory_consumption() [16/16]

template<typename VectorType = ::Vector<double>>
virtual std::size_t GrowingVectorMemory< VectorType >::memory_consumption ( ) const
virtual

Memory consumed by this class and all currently allocated vectors.

◆ Pool()

template<typename VectorType = ::Vector<double>>
GrowingVectorMemory< VectorType >::Pool::Pool ( )

Standard constructor creating an empty pool

◆ ~Pool()

template<typename VectorType = ::Vector<double>>
GrowingVectorMemory< VectorType >::Pool::~Pool ( )

Destructor.

◆ initialize()

template<typename VectorType = ::Vector<double>>
void GrowingVectorMemory< VectorType >::Pool::initialize ( const size_type  size)

Create data vector; does nothing after first initialization

◆ get_pool()

template<typename VectorType = ::Vector<double>>
static Pool& GrowingVectorMemory< VectorType >::get_pool ( )
staticprivate

Return an array of allocated vectors.

◆ release_all_unused_memory()

void internal::GrowingVectorMemoryImplementation::release_all_unused_memory ( )

Definition at line 44 of file vector_memory.cc.

◆ ExcAccessToUninitializedField() [2/2]

static ::ExceptionBase& internal::ExcAccessToUninitializedField ( )
static

◆ ExcPureFunction()

template<int dim, int spacedim = dim, typename number = double>
static ::ExceptionBase& MeshWorker::LocalIntegrator< dim, spacedim, number >::ExcPureFunction ( )
static

This error is thrown if one of the virtual functions cell(), boundary(), or face() is called without being overloaded in a derived class. Consider setting use_cell, use_boundary, and use_face to false, respectively.

◆ ExcNoProlongation() [1/2]

template<typename VectorType >
static ::ExceptionBase& MGTransferPrebuilt< VectorType >::ExcNoProlongation ( )
static

Finite element does not provide prolongation matrices.

◆ ExcMatricesNotBuilt() [1/3]

template<typename VectorType >
static ::ExceptionBase& MGTransferPrebuilt< VectorType >::ExcMatricesNotBuilt ( )
static

You have to call build() before using this object.

◆ ExcMatricesNotBuilt() [2/3]

static ::ExceptionBase& MGTransferBlockBase::ExcMatricesNotBuilt ( )
staticprotected

Call build() function first.

◆ ExcMatricesNotBuilt() [3/3]

static ::ExceptionBase& MGTransferComponentBase::ExcMatricesNotBuilt ( )
staticprotected

Call build() function first.

◆ ExcNoProlongation() [2/2]

template<int dim, typename Number >
static ::ExceptionBase& MGTransferMatrixFree< dim, Number >::ExcNoProlongation ( )
static

Finite element does not provide prolongation matrices.

◆ ExcInvalidNumberOfSubdivisions()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcInvalidNumberOfSubdivisions ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "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."

◆ ExcNoTriangulationSelected() [2/2]

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcNoTriangulationSelected ( )
static

Exception

Note
The message that will be printed by this exception reads:
"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."

◆ ExcNoDoFHandlerSelected()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcNoDoFHandlerSelected ( )
static

Exception

Note
The message that will be printed by this exception reads:
"For the operation you are attempting, you first need to " "tell the DataOut or related object which DoFHandler " "you would like to work on."

◆ ExcInvalidVectorSize()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcInvalidVectorSize ( int  arg1,
int  arg2,
int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "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."

◆ ExcInvalidCharacter()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcInvalidCharacter ( std::string  arg1,
size_t  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "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

◆ ExcOldDataStillPresent()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcOldDataStillPresent ( )
static

Exception

Note
The message that will be printed by this exception reads:
"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."

◆ ExcInvalidNumberOfNames()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcInvalidNumberOfNames ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "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 << "."

◆ ExcIncompatibleDatasetNames() [2/2]

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcIncompatibleDatasetNames ( )
static

Exception

Note
The message that will be printed by this exception reads:
"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."

◆ ExcIncompatiblePatchLists() [2/2]

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcIncompatiblePatchLists ( )
static

Exception

Note
The message that will be printed by this exception reads:
"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."

◆ ExcInvalidVectorDeclaration()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcInvalidVectorDeclaration ( int  arg1,
std::string  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "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."

◆ ExcInvalidTensorDeclaration()

static ::ExceptionBase& Exceptions::DataOutImplementation::ExcInvalidTensorDeclaration ( int  arg1,
std::string  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "When declaring that a number of components in a data " << "set to be output logically form a tensor instead of " << "simply a set of scalar fields, you need to specify " << "this for all relevant components. Furthermore, " << "tensors must always consist of exactly <dim*dim> " << "components. However, the tensor component at " << "position " << arg1 << " with name <" << arg2 << "> does not satisfy these conditions."

◆ ExcRadialVariableHasNegativeValues()

template<int dim, typename DoFHandlerType = DoFHandler<dim>>
static ::ExceptionBase& DataOutRotation< dim, DoFHandlerType >::ExcRadialVariableHasNegativeValues ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You are attempting to use this class on a triangulation " "in which some vertices have a negative radial coordinate " "value of " << arg1 << ". If you rotate such a triangulation around an " "axis, you will get (dim+1)-dimensional meshes " "that are not likely what you hoped to see."

◆ ExcVectorNotDeclared()

template<int dim, int spacedim = dim, typename DoFHandlerType = DoFHandler<dim, spacedim>>
static ::ExceptionBase& DataOutStack< dim, spacedim, DoFHandlerType >::ExcVectorNotDeclared ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The data vector for which the first component has the name " << arg1 << " has not been added before."

◆ ExcDataNotCleared()

template<int dim, int spacedim = dim, typename DoFHandlerType = DoFHandler<dim, spacedim>>
static ::ExceptionBase& DataOutStack< dim, spacedim, DoFHandlerType >::ExcDataNotCleared ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You cannot start a new time/parameter step before calling " "finish_parameter_value() on the previous step."

◆ ExcDataAlreadyAdded()

template<int dim, int spacedim = dim, typename DoFHandlerType = DoFHandler<dim, spacedim>>
static ::ExceptionBase& DataOutStack< dim, spacedim, DoFHandlerType >::ExcDataAlreadyAdded ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You cannot declare additional vectors after already calling " "build_patches(). All data vectors need to be declared " "before you call this function the first time."

◆ ExcNameAlreadyUsed()

template<int dim, int spacedim = dim, typename DoFHandlerType = DoFHandler<dim, spacedim>>
static ::ExceptionBase& DataOutStack< dim, spacedim, DoFHandlerType >::ExcNameAlreadyUsed ( std::string  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You tried to declare a component of a data vector with " << "the name <" << arg1 << ">, but that name is already used."

◆ ExcVectorLengthVsNActiveCells()

static ::ExceptionBase& DerivativeApproximation::ExcVectorLengthVsNActiveCells ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The output vector needs to have a size equal " "to the number of active cells of your triangulation " "but has length " << arg1 << "There are " << arg2 << " active cells in your triangulation."

◆ ExcInsufficientDirections()

static ::ExceptionBase& DerivativeApproximation::ExcInsufficientDirections ( )
static

Exception

Note
The message that will be printed by this exception reads:
"While computing a finite difference approximation to " "derivatives, the algorithm encountered a cell on which " "the number of linearly " "independent directions that span the matrix Y (discussed " "in the documentation of the DerivativeApproximation " "class) is not equal to dim. The matrix Y then is " "rank deficient and can not be inverted. A common reason " "why this might be happening is if a cell has neither " "left/right (or up/down, or front/back) neighbors, for " "example because the mesh is too coarse."

◆ ExcInvalidComponentMask() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& KellyErrorEstimator< dim, spacedim >::ExcInvalidComponentMask ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You provided a ComponentMask argument that is invalid. " "Component masks need to be either default constructed " "(in which case they indicate that every component is " "selected) or need to have a length equal to the number " "of vector components of the finite element in use " "by the DoFHandler object. In the latter case, at " "least one component needs to be selected."

◆ ExcInvalidCoefficient() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& KellyErrorEstimator< dim, spacedim >::ExcInvalidCoefficient ( )
static

Exception

Note
The message that will be printed by this exception reads:
"If you do specify the argument for a (possibly " "spatially variable) coefficient function for this function, " "then it needs to refer to a coefficient that is either " "scalar (has one vector component) or has as many vector " "components as there are in the finite element used by " "the DoFHandler argument."

◆ ExcInvalidBoundaryFunction() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& KellyErrorEstimator< dim, spacedim >::ExcInvalidBoundaryFunction ( types::boundary_id  arg1,
int  arg2,
int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You provided a function map that for boundary indicator " << arg1 << " specifies a function with " << arg2 << " vector components. However, the finite " "element in use has " << arg3 << " components, and these two numbers need to match."

◆ ExcIncompatibleNumberOfElements() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& KellyErrorEstimator< dim, spacedim >::ExcIncompatibleNumberOfElements ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of input vectors, " << arg1 << " needs to be equal to the number of output vectors, " << arg2 << ". This is not the case in your call of this function."

◆ ExcNoSolutions() [1/2]

template<int dim, int spacedim = dim>
static ::ExceptionBase& KellyErrorEstimator< dim, spacedim >::ExcNoSolutions ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You need to specify at least one solution vector as " "input."

◆ ExcInvalidComponentMask() [2/2]

template<int spacedim>
static ::ExceptionBase& KellyErrorEstimator< 1, spacedim >::ExcInvalidComponentMask ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You provided a ComponentMask argument that is invalid. " "Component masks need to be either default constructed " "(in which case they indicate that every component is " "selected) or need to have a length equal to the number " "of vector components of the finite element in use " "by the DoFHandler object. In the latter case, at " "least one component needs to be selected."

◆ ExcInvalidCoefficient() [2/2]

template<int spacedim>
static ::ExceptionBase& KellyErrorEstimator< 1, spacedim >::ExcInvalidCoefficient ( )
static

Exception

Note
The message that will be printed by this exception reads:
"If you do specify the argument for a (possibly " "spatially variable) coefficient function for this function, " "then it needs to refer to a coefficient that is either " "scalar (has one vector component) or has as many vector " "components as there are in the finite element used by " "the DoFHandler argument."

◆ ExcInvalidBoundaryFunction() [2/2]

template<int spacedim>
static ::ExceptionBase& KellyErrorEstimator< 1, spacedim >::ExcInvalidBoundaryFunction ( types::boundary_id  arg1,
int  arg2,
int  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "You provided a function map that for boundary indicator " << arg1 << " specifies a function with " << arg2 << " vector components. However, the finite " "element in use has " << arg3 << " components, and these two numbers need to match."

◆ ExcIncompatibleNumberOfElements() [2/2]

template<int spacedim>
static ::ExceptionBase& KellyErrorEstimator< 1, spacedim >::ExcIncompatibleNumberOfElements ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The number of input vectors, " << arg1 << " needs to be equal to the number of output vectors, " << arg2 << ". This is not the case in your call of this function."

◆ ExcNoSolutions() [2/2]

template<int spacedim>
static ::ExceptionBase& KellyErrorEstimator< 1, spacedim >::ExcNoSolutions ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You need to specify at least one solution vector as " "input."

◆ ExcEmptyData()

static ::ExceptionBase& Histogram::ExcEmptyData ( )
static

Exception.

Note
The message that will be printed by this exception reads:
"Your input argument to this function does not appear to " "have any data in it."

◆ ExcIncompatibleArraySize()

static ::ExceptionBase& Histogram::ExcIncompatibleArraySize ( int  arg1,
int  arg2 
)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The two array sizes " << arg1 << " and " << arg2 << " must match, but don't."

◆ ExcInvalidName()

static ::ExceptionBase& Histogram::ExcInvalidName ( std::string  arg1)
static

Exception.

Note
The message that will be printed by this exception reads:
<< "The given name <" << arg1 << "> does not match any of the known formats."

◆ ExcComponentMismatch()

static ::ExceptionBase& MatrixCreator::ExcComponentMismatch ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are providing either a right hand side function or a " "coefficient with a number of vector components that is " "inconsistent with the rest of the arguments. If you do " "provide a coefficient or right hand side function, then " "it either needs to have as many components as the finite " "element in use, or only a single vector component. In " "the latter case, the same value will be taken for " "each vector component of the finite element."

◆ ExcBlocksDontMatch()

static ::ExceptionBase& MatrixTools::ExcBlocksDontMatch ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are providing a matrix whose subdivision into " "blocks in either row or column direction does not use " "the same blocks sizes as the solution vector or " "right hand side vectors, respectively."

◆ ExcNoIndependent()

template<int dim>
static ::ExceptionBase& PointValueHistory< dim >::ExcNoIndependent ( )
static

Exception

Note
The message that will be printed by this exception reads:
"A call has been made to push_back_independent() when " "no independent values were requested."

◆ ExcDataLostSync()

template<int dim>
static ::ExceptionBase& PointValueHistory< dim >::ExcDataLostSync ( )
static

Exception

Note
The message that will be printed by this exception reads:
"This error is thrown to indicate that the data sets appear to be out of " "sync. The class requires that the number of dataset keys is the same as " "the number of independent values sets and mesh linked value sets. The " "number of each of these is allowed to differ by one to allow new values " "to be added with out restricting the order the user choses to do so. " "Special cases of no FHandler and no independent values should not " "trigger this error."

◆ ExcDoFHandlerRequired()

template<int dim>
static ::ExceptionBase& PointValueHistory< dim >::ExcDoFHandlerRequired ( )
static

Exception

Note
The message that will be printed by this exception reads:
"A method which requires access to a @p DoFHandler to be meaningful has " "been called when have_dof_handler is false (most likely due to default " "constructor being called). Only independent variables may be logged with " "no DoFHandler."

◆ ExcDoFHandlerChanged()

template<int dim>
static ::ExceptionBase& PointValueHistory< dim >::ExcDoFHandlerChanged ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The triangulation has been refined or coarsened in some way. This " "suggests that the internal DoF indices stored by the current " "object are no longer meaningful."

◆ ExcNotPrepared()

template<int dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim>>
static ::ExceptionBase& SolutionTransfer< dim, VectorType, DoFHandlerType >::ExcNotPrepared ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting an operation for which this object is " "not prepared. This may be because you either did not call " "one of the prepare_*() functions at all, or because you " "called the wrong one for the operation you are currently " "attempting."

◆ ExcAlreadyPrepForRef()

template<int dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim>>
static ::ExceptionBase& SolutionTransfer< dim, VectorType, DoFHandlerType >::ExcAlreadyPrepForRef ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting to call one of the prepare_*() functions " "of this object to prepare it for an operation for which it " "is already prepared. Specifically, the object was " "previously prepared for pure refinement."

◆ ExcAlreadyPrepForCoarseAndRef()

template<int dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim>>
static ::ExceptionBase& SolutionTransfer< dim, VectorType, DoFHandlerType >::ExcAlreadyPrepForCoarseAndRef ( )
static

Exception

Note
The message that will be printed by this exception reads:
"You are attempting to call one of the prepare_*() functions " "of this object to prepare it for an operation for which it " "is already prepared. Specifically, the object was " "previously prepared for both coarsening and refinement."

◆ ExcInvalidPosition()

static ::ExceptionBase& TimeDependent::ExcInvalidPosition ( )
static

Exception.

Note
The message that will be printed by this exception reads:
"You cannot insert a time step at the specified position."

◆ ExcInvalidValue() [1/2]

template<int dim>
static ::ExceptionBase& TimeStepBase_Tria_Flags::RefinementFlags< dim >::ExcInvalidValue ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The value " << arg1 << " for the cell number corridor does not fulfill " "its natural requirements."

◆ ExcInvalidValue() [2/2]

template<int dim>
static ::ExceptionBase& TimeStepBase_Tria_Flags::RefinementData< dim >::ExcInvalidValue ( double  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The value " << arg1 << " for the cell refinement thresholds does not fulfill " "its natural requirements."

◆ ExcGridNotDeleted()

template<int dim>
static ::ExceptionBase& TimeStepBase_Tria< dim >::ExcGridNotDeleted ( )
static

Exception

Note
The message that will be printed by this exception reads:
"When calling restore_grid(), you must have previously " "deleted the triangulation."

◆ ExcPointNotAvailableHere()

static ::ExceptionBase& VectorTools::ExcPointNotAvailableHere ( )
static

Exception

Note
The message that will be printed by this exception reads:
"The given point is inside a cell of a " "parallel::distributed::Triangulation that is not " "locally owned by this processor."

◆ ExcPointNotOnManifold()

template<int dim>
static ::ExceptionBase& OpenCASCADE::ExcPointNotOnManifold ( Point< dim >  arg1)
static

Exception thrown when the point specified as argument does not lie between tolerance from the given TopoDS_Shape.

Note
The message that will be printed by this exception reads:
<< "The point [ " << arg1 << " ] is not on the manifold."

◆ ExcProjectionFailed()

template<int dim>
static ::ExceptionBase& OpenCASCADE::ExcProjectionFailed ( Point< dim >  arg1)
static

Exception thrown when the point specified as argument cannot be projected to the manifold.

Note
The message that will be printed by this exception reads:
<< "Projection of point [ " << arg1 << " ] failed."

◆ ExcOCCError()

static ::ExceptionBase& OpenCASCADE::ExcOCCError ( IFSelect_ReturnStatus  arg1)
static

Thrown when internal OpenCASCADE utilities fail to return the OK status.

Note
The message that will be printed by this exception reads:
<< "An OpenCASCADE routine failed with return status " << arg1

◆ ExcEdgeIsDegenerate()

static ::ExceptionBase& OpenCASCADE::ExcEdgeIsDegenerate ( )
static

Trying to make curve operations on a degenerate edge.

◆ ExcUnsupportedShape()

static ::ExceptionBase& OpenCASCADE::ExcUnsupportedShape ( )
static

Trying to make operations on the wrong type of shapes.

◆ ExcNotationExcFullMatrixToTensorRowSize2()

static ::ExceptionBase& Physics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorRowSize2 ( int  arg1,
int  arg2,
int  arg3 
)
static

Input matrix has incorrect number of rows.

Note
The message that will be printed by this exception reads:
<< "The number of rows in the input matrix is " << arg1 << ", but needs to be either " << arg2 << " or " << arg3 << "."

◆ ExcNotationExcFullMatrixToTensorRowSize3()

static ::ExceptionBase& Physics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorRowSize3 ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Input matrix has incorrect number of rows.

Note
The message that will be printed by this exception reads:
<< "The number of rows in the input matrix is " << arg1 << ", but needs to be either " << arg2 << "," << arg3 << ", or " << arg4 << "."

◆ ExcNotationExcFullMatrixToTensorColSize2()

static ::ExceptionBase& Physics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorColSize2 ( int  arg1,
int  arg2,
int  arg3 
)
static

Input matrix has incorrect number of columns.

Note
The message that will be printed by this exception reads:
<< "The number of columns in the input matrix is " << arg1 << ", but needs to be either " << arg2 << " or " << arg3 << "."

◆ ExcNotationExcFullMatrixToTensorColSize3()

static ::ExceptionBase& Physics::Notation::Kelvin::ExcNotationExcFullMatrixToTensorColSize3 ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Input matrix has incorrect number of columns.

Note
The message that will be printed by this exception reads:
<< "The number of columns in the input matrix is " << arg1 << ", but needs to be either " << arg2 << "," << arg3 << ", or " << arg4 << "."

◆ ExcKINSOLError()

template<typename VectorType = Vector<double>>
static ::ExceptionBase& SUNDIALS::KINSOL< VectorType >::ExcKINSOLError ( int  arg1)
static

Handle KINSOL exceptions.

Note
The message that will be printed by this exception reads:
<< "One of the SUNDIALS KINSOL internal functions " << " returned a negative error code: " << arg1 << ". Please consult SUNDIALS manual."

◆ ExcFunctionNotProvided()

template<typename VectorType = Vector<double>>
static ::ExceptionBase& SUNDIALS::KINSOL< VectorType >::ExcFunctionNotProvided ( std::string  arg1)
staticprivate

Throw an exception when a function with the given name is not implemented.

Note
The message that will be printed by this exception reads:
<< "Please provide an implementation for the function \"" << arg1 << """

◆ NegativeRadius()

static ::ExceptionBase& GeometricUtilities::Coordinates::NegativeRadius ( double  arg1)
static
Note
The message that will be printed by this exception reads:
<< "The radius <" << arg1 << "> can not be negative."

◆ SphericalAzimuth()

static ::ExceptionBase& GeometricUtilities::Coordinates::SphericalAzimuth ( double  arg1)
static
Note
The message that will be printed by this exception reads:
<< "The azimuth angle <" << arg1 << "> is not in [0,2Pi)."

◆ SphericalPolar()

static ::ExceptionBase& GeometricUtilities::Coordinates::SphericalPolar ( double  arg1)
static
Note
The message that will be printed by this exception reads:
<< "The polar angle <" << arg1 << "> is not in [0,Pi]."

◆ ExcInvalidNumber2StringConversersion()

static ::ExceptionBase& Utilities::ExcInvalidNumber2StringConversersion ( unsigned int  arg1,
unsigned int  arg2 
)
static
Note
The message that will be printed by this exception reads:
<< "When trying to convert " << arg1 << " to a string with " << arg2 << " digits"

◆ ExcInvalidNumber() [2/2]

static ::ExceptionBase& Utilities::ExcInvalidNumber ( unsigned int  arg1)
static
Note
The message that will be printed by this exception reads:
<< "Invalid number " << arg1

◆ ExcCantConvertString()

static ::ExceptionBase& Utilities::ExcCantConvertString ( std::string  arg1)
static
Note
The message that will be printed by this exception reads:
<< "Can't convert the string " << arg1 << " to the desired type"

◆ ExcGridHasInvalidCell()

static ::ExceptionBase& internal::TriangulationImplementation::ExcGridHasInvalidCell ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Something went wrong when making cell " << arg1 << ". Read the docs and the source code " << "for more information."

◆ ExcInternalErrorOnCell()

static ::ExceptionBase& internal::TriangulationImplementation::ExcInternalErrorOnCell ( int  arg1)
static

Exception

Note
The message that will be printed by this exception reads:
<< "Something went wrong upon construction of cell " << arg1

◆ ExcCellHasNegativeMeasure()

static ::ExceptionBase& internal::TriangulationImplementation::ExcCellHasNegativeMeasure ( int  arg1)
static

A cell was entered which has negative measure. In most cases, this is due to a wrong order of the vertices of the cell.

Note
The message that will be printed by this exception reads:
<< "Cell " << arg1 << " has negative measure. This typically " << "indicates some distortion in the cell, or a mistakenly " << "swapped pair of vertices in the input to " << "Triangulation::create_triangulation()."

◆ ExcInvalidVertexIndex() [2/2]

static ::ExceptionBase& internal::TriangulationImplementation::ExcInvalidVertexIndex ( int  arg1,
int  arg2,
int  arg3 
)
static

A cell is created with a vertex number exceeding the vertex array.

Note
The message that will be printed by this exception reads:
<< "Error while creating cell " << arg1 << ": the vertex index " << arg2 << " must be between 0 and " << arg3 << "."

◆ ExcLineInexistant() [2/2]

static ::ExceptionBase& internal::TriangulationImplementation::ExcLineInexistant ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "While trying to assign a boundary indicator to a line: " << "the line with end vertices " << arg1 << " and " << arg2 << " does not exist."

◆ ExcQuadInexistant()

static ::ExceptionBase& internal::TriangulationImplementation::ExcQuadInexistant ( int  arg1,
int  arg2,
int  arg3,
int  arg4 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "While trying to assign a boundary indicator to a quad: " << "the quad with bounding lines " << arg1 << ", " << arg2 << ", " << arg3 << ", " << arg4 << " does not exist."

◆ ExcInteriorLineCantBeBoundary()

static ::ExceptionBase& internal::TriangulationImplementation::ExcInteriorLineCantBeBoundary ( int  arg1,
int  arg2,
types::boundary_id  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The input data for creating a triangulation contained " << "information about a line with indices " << arg1 << " and " << arg2 << " that is described to have boundary indicator " << static_cast<int>(arg3) << ". However, this is an internal line not located on the " << "boundary. You cannot assign a boundary indicator to it." << std::endl << std::endl << "If this happened at a place where you call " << "Triangulation::create_triangulation() yourself, you need " << "to check the SubCellData object you pass to this function." << std::endl << std::endl << "If this happened in a place where you are reading a mesh " << "from a file, then you need to investigate why such a line " << "ended up in the input file. A typical case is a geometry " << "that consisted of multiple parts and for which the mesh " << "generator program assumes that the interface between " << "two parts is a boundary when that isn't supposed to be " << "the case, or where the mesh generator simply assigns " << "'geometry indicators' to lines at the perimeter of " << "a part that are not supposed to be interpreted as " << "'boundary indicators'."

◆ ExcInteriorQuadCantBeBoundary()

static ::ExceptionBase& internal::TriangulationImplementation::ExcInteriorQuadCantBeBoundary ( int  arg1,
int  arg2,
int  arg3,
int  arg4,
types::boundary_id  arg5 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "The input data for creating a triangulation contained " << "information about a quad with indices " << arg1 << ", " << arg2 << ", " << arg3 << ", and " << arg4 << " that is described to have boundary indicator " << static_cast<int>(arg5) << ". However, this is an internal quad not located on the " << "boundary. You cannot assign a boundary indicator to it." << std::endl << std::endl << "If this happened at a place where you call " << "Triangulation::create_triangulation() yourself, you need " << "to check the SubCellData object you pass to this function." << std::endl << std::endl << "If this happened in a place where you are reading a mesh " << "from a file, then you need to investigate why such a quad " << "ended up in the input file. A typical case is a geometry " << "that consisted of multiple parts and for which the mesh " << "generator program assumes that the interface between " << "two parts is a boundary when that isn't supposed to be " << "the case, or where the mesh generator simply assigns " << "'geometry indicators' to quads at the surface of " << "a part that are not supposed to be interpreted as " << "'boundary indicators'."

◆ ExcMultiplySetLineInfoOfLine()

static ::ExceptionBase& internal::TriangulationImplementation::ExcMultiplySetLineInfoOfLine ( int  arg1,
int  arg2 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "In SubCellData the line info of the line with vertex indices " << arg1 << " and " << arg2 << " appears more than once. " << "This is not allowed."

◆ ExcInconsistentLineInfoOfLine()

static ::ExceptionBase& internal::TriangulationImplementation::ExcInconsistentLineInfoOfLine ( int  arg1,
int  arg2,
std::string  arg3 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "In SubCellData the line info of the line with vertex indices " << arg1 << " and " << arg2 << " appears multiple times with different (valid) " << arg3 << ". This is not allowed."

◆ ExcInconsistentQuadInfoOfQuad()

static ::ExceptionBase& internal::TriangulationImplementation::ExcInconsistentQuadInfoOfQuad ( int  arg1,
int  arg2,
int  arg3,
int  arg4,
std::string  arg5 
)
static

Exception

Note
The message that will be printed by this exception reads:
<< "In SubCellData the quad info of the quad with line indices " << arg1 << ", " << arg2 << ", " << arg3 << " and " << arg4 << " appears multiple times with different (valid) " << arg5 << ". This is not allowed."

◆ Tuple() [7/7]

template<class... PatternTypes>
Patterns::Tuple::Tuple ( const PatternTypes &...  ps)

Definition at line 1450 of file patterns.h.

◆ TableEntry()

template<typename T >
internal::TableEntry::TableEntry ( const T &  t)

Constructor. Initialize this table element with the value t.

Definition at line 806 of file table_handler.h.

◆ get()

template<typename T >
T internal::TableEntry::get

Return the value stored by this object. The template type T must be one of int,unsigned int,std::uint64_t,double,std::string and it must match the data type of the object originally stored in this TableEntry object.

Definition at line 813 of file table_handler.h.

◆ save() [6/7]

template<class Archive >
void internal::TableEntry::save ( Archive &  ar,
const unsigned int  version 
) const

Write the data of this object to a stream for the purpose of serialization.

Definition at line 838 of file table_handler.h.

◆ load() [6/7]

template<class Archive >
void internal::TableEntry::load ( Archive &  ar,
const unsigned int  version 
)

Read the data of this object from a stream for the purpose of serialization.

Definition at line 876 of file table_handler.h.

◆ print_formatted() [1/4]

template<typename number >
void BlockSparseMatrix< number >::print_formatted ( std::ostream &  out,
const unsigned int  precision = 3,
const bool  scientific = true,
const unsigned int  width = 0,
const char *  zero_string = " ",
const double  denominator = 1. 
) const

Print the matrix in the usual format, i.e. as a matrix and not as a list of nonzero elements. For better readability, elements not in the matrix are displayed as empty space, while matrix elements which are explicitly set to zero are displayed as such.

The parameters allow for a flexible setting of the output format: precision and scientific are used to determine the number format, where scientific = false means fixed point notation. A zero entry for width makes the function compute a width, but it may be changed to a positive value, if output is crude.

Additionally, a character for an empty value may be specified.

Finally, the whole matrix can be multiplied with a common denominator to produce more readable output, even integers.

Attention
This function may produce large amounts of output if applied to a large matrix!

◆ print() [3/7]

template<typename number >
void ChunkSparseMatrix< number >::print ( std::ostream &  out) const

Print the matrix to the given stream, using the format (line,col) value, i.e. one nonzero entry of the matrix per line.

◆ print_formatted() [2/4]

template<typename number >
void ChunkSparseMatrix< number >::print_formatted ( std::ostream &  out,
const unsigned int  precision = 3,
const bool  scientific = true,
const unsigned int  width = 0,
const char *  zero_string = " ",
const double  denominator = 1. 
) const

Print the matrix in the usual format, i.e. as a matrix and not as a list of nonzero elements. For better readability, elements not in the matrix are displayed as empty space, while matrix elements which are explicitly set to zero are displayed as such.

The parameters allow for a flexible setting of the output format: precision and scientific are used to determine the number format, where scientific = false means fixed point notation. A zero entry for width makes the function compute a width, but it may be changed to a positive value, if output is crude.

Additionally, a character for an empty value may be specified.

Finally, the whole matrix can be multiplied with a common denominator to produce more readable output, even integers.

Attention
This function may produce large amounts of output if applied to a large matrix!

◆ print_pattern() [1/2]

template<typename number >
void ChunkSparseMatrix< number >::print_pattern ( std::ostream &  out,
const double  threshold = 0. 
) const

Print the actual pattern of the matrix. For each entry with an absolute value larger than threshold, a '*' is printed, a ':' for every value smaller and a '.' for every entry not allocated.

◆ block_write() [2/4]

template<typename number >
void ChunkSparseMatrix< number >::block_write ( std::ostream &  out) const

Write the data of this object en bloc to a file. This is done in a binary mode, so the output is neither readable by humans nor (probably) by other computers using a different operating system or number format.

The purpose of this function is that you can swap out matrices and sparsity pattern if you are short of memory, want to communicate between different programs, or allow objects to be persistent across different runs of the program.

◆ block_read() [2/4]

template<typename number >
void ChunkSparseMatrix< number >::block_read ( std::istream &  in)

Read data that has previously been written by block_write() from a file. This is done using the inverse operations to the above function, so it is reasonably fast because the bitstream is not interpreted except for a few numbers up front.

The object is resized on this operation, and all previous contents are lost. Note, however, that no checks are performed whether new data and the underlying ChunkSparsityPattern object fit together. It is your responsibility to make sure that the sparsity pattern and the data to be read match.

A primitive form of error checking is performed which will recognize the bluntest attempts to interpret some data as a matrix stored bitwise to a file that wasn't actually created that way, but not more.

◆ print() [4/7]

template<typename number >
template<class StreamType >
void SparseMatrix< number >::print ( StreamType &  out,
const bool  across = false,
const bool  diagonal_first = true 
) const

Print the matrix to the given stream, using the format (row,column) value, i.e. one nonzero entry of the matrix per line. If across is true, print all entries on a single line, using the format row,column:value.

If the argument diagonal_first is true, diagonal elements of quadratic matrices are printed first in their row, corresponding to the internal storage scheme. If it is false, the elements in a row are written in ascending column order.

◆ print_formatted() [3/4]

template<typename number >
void SparseMatrix< number >::print_formatted ( std::ostream &  out,
const unsigned int  precision = 3,
const bool  scientific = true,
const unsigned int  width = 0,
const char *  zero_string = " ",
const double  denominator = 1. 
) const

Print the matrix in the usual format, i.e. as a matrix and not as a list of nonzero elements. For better readability, elements not in the matrix are displayed as empty space, while matrix elements which are explicitly set to zero are displayed as such.

The parameters allow for a flexible setting of the output format: precision and scientific are used to determine the number format, where scientific = false means fixed point notation. A zero entry for width makes the function compute a width, but it may be changed to a positive value, if output is crude.

Additionally, a character for an empty value may be specified.

Finally, the whole matrix can be multiplied with a common denominator to produce more readable output, even integers.

Attention
This function may produce large amounts of output if applied to a large matrix!

◆ print_pattern() [2/2]

template<typename number >
void SparseMatrix< number >::print_pattern ( std::ostream &  out,
const double  threshold = 0. 
) const

Print the actual pattern of the matrix. For each entry with an absolute value larger than threshold, a '*' is printed, a ':' for every value smaller and a '.' for every entry not allocated.

◆ print_as_numpy_arrays()

template<typename number >
void SparseMatrix< number >::print_as_numpy_arrays ( std::ostream &  out,
const unsigned int  precision = 9 
) const

Print the matrix to the output stream out in a format that can be read by numpy::readtxt(). To load the matrix in python just do [data, row, column] = numpy.loadtxt('my_matrix.txt') sparse_matrix = scipy.sparse.csr_matrix((data, (row, column)))

◆ block_write() [3/4]

template<typename number >
void SparseMatrix< number >::block_write ( std::ostream &  out) const

Write the data of this object en bloc to a file. This is done in a binary mode, so the output is neither readable by humans nor (probably) by other computers using a different operating system of number format.

The purpose of this function is that you can swap out matrices and sparsity pattern if you are short of memory, want to communicate between different programs, or allow objects to be persistent across different runs of the program.

◆ block_read() [3/4]

template<typename number >
void SparseMatrix< number >::block_read ( std::istream &  in)

Read data that has previously been written by block_write() from a file. This is done using the inverse operations to the above function, so it is reasonably fast because the bitstream is not interpreted except for a few numbers up front.

The object is resized on this operation, and all previous contents are lost. Note, however, that no checks are performed whether new data and the underlying SparsityPattern object fit together. It is your responsibility to make sure that the sparsity pattern and the data to be read match.

A primitive form of error checking is performed which will recognize the bluntest attempts to interpret some data as a matrix stored bitwise to a file that wasn't actually created that way, but not more.

◆ print() [5/7]

template<typename number >
void SparseMatrixEZ< number >::print ( std::ostream &  out) const

Print the matrix to the given stream, using the format (line,col) value, i.e. one nonzero entry of the matrix per line.

◆ print_formatted() [4/4]

template<typename number >
void SparseMatrixEZ< number >::print_formatted ( std::ostream &  out,
const unsigned int  precision = 3,
const bool  scientific = true,
const unsigned int  width = 0,
const char *  zero_string = " ",
const double  denominator = 1. 
) const

Print the matrix in the usual format, i.e. as a matrix and not as a list of nonzero elements. For better readability, elements not in the matrix are displayed as empty space, while matrix elements which are explicitly set to zero are displayed as such.

The parameters allow for a flexible setting of the output format: precision and scientific are used to determine the number format, where scientific = false means fixed point notation. A zero entry for width makes the function compute a width, but it may be changed to a positive value, if output is crude.

Additionally, a character for an empty value may be specified.

Finally, the whole matrix can be multiplied with a common denominator to produce more readable output, even integers.

This function may produce large amounts of output if applied to a large matrix!

◆ block_write() [4/4]

template<typename number >
void SparseMatrixEZ< number >::block_write ( std::ostream &  out) const

Write the data of this object in binary mode to a file.

Note that this binary format is platform dependent.

◆ block_read() [4/4]

template<typename number >
void SparseMatrixEZ< number >::block_read ( std::istream &  in)

Read data that has previously been written by block_write.

The object is resized on this operation, and all previous contents are lost.

A primitive form of error checking is performed which will recognize the bluntest attempts to interpret some data as a vector stored bitwise to a file, but not more.

◆ write_ascii()

void SparsityPattern::write_ascii ( )

Abstract Trilinos object that helps view in ASCII other Trilinos objects. Currently this function is not implemented. TODO: Not implemented.

Definition at line 960 of file trilinos_sparsity_pattern.cc.

◆ print() [6/7]

void SparsityPattern::print ( std::ostream &  out,
const bool  write_extended_trilinos_info = false 
) const

Print (the locally owned part of) the sparsity pattern to the given stream, using the format (line,col). The optional flag outputs the sparsity pattern in Trilinos style, where even the according processor number is printed to the stream, as well as a summary before actually writing the entries.

Definition at line 971 of file trilinos_sparsity_pattern.cc.

◆ print_gnuplot() [1/2]

void SparsityPattern::print_gnuplot ( std::ostream &  out) const

Print the sparsity of the matrix in a format that gnuplot understands and which can be used to plot the sparsity pattern in a graphical way. The format consists of pairs i j of nonzero elements, each representing one entry of this matrix, one per line of the output file. Indices are counted from zero on, as usual. Since sparsity patterns are printed in the same way as matrices are displayed, we print the negative of the column index, which means that the (0,0) element is in the top left rather than in the bottom left corner.

Print the sparsity pattern in gnuplot by setting the data style to dots or points and use the plot command.

Definition at line 998 of file trilinos_sparsity_pattern.cc.

◆ print() [7/7]

void SparsityPatternBase::print ( std::ostream &  out) const

Print the sparsity of the matrix. The output consists of one line per row of the format [i,j1,j2,j3,...]. i is the row number and jn are the allocated columns in this row.

Definition at line 875 of file sparsity_pattern.cc.

◆ print_gnuplot() [2/2]

void SparsityPatternBase::print_gnuplot ( std::ostream &  out) const

Print the sparsity of the matrix in a format that gnuplot understands and which can be used to plot the sparsity pattern in a graphical way. The format consists of pairs i j of nonzero elements, each representing one entry of this matrix, one per line of the output file. Indices are counted from zero on, as usual. Since sparsity patterns are printed in the same way as matrices are displayed, we print the negative of the column index, which means that the (0,0) element is in the top left rather than in the bottom left corner.

Print the sparsity pattern in gnuplot by setting the data style to dots or points and use the plot command.

Definition at line 896 of file sparsity_pattern.cc.

◆ print_svg()

void SparsityPatternBase::print_svg ( std::ostream &  out) const

Prints the sparsity of the matrix in a .svg file which can be opened in a web browser. The .svg file contains squares which correspond to the entries in the matrix. An entry in the matrix which contains a non-zero value corresponds with a red square while a zero-valued entry in the matrix correspond with a white square.

Definition at line 914 of file sparsity_pattern.cc.

◆ save() [7/7]

template<class Archive >
void SparsityPatternBase::save ( Archive &  ar,
const unsigned int  version 
) const

Write the data of this object to a stream for the purpose of serialization

◆ load() [7/7]

template<class Archive >
void SparsityPatternBase::load ( Archive &  ar,
const unsigned int  version 
)

Read the data of this object from a stream for the purpose of serialization

◆ serialize() [7/7]

template<class Archive >
void SparsityPatternBase::serialize ( Archive &  archive,
const unsigned int  version 
)

Write and read the data of this object from a stream for the purpose of serialization.

Variable Documentation

◆ space_dim [1/2]

template<int dim, int spacedim>
const unsigned int DataOutBase::Patch< dim, spacedim >::space_dim = spacedim
static

Make the spacedim template parameter available.

Definition at line 253 of file data_out_base.h.

◆ vertices [1/2]

template<int dim, int spacedim = dim>
Point<spacedim> DataOutBase::Patch< dim, spacedim >::vertices[GeometryInfo< dim >::vertices_per_cell]

Corner points of a patch. Interior points are computed by a multilinear transformation of the unit cell to the cell specified by these corner points, if points_are_available==false.

On the other hand, if points_are_available==true, then the coordinates of the points at which output is to be generated is attached in additional rows to the data table.

The order of points is the same as for cells in the triangulation.

Definition at line 267 of file data_out_base.h.

◆ neighbors [1/2]

template<int dim, int spacedim = dim>
std::array<unsigned int, GeometryInfo<dim>::faces_per_cell> DataOutBase::Patch< dim, spacedim >::neighbors

Patch indices of neighbors of the current patch. This is made available for the OpenDX format that requires neighbor information for advanced output.

Definition at line 274 of file data_out_base.h.

◆ patch_index [1/2]

template<int dim, int spacedim = dim>
unsigned int DataOutBase::Patch< dim, spacedim >::patch_index

Number of this patch. Since we are not sure patches are always handled in the same order, we better store this.

Definition at line 280 of file data_out_base.h.

◆ n_subdivisions [1/2]

template<int dim, int spacedim = dim>
unsigned int DataOutBase::Patch< dim, spacedim >::n_subdivisions

Number of subdivisions with which this patch is to be written. 1 means no subdivision, 2 means bisection, 3 trisection, etc.

Definition at line 287 of file data_out_base.h.

◆ data [1/4]

template<int dim, int spacedim = dim>
Table<2, float> DataOutBase::Patch< dim, spacedim >::data

Data vectors. The format is as follows: data(i,.) denotes the data belonging to the ith data vector. data.n_cols() therefore equals the number of output points; this number is (subdivisions+1)^{dim}. data.n_rows() equals the number of data vectors. For the current purpose, a data vector equals one scalar, even if multiple scalars may later be interpreted as vectors.

Within each column, data(.,j) are the data values at the output point j, where j denotes the usual lexicographic ordering in deal.II. This is also the order of points as provided by the QIterated class when used with the QTrapez class as subquadrature.

Since the number of data vectors is usually the same for all patches to be printed, data.size() should yield the same value for all patches provided. The exception are patches for which points_are_available are set, where the actual coordinates of the point are appended to the 'data' field, see the documentation of the points_are_available flag.

Definition at line 310 of file data_out_base.h.

◆ points_are_available [1/2]

template<int dim, int spacedim = dim>
bool DataOutBase::Patch< dim, spacedim >::points_are_available

A flag indicating whether the coordinates of the interior patch points (assuming that the patch is supposed to be subdivided further) are appended to the data table (true) or not (false). The latter is the default and in this case the locations of the points interior to this patch are computed by (bi-, tri-)linear interpolation from the vertices of the patch.

This option exists since patch points may be evaluated using a Mapping (rather than by a linear interpolation) and therefore have to be stored in the Patch structure.

Definition at line 324 of file data_out_base.h.

◆ no_neighbor [1/2]

template<int dim, int spacedim>
const unsigned int DataOutBase::Patch< dim, spacedim >::no_neighbor = numbers::invalid_unsigned_int
static

Value to be used if this patch has no neighbor on one side.

Definition at line 357 of file data_out_base.h.

◆ space_dim [2/2]

template<int spacedim>
const unsigned int DataOutBase::Patch< 0, spacedim >::space_dim = spacedim
static

Make the spacedim template parameter available.

Definition at line 402 of file data_out_base.h.

◆ vertices [2/2]

template<int spacedim>
Point<spacedim> DataOutBase::Patch< 0, spacedim >::vertices[1]

Corner points of a patch. For the current class of zero-dimensional patches, there is of course only a single vertex.

If points_are_available==true, then the coordinates of the point at which output is to be generated is attached as an additional row to the data table.

Definition at line 412 of file data_out_base.h.

◆ neighbors [2/2]

template<int spacedim>
unsigned int DataOutBase::Patch< 0, spacedim >::neighbors
static
Initial value:

An unused, static variable that exists only to allow access from general code in a generic fashion.

Definition at line 418 of file data_out_base.h.

◆ patch_index [2/2]

template<int spacedim>
unsigned int DataOutBase::Patch< 0, spacedim >::patch_index

Number of this patch. Since we are not sure patches are always handled in the same order, we better store this.

Definition at line 424 of file data_out_base.h.

◆ n_subdivisions [2/2]

template<int spacedim>
unsigned int DataOutBase::Patch< 0, spacedim >::n_subdivisions = 1
static

Number of subdivisions with which this patch is to be written. 1 means no subdivision, 2 means bisection, 3 trisection, etc.

Since subdivision makes no sense for zero-dimensional patches, this variable is not used but exists only to allow access from general code in a generic fashion.

Definition at line 435 of file data_out_base.h.

◆ data [2/4]

template<int spacedim>
Table<2, float> DataOutBase::Patch< 0, spacedim >::data

Data vectors. The format is as follows: data(i,.) denotes the data belonging to the ith data vector. data.n_cols() therefore equals the number of output points; this number is of course one for the current class, given that we produce output on points. data.n_rows() equals the number of data vectors. For the current purpose, a data vector equals one scalar, even if multiple scalars may later be interpreted as vectors.

Within each column, data(.,j) are the data values at the output point j; for the current class, j can only be zero.

Since the number of data vectors is usually the same for all patches to be printed, data.size() should yield the same value for all patches provided. The exception are patches for which points_are_available are set, where the actual coordinates of the point are appended to the 'data' field, see the documentation of the points_are_available flag.

Definition at line 457 of file data_out_base.h.

◆ points_are_available [2/2]

template<int spacedim>
bool DataOutBase::Patch< 0, spacedim >::points_are_available

A flag indicating whether the coordinates of the interior patch points (assuming that the patch is supposed to be subdivided further) are appended to the data table (true) or not (false). The latter is the default and in this case the locations of the points interior to this patch are computed by (bi-, tri-)linear interpolation from the vertices of the patch.

This option exists since patch points may be evaluated using a Mapping (rather than by a linear interpolation) and therefore have to be stored in the Patch structure.

Definition at line 471 of file data_out_base.h.

◆ no_neighbor [2/2]

template<int spacedim>
const unsigned int DataOutBase::Patch< 0, spacedim >::no_neighbor = numbers::invalid_unsigned_int
static

Value to be used if this patch has no neighbor on one side.

Definition at line 503 of file data_out_base.h.

◆ write_neighbors

bool DataOutBase::DXFlags::write_neighbors

Write neighbor information. This information is necessary for instance, if OpenDX is supposed to compute integral curves (streamlines). If it is not present, streamlines end at cell boundaries.

Definition at line 601 of file data_out_base.h.

◆ int_binary

bool DataOutBase::DXFlags::int_binary

Write integer values of the Triangulation in binary format.

Definition at line 605 of file data_out_base.h.

◆ coordinates_binary

bool DataOutBase::DXFlags::coordinates_binary

Write coordinate vectors in binary format.

Definition at line 609 of file data_out_base.h.

◆ data_binary

bool DataOutBase::DXFlags::data_binary

Write data vectors in binary format.

Definition at line 614 of file data_out_base.h.

◆ data_double

bool DataOutBase::DXFlags::data_double

Write binary coordinate vectors as double (64 bit) numbers instead of float (32 bit).

Definition at line 620 of file data_out_base.h.

◆ write_preamble

bool DataOutBase::UcdFlags::write_preamble

Write a comment at the beginning of the file stating the date of creation and some other data. While this is supported by the UCD format and AVS, some other programs get confused by this, so the default is to not write a preamble. However, a preamble can be written using this flag.

Default: false.

Definition at line 663 of file data_out_base.h.

◆ space_dimension_labels

std::vector<std::string> DataOutBase::GnuplotFlags::space_dimension_labels

Labels to use in each spatial dimension. These default to "x", "y", and "z". Labels are printed to the Gnuplot file surrounded by angle brackets: For example, if the space dimension is 2 and the labels are "x" and "t", then the relevant line will start with

* # <x> <t>
* 

Any extra labels will be ignored.

If you specify these labels yourself then there should be at least spacedim labels, where spacedim is the spatial dimension of the output data.

Definition at line 720 of file data_out_base.h.

◆ smooth

bool DataOutBase::PovrayFlags::smooth

Normal vector interpolation, if set to true

default = false

Definition at line 751 of file data_out_base.h.

◆ bicubic_patch

bool DataOutBase::PovrayFlags::bicubic_patch

Use bicubic patches (b-splines) instead of triangles.

default = false

Definition at line 758 of file data_out_base.h.

◆ external_data

bool DataOutBase::PovrayFlags::external_data

include external "data.inc" with camera, light and texture definition for the scene.

default = false

Definition at line 766 of file data_out_base.h.

◆ height_vector [1/2]

unsigned int DataOutBase::EpsFlags::height_vector

This denotes the number of the data vector which shall be used for generating the height information. By default, the first data vector is taken, i.e. height_vector==0, if there is any data vector. If there is no data vector, no height information is generated.

Definition at line 807 of file data_out_base.h.

◆ color_vector

unsigned int DataOutBase::EpsFlags::color_vector

Number of the vector which is to be taken to colorize cells. The same applies as for height_vector.

Definition at line 813 of file data_out_base.h.

◆ size_type

SizeType DataOutBase::EpsFlags::size_type

See above. Default is width.

Definition at line 831 of file data_out_base.h.

◆ size

unsigned int DataOutBase::EpsFlags::size

Width or height of the output as given in postscript units This usually is given by the strange unit 1/72 inch. Whether this is height or width is specified by the flag size_type.

Default is 300, which represents a size of roughly 10 cm.

Definition at line 840 of file data_out_base.h.

◆ line_width

double DataOutBase::EpsFlags::line_width

Width of a line in postscript units. Default is 0.5.

Definition at line 845 of file data_out_base.h.

◆ azimut_angle

double DataOutBase::EpsFlags::azimut_angle

Angle of the line origin-viewer against the z-axis in degrees.

Default is the Gnuplot-default of 60.

Definition at line 852 of file data_out_base.h.

◆ turn_angle

double DataOutBase::EpsFlags::turn_angle

Angle by which the viewers position projected onto the x-y-plane is rotated around the z-axis, in positive sense when viewed from above. The unit are degrees, and zero equals a position above or below the negative y-axis.

Default is the Gnuplot-default of 30. An example of a Gnuplot-default of 0 is the following:

*
*          3________7
*          /       /|
*         /       / |
*       2/______6/  |
*       |   |   |   |
* O-->  |   0___|___4
*       |  /    |  /
*       | /     | /
*      1|/______5/
*
* 

Definition at line 877 of file data_out_base.h.

◆ z_scaling

double DataOutBase::EpsFlags::z_scaling

Factor by which the z-axis is to be stretched as compared to the x- and y-axes. This is to compensate for the different sizes that coordinate and solution values may have and to prevent that the plot looks to much out-of-place (no elevation at all if solution values are much smaller than coordinate values, or the common "extremely mountainous area" in the opposite case.

Default is 1.0.

Definition at line 889 of file data_out_base.h.

◆ draw_mesh

bool DataOutBase::EpsFlags::draw_mesh

Flag the determines whether the lines bounding the cells (or the parts of each patch) are to be plotted.

Default: true.

Definition at line 897 of file data_out_base.h.

◆ draw_cells

bool DataOutBase::EpsFlags::draw_cells

Flag whether to fill the regions between the lines bounding the cells or not. If not, no hidden line removal is performed, which in this crude implementation is done through writing the cells in a back-to- front order, thereby hiding the cells in the background by cells in the foreground.

If this flag is false and draw_mesh is false as well, nothing will be printed.

If this flag is true, then the cells will be drawn either colored by one of the data sets (if shade_cells is true), or pure white (if shade_cells is false or if there are no data sets).

Default is true.

Definition at line 915 of file data_out_base.h.

◆ shade_cells

bool DataOutBase::EpsFlags::shade_cells

Flag to determine whether the cells shall be colorized by the data set denoted by color_vector, or simply be painted in white. This flag only makes sense if draw_cells==true. Colorization is done through color_function.

Default is true.

Definition at line 925 of file data_out_base.h.

◆ red

float DataOutBase::EpsFlags::RgbValues::red

Definition at line 932 of file data_out_base.h.

◆ green

float DataOutBase::EpsFlags::RgbValues::green

Definition at line 933 of file data_out_base.h.

◆ blue

float DataOutBase::EpsFlags::RgbValues::blue

Definition at line 934 of file data_out_base.h.

◆ color_function

ColorFunction DataOutBase::EpsFlags::color_function

This is a pointer to the function which is used to colorize the cells. By default, it points to the static function default_color_function() which is a member of this class.

Definition at line 960 of file data_out_base.h.

◆ tecplot_binary_file_name

const char* DataOutBase::TecplotFlags::tecplot_binary_file_name

This variable is needed to hold the output file name when using the Tecplot API to write binary files. If the user doesn't set the file name with this variable only ASCII Tecplot output will be produced.

Definition at line 1056 of file data_out_base.h.

◆ zone_name

const char* DataOutBase::TecplotFlags::zone_name

Tecplot allows to assign names to zones. This variable stores this name.

Definition at line 1062 of file data_out_base.h.

◆ solution_time

double DataOutBase::TecplotFlags::solution_time

Solution time for each zone in a strand. This value must be non- negative, otherwise it will not be written to file. Do not assign any value for this in case of a static zone.

Definition at line 1069 of file data_out_base.h.

◆ time

double DataOutBase::VtkFlags::time

The time of the time step if this file is part of a time dependent simulation.

The value of this variable is written into the output file according to the instructions provided in http://www.visitusers.org/index.php?title=Time_and_Cycle_in_VTK_files unless it is at its default value of

std::numeric_limits<unsigned int>::min() 

.

Definition at line 1107 of file data_out_base.h.

◆ cycle

unsigned int DataOutBase::VtkFlags::cycle

The number of the time step if this file is part of a time dependent simulation, or the cycle within a nonlinear or other iteration.

The value of this variable is written into the output file according to the instructions provided in http://www.visitusers.org/index.php?title=Time_and_Cycle_in_VTK_files unless it is at its default value of

std::numeric_limits<unsigned int>::min() 

.

Definition at line 1119 of file data_out_base.h.

◆ print_date_and_time

bool DataOutBase::VtkFlags::print_date_and_time

Flag to determine whether the current date and time shall be printed as a comment in the file's second line.

Default is true.

Definition at line 1127 of file data_out_base.h.

◆ compression_level

ZlibCompressionLevel DataOutBase::VtkFlags::compression_level

Flag determining the compression level at which zlib, if available, is run. The default is best_compression.

Definition at line 1159 of file data_out_base.h.

◆ write_higher_order_cells

bool DataOutBase::VtkFlags::write_higher_order_cells

Flag determining whether to write patches as linear cells or as a high-order Lagrange cell.

Default is false.

Note
The ability to write data that corresponds to higher order polynomials rather than simply linear or bilinear is a feature that was only introduced in VTK sometime in 2017 or 2018. You will need at least Paraview version 5.5 (released in the spring of 2018) or a similarly recent version of VisIt for this feature to work (for example, VisIt 2.13.2, released in May 2018, does not yet support this feature). Older versions of these programs are likely going to result in errors when trying to read files generated with this flag set to true. Experience with these programs shows that these error messages are likely going to be rather less descriptive and more obscure.

Definition at line 1178 of file data_out_base.h.

◆ height

unsigned int DataOutBase::SvgFlags::height

Height of the image in SVG units. Default value is 4000.

Definition at line 1202 of file data_out_base.h.

◆ width

unsigned int DataOutBase::SvgFlags::width

Width of the image in SVG units. If left zero, the width is computed from the height.

Definition at line 1208 of file data_out_base.h.

◆ height_vector [2/2]

unsigned int DataOutBase::SvgFlags::height_vector

This denotes the number of the data vector which shall be used for generating the height information. By default, the first data vector is taken, i.e. height_vector==0, if there is any data vector. If there is no data vector, no height information is generated.

Definition at line 1216 of file data_out_base.h.

◆ azimuth_angle

int DataOutBase::SvgFlags::azimuth_angle

Angles for the perspective view

Definition at line 1221 of file data_out_base.h.

◆ polar_angle

int DataOutBase::SvgFlags::polar_angle

Definition at line 1221 of file data_out_base.h.

◆ line_thickness

unsigned int DataOutBase::SvgFlags::line_thickness

Definition at line 1223 of file data_out_base.h.

◆ margin

bool DataOutBase::SvgFlags::margin

Draw a margin of 5% around the plotted area

Definition at line 1228 of file data_out_base.h.

◆ draw_colorbar

bool DataOutBase::SvgFlags::draw_colorbar

Draw a colorbar encoding the cell coloring

Definition at line 1233 of file data_out_base.h.

◆ format_version

const unsigned int DataOutBase::Deal_II_IntermediateFlags::format_version = 3
static

An indicator of the current file format version used to write intermediate format. We do not attempt to be backward compatible, so this number is used only to verify that the format we are writing is what the current readers and writers understand.

Definition at line 1262 of file data_out_base.h.

◆ filter_duplicate_vertices

bool DataOutBase::DataOutFilterFlags::filter_duplicate_vertices

Filter duplicate vertices and associated values. This will drastically reduce the output data size but will result in an output file that does not faithfully represent the actual data if the data corresponds to discontinuous fields. In particular, along subdomain boundaries the data will still be discontinuous, while it will look like a continuous field inside of the subdomain.

Definition at line 1280 of file data_out_base.h.

◆ xdmf_hdf5_output

bool DataOutBase::DataOutFilterFlags::xdmf_hdf5_output

Whether the XDMF output refers to HDF5 files. This affects how output is structured.

Definition at line 1286 of file data_out_base.h.

◆ flags [1/2]

DataOutBase::DataOutFilterFlags DataOutBase::DataOutFilter::flags
private

Flags used to specify filtering behavior.

Definition at line 1487 of file data_out_base.h.

◆ node_dim

unsigned int DataOutBase::DataOutFilter::node_dim
private

The number of space dimensions in which the vertices represented by the current object live. This corresponds to the usual dim argument, but since this class is not templated on the dimension, we need to store it here.

Definition at line 1495 of file data_out_base.h.

◆ vertices_per_cell

unsigned int DataOutBase::DataOutFilter::vertices_per_cell
private

The number of vertices per cell. Equal to GeometryInfo<node_dim>::vertices_per_cell. We need to store it as a run-time variable here because the dimension node_dim is also a run-time variable.

Definition at line 1503 of file data_out_base.h.

◆ existing_points

Map3DPoint DataOutBase::DataOutFilter::existing_points
private

Map of points to an internal index.

Definition at line 1508 of file data_out_base.h.

◆ filtered_points

std::map<unsigned int, unsigned int> DataOutBase::DataOutFilter::filtered_points
private

Map of actual point index to internal point index.

Definition at line 1513 of file data_out_base.h.

◆ filtered_cells

std::map<unsigned int, unsigned int> DataOutBase::DataOutFilter::filtered_cells
private

Map of cells to the filtered points.

Definition at line 1518 of file data_out_base.h.

◆ data_set_names

std::vector<std::string> DataOutBase::DataOutFilter::data_set_names
private

Data set names.

Definition at line 1523 of file data_out_base.h.

◆ data_set_dims

std::vector<unsigned int> DataOutBase::DataOutFilter::data_set_dims
private

Data set dimensions.

Definition at line 1528 of file data_out_base.h.

◆ data_sets

std::vector<std::vector<double> > DataOutBase::DataOutFilter::data_sets
private

Data set data.

Definition at line 1533 of file data_out_base.h.

◆ default_subdivisions

template<int dim, int spacedim = dim>
unsigned int DataOutInterface< dim, spacedim >::default_subdivisions
protected

The default number of subdivisions for patches. This is filled by parse_parameters() and should be obeyed by build_patches() in derived classes.

Definition at line 3068 of file data_out_base.h.

◆ default_fmt

template<int dim, int spacedim = dim>
DataOutBase::OutputFormat DataOutInterface< dim, spacedim >::default_fmt
private

Standard output format. Use this format, if output format default_format is requested. It can be changed by the set_format function or in a parameter file.

Definition at line 3076 of file data_out_base.h.

◆ dx_flags

template<int dim, int spacedim = dim>
DataOutBase::DXFlags DataOutInterface< dim, spacedim >::dx_flags
private

Flags to be used upon output of OpenDX data. Can be changed by using the set_flags function.

Definition at line 3082 of file data_out_base.h.

◆ ucd_flags

template<int dim, int spacedim = dim>
DataOutBase::UcdFlags DataOutInterface< dim, spacedim >::ucd_flags
private

Flags to be used upon output of UCD data. Can be changed by using the set_flags function.

Definition at line 3088 of file data_out_base.h.

◆ gnuplot_flags

template<int dim, int spacedim = dim>
DataOutBase::GnuplotFlags DataOutInterface< dim, spacedim >::gnuplot_flags
private

Flags to be used upon output of GNUPLOT data. Can be changed by using the set_flags function.

Definition at line 3094 of file data_out_base.h.

◆ povray_flags

template<int dim, int spacedim = dim>
DataOutBase::PovrayFlags DataOutInterface< dim, spacedim >::povray_flags
private

Flags to be used upon output of POVRAY data. Can be changed by using the set_flags function.

Definition at line 3100 of file data_out_base.h.

◆ eps_flags

template<int dim, int spacedim = dim>
DataOutBase::EpsFlags DataOutInterface< dim, spacedim >::eps_flags
private

Flags to be used upon output of EPS data in one space dimension. Can be changed by using the set_flags function.

Definition at line 3106 of file data_out_base.h.

◆ gmv_flags

template<int dim, int spacedim = dim>
DataOutBase::GmvFlags DataOutInterface< dim, spacedim >::gmv_flags
private

Flags to be used upon output of gmv data in one space dimension. Can be changed by using the set_flags function.

Definition at line 3112 of file data_out_base.h.

◆ tecplot_flags

template<int dim, int spacedim = dim>
DataOutBase::TecplotFlags DataOutInterface< dim, spacedim >::tecplot_flags
private

Flags to be used upon output of Tecplot data in one space dimension. Can be changed by using the set_flags function.

Definition at line 3118 of file data_out_base.h.

◆ vtk_flags

template<int dim, int spacedim = dim>
DataOutBase::VtkFlags DataOutInterface< dim, spacedim >::vtk_flags
private

Flags to be used upon output of vtk data in one space dimension. Can be changed by using the set_flags function.

Definition at line 3124 of file data_out_base.h.

◆ svg_flags

template<int dim, int spacedim = dim>
DataOutBase::SvgFlags DataOutInterface< dim, spacedim >::svg_flags
private

Flags to be used upon output of svg data in one space dimension. Can be changed by using the set_flags function.

Definition at line 3130 of file data_out_base.h.

◆ deal_II_intermediate_flags

template<int dim, int spacedim = dim>
DataOutBase::Deal_II_IntermediateFlags DataOutInterface< dim, spacedim >::deal_II_intermediate_flags
private

Flags to be used upon output of deal.II intermediate data in one space dimension. Can be changed by using the set_flags function.

Definition at line 3136 of file data_out_base.h.

◆ patches

template<int dim, int spacedim = dim>
std::vector<::DataOutBase::Patch<dim, spacedim> > DataOutReader< dim, spacedim >::patches
private

Arrays holding the set of patches as well as the names of output variables, all of which we read from an input stream.

Definition at line 3299 of file data_out_base.h.

◆ dataset_names

template<int dim, int spacedim = dim>
std::vector<std::string> DataOutReader< dim, spacedim >::dataset_names
private

Definition at line 3300 of file data_out_base.h.

◆ nonscalar_data_ranges

template<int dim, int spacedim = dim>
std::vector< std::tuple<unsigned int, unsigned int, std::string, DataComponentInterpretation::DataComponentInterpretation> > DataOutReader< dim, spacedim >::nonscalar_data_ranges
private

Information about whether certain components of the output field are to be considered vectors.

Definition at line 3311 of file data_out_base.h.

◆ valid

bool XDMFEntry::valid
private

Whether this entry is valid and contains data to be written.

Definition at line 3392 of file data_out_base.h.

◆ h5_sol_filename

std::string XDMFEntry::h5_sol_filename
private

The name of the HDF5 heavy data solution file this entry references.

Definition at line 3397 of file data_out_base.h.

◆ h5_mesh_filename

std::string XDMFEntry::h5_mesh_filename
private

The name of the HDF5 mesh file this entry references.

Definition at line 3402 of file data_out_base.h.

◆ entry_time

double XDMFEntry::entry_time
private

The simulation time associated with this entry.

Definition at line 3407 of file data_out_base.h.

◆ num_nodes

unsigned int XDMFEntry::num_nodes
private

The number of data nodes.

Definition at line 3412 of file data_out_base.h.

◆ num_cells

unsigned int XDMFEntry::num_cells
private

The number of data cells.

Definition at line 3417 of file data_out_base.h.

◆ dimension

unsigned int XDMFEntry::dimension
private

The dimension associated with the data.

Definition at line 3422 of file data_out_base.h.

◆ space_dimension

unsigned int XDMFEntry::space_dimension
private

The dimension of the space the data lives in. Note that dimension <= space_dimension.

Definition at line 3428 of file data_out_base.h.

◆ attribute_dims

std::map<std::string, unsigned int> XDMFEntry::attribute_dims
private

The attributes associated with this entry and their dimension.

Definition at line 3433 of file data_out_base.h.

◆ vars [1/2]

template<int dim>
Threads::ThreadLocalStorage<std::vector<double> > FunctionParser< dim >::vars
mutableprivate

Place for the variables for each thread

Definition at line 398 of file function_parser.h.

◆ fp

template<int dim>
Threads::ThreadLocalStorage<std::vector<std::unique_ptr<mu::Parser> > > FunctionParser< dim >::fp
mutableprivate

The muParser objects for each thread (and one for each component). We are storing a unique_ptr so that we don't need to include the definition of mu::Parser in this header.

Definition at line 406 of file function_parser.h.

◆ constants [1/2]

template<int dim>
std::map<std::string, double> FunctionParser< dim >::constants
private

An array to keep track of all the constants, required to initialize fp in each thread.

Definition at line 412 of file function_parser.h.

◆ var_names [1/2]

template<int dim>
std::vector<std::string> FunctionParser< dim >::var_names
private

An array for the variable names, required to initialize fp in each thread.

Definition at line 418 of file function_parser.h.

◆ expressions [1/2]

template<int dim>
std::vector<std::string> FunctionParser< dim >::expressions
private

An array of function expressions (one per component), required to initialize fp in each thread.

Definition at line 434 of file function_parser.h.

◆ initialized [1/2]

template<int dim>
bool FunctionParser< dim >::initialized
private

State of usability. This variable is checked every time the function is called for evaluation. It's set to true in the initialize() methods.

Definition at line 440 of file function_parser.h.

◆ n_vars [1/2]

template<int dim>
unsigned int FunctionParser< dim >::n_vars
private

Number of variables. If this is also a function of time, then the number of variables is dim+1, otherwise it is dim. In the case that this is a time dependent function, the time is supposed to be the last variable. If n_vars is not identical to the number of the variables parsed by the initialize() method, then an exception is thrown.

Definition at line 449 of file function_parser.h.

◆ path_separator

const char ParameterHandler::path_separator = '.'
staticprivate

The separator used when accessing elements of a path into the parameter tree.

Definition at line 1738 of file parameter_handler.h.

◆ subsection_path [1/2]

std::vector<std::string> ParameterHandler::subsection_path
private

Path of presently selected subsections; empty list means top level

Definition at line 1743 of file parameter_handler.h.

◆ entries [1/2]

std::unique_ptr<boost::property_tree::ptree> ParameterHandler::entries
private

The complete tree of sections and entries. See the general documentation of this class for a description how data is stored in this variable.

The variable is a pointer so that we can use an incomplete type, rather than having to include all of the property_tree stuff from boost. This works around a problem with gcc 4.5.

Definition at line 1753 of file parameter_handler.h.

◆ entries_set_status

std::map<std::string, std::pair<bool, bool> > ParameterHandler::entries_set_status
private

A map that stores a pair of boolean variables for each entry added to the parameter handler. The first bool describes whether the parameter has to be set according to the last argument of the functions declare_entry() or add_parameter(), and the second bool contains the information whether the parameter has been set by any of the functions parsing input parameters or by a set function of this class.

Definition at line 1763 of file parameter_handler.h.

◆ patterns [1/2]

std::vector<std::unique_ptr<const Patterns::PatternBase> > ParameterHandler::patterns
private

A list of patterns that are used to describe the parameters of this object. Every nodes in the property tree corresponding to a parameter stores an index into this array.

Definition at line 1770 of file parameter_handler.h.

◆ actions

std::vector<std::function<void(const std::string &)> > ParameterHandler::actions
private

A list of actions that are associated with parameters. These are added by the add_action() function. Nodes in the property tree corresponding to individual parameters store indices into this array in order to reference specific actions.

Definition at line 1778 of file parameter_handler.h.

◆ subsection_path [2/2]

std::vector<std::string> MultipleParameterLoop::Entry::subsection_path

Path to variant entry.

Definition at line 2222 of file parameter_handler.h.

◆ entry_name

std::string MultipleParameterLoop::Entry::entry_name

Name of entry.

Definition at line 2227 of file parameter_handler.h.

◆ entry_value

std::string MultipleParameterLoop::Entry::entry_value

Original variant value.

Definition at line 2232 of file parameter_handler.h.

◆ different_values

std::vector<std::string> MultipleParameterLoop::Entry::different_values

List of entry values constructed out of what was given in the input file.

Definition at line 2238 of file parameter_handler.h.

◆ type

MultipleEntryType MultipleParameterLoop::Entry::type

Store whether this entry is a variant entry or an array.

Definition at line 2243 of file parameter_handler.h.

◆ multiple_choices

std::vector<Entry> MultipleParameterLoop::multiple_choices
private

List of variant entry values.

Definition at line 2256 of file parameter_handler.h.

◆ n_branches

unsigned int MultipleParameterLoop::n_branches
private

Number of branches constructed from the different combinations of the variants. This obviously equals the number of runs to be performed.

Definition at line 2262 of file parameter_handler.h.

◆ pattern

std::unique_ptr<PatternBase> Patterns::List::pattern
private

Copy of the pattern that each element of the list has to satisfy.

Definition at line 547 of file patterns.h.

◆ min_elements [1/2]

const unsigned int Patterns::List::min_elements
private

Minimum number of elements the list must have.

Definition at line 552 of file patterns.h.

◆ max_elements [1/2]

const unsigned int Patterns::List::max_elements
private

Maximum number of elements the list must have.

Definition at line 557 of file patterns.h.

◆ separator [1/3]

const std::string Patterns::List::separator
private

Separator between elements of the list.

Definition at line 562 of file patterns.h.

◆ description_init [1/8]

const char * Patterns::List::description_init = "[List"
staticprivate

Initial part of description

Definition at line 567 of file patterns.h.

◆ max_int_value

const unsigned int Patterns::Map::max_int_value
static
Initial value:

Maximal integer value. If the numeric_limits class is available use this information to obtain the extremal values, otherwise set it so that this class understands that all values are allowed.

Definition at line 593 of file patterns.h.

◆ key_pattern

std::unique_ptr<PatternBase> Patterns::Map::key_pattern
private

Copy of the patterns that each key and each value of the map has to satisfy.

Definition at line 695 of file patterns.h.

◆ value_pattern

std::unique_ptr<PatternBase> Patterns::Map::value_pattern
private

Definition at line 696 of file patterns.h.

◆ min_elements [2/2]

const unsigned int Patterns::Map::min_elements
private

Minimum number of elements the list must have.

Definition at line 701 of file patterns.h.

◆ max_elements [2/2]

const unsigned int Patterns::Map::max_elements
private

Maximum number of elements the list must have.

Definition at line 706 of file patterns.h.

◆ separator [2/3]

const std::string Patterns::Map::separator
private

Separator between elements of the list.

Definition at line 711 of file patterns.h.

◆ key_value_separator

const std::string Patterns::Map::key_value_separator
private

Separator between keys and values.

Definition at line 717 of file patterns.h.

◆ description_init [2/8]

const char * Patterns::Map::description_init = "[Map"
staticprivate

Initial part of description

Definition at line 722 of file patterns.h.

◆ patterns [2/2]

std::vector<std::unique_ptr<PatternBase> > Patterns::Tuple::patterns
private

Copy of the patterns stored in the Tuple.

Definition at line 883 of file patterns.h.

◆ separator [3/3]

const std::string Patterns::Tuple::separator
private

Separator between elements of the list.

Definition at line 888 of file patterns.h.

◆ description_init [3/8]

const char * Patterns::Tuple::description_init = "[Tuple"
staticprivate

Initial part of description.

Definition at line 893 of file patterns.h.

◆ sequence

std::string Patterns::MultipleSelection::sequence
private

List of valid strings as passed to the constructor. We don't make this string constant, as we process it somewhat in the constructor.

Definition at line 972 of file patterns.h.

◆ description_init [4/8]

const char * Patterns::MultipleSelection::description_init = "[MultipleSelection"
staticprivate

Initial part of description

Definition at line 977 of file patterns.h.

◆ description_init [5/8]

const char * Patterns::Bool::description_init = "[Bool"
staticprivate

Initial part of description

Definition at line 1019 of file patterns.h.

◆ description_init [6/8]

const char * Patterns::Anything::description_init = "[Anything"
staticprivate

Initial part of description

Definition at line 1068 of file patterns.h.

◆ file_type

FileType Patterns::FileName::file_type

file type flag

Definition at line 1136 of file patterns.h.

◆ description_init [7/8]

const char * Patterns::FileName::description_init = "[FileName"
staticprivate

Initial part of description

Definition at line 1150 of file patterns.h.

◆ description_init [8/8]

const char * Patterns::DirectoryName::description_init = "[DirectoryName"
staticprivate

Initial part of description

Definition at line 1208 of file patterns.h.

◆ list_rank [1/9]

template<class T , class Enable = void>
constexpr int Patterns::Tools::internal::RankInfo< T, Enable >::list_rank = 0
staticconstexpr

Definition at line 1490 of file patterns.h.

◆ map_rank [1/9]

template<class T , class Enable = void>
constexpr int Patterns::Tools::internal::RankInfo< T, Enable >::map_rank = 0
staticconstexpr

Definition at line 1491 of file patterns.h.

◆ default_list_separator

constexpr std::array<const char *, 4> Patterns::Tools::internal::default_list_separator
constexpr
Initial value:
{
{",", ";", "|", "%"}}

Definition at line 1593 of file patterns.h.

◆ default_map_separator

constexpr std::array<const char *, 4> Patterns::Tools::internal::default_map_separator
constexpr
Initial value:
{
{":", "=", "@", "#"}}

Definition at line 1595 of file patterns.h.

◆ value [1/3]

template<typename T >
constexpr const bool Patterns::Tools::is_list_compatible< T >::value
staticconstexpr
Initial value:
=
internal::is_list_compatible<typename std::decay<T>::type>::value

Definition at line 1655 of file patterns.h.

◆ value [2/3]

template<typename T >
constexpr const bool Patterns::Tools::is_map_compatible< T >::value
staticconstexpr
Initial value:
=
internal::is_map_compatible<typename std::decay<T>::type>::value

Definition at line 1662 of file patterns.h.

◆ list_rank [2/9]

template<class T >
constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_list_compatible< T >::value >::type >::list_rank
staticconstexpr
Initial value:

Definition at line 1706 of file patterns.h.

◆ map_rank [2/9]

template<class T >
constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_list_compatible< T >::value >::type >::map_rank
staticconstexpr
Initial value:

Definition at line 1708 of file patterns.h.

◆ list_rank [3/9]

template<class T >
constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_map_compatible< T >::value >::type >::list_rank
staticconstexpr
Initial value:
=
max_list_rank<typename T::key_type, typename T::mapped_type>() + 1

Definition at line 1718 of file patterns.h.

◆ map_rank [3/9]

template<class T >
constexpr int Patterns::Tools::internal::RankInfo< T, typename std::enable_if< is_map_compatible< T >::value >::type >::map_rank
staticconstexpr
Initial value:
=
max_map_rank<typename T::key_type, typename T::mapped_type>() + 1

Definition at line 1720 of file patterns.h.

◆ list_rank [4/9]

template<int rank, int dim, class Number >
constexpr int Patterns::Tools::internal::RankInfo< Tensor< rank, dim, Number > >::list_rank = rank + RankInfo<Number>::list_rank
staticconstexpr

Definition at line 1728 of file patterns.h.

◆ map_rank [4/9]

template<int rank, int dim, class Number >
constexpr int Patterns::Tools::internal::RankInfo< Tensor< rank, dim, Number > >::map_rank = RankInfo<Number>::map_rank
staticconstexpr

Definition at line 1729 of file patterns.h.

◆ list_rank [5/9]

template<class Number >
constexpr int Patterns::Tools::internal::RankInfo< std::complex< Number > >::list_rank = RankInfo<Number>::list_rank + 1
staticconstexpr

Definition at line 1740 of file patterns.h.

◆ map_rank [5/9]

template<class Number >
constexpr int Patterns::Tools::internal::RankInfo< std::complex< Number > >::map_rank = RankInfo<Number>::map_rank
staticconstexpr

Definition at line 1741 of file patterns.h.

◆ list_rank [6/9]

template<int dim>
constexpr int Patterns::Tools::internal::RankInfo< std::unique_ptr< FunctionParser< dim > > >::list_rank = 1
staticconstexpr

Definition at line 1748 of file patterns.h.

◆ map_rank [6/9]

template<int dim>
constexpr int Patterns::Tools::internal::RankInfo< std::unique_ptr< FunctionParser< dim > > >::map_rank = 0
staticconstexpr

Definition at line 1749 of file patterns.h.

◆ list_rank [7/9]

constexpr int Patterns::Tools::internal::RankInfo< ComponentMask >::list_rank = 1
staticconstexpr

Definition at line 1756 of file patterns.h.

◆ map_rank [7/9]

constexpr int Patterns::Tools::internal::RankInfo< ComponentMask >::map_rank = 0
staticconstexpr

Definition at line 1757 of file patterns.h.

◆ list_rank [8/9]

template<class Key , class Value >
constexpr int Patterns::Tools::internal::RankInfo< std::pair< Key, Value > >::list_rank
staticconstexpr
Initial value:

Definition at line 1764 of file patterns.h.

◆ map_rank [8/9]

template<class Key , class Value >
constexpr int Patterns::Tools::internal::RankInfo< std::pair< Key, Value > >::map_rank
staticconstexpr
Initial value:

Definition at line 1766 of file patterns.h.

◆ list_rank [9/9]

template<class... Types>
constexpr int Patterns::Tools::internal::RankInfo< std::tuple< Types... > >::list_rank = max_list_rank<Types...>()
staticconstexpr

Definition at line 1775 of file patterns.h.

◆ map_rank [9/9]

template<class... Types>
constexpr int Patterns::Tools::internal::RankInfo< std::tuple< Types... > >::map_rank = max_map_rank<Types...>() + 1
staticconstexpr

Definition at line 1776 of file patterns.h.

◆ counter

std::atomic<unsigned int> Subscriptor::counter
mutableprivate

Store the number of objects which subscribed to this object. Initially, this number is zero, and upon destruction it shall be zero again (i.e. all objects which subscribed should have unsubscribed again).

The creator (and owner) of an object is counted in the map below if HE manages to supply identification.

We use the mutable keyword in order to allow subscription to constant objects also.

This counter may be read from and written to concurrently in multithreaded code: hence we use the std::atomic class template.

Definition at line 211 of file subscriptor.h.

◆ counter_map

std::map<std::string, unsigned int> Subscriptor::counter_map
mutableprivate

In this map, we count subscriptions for each different identification string supplied to subscribe().

Definition at line 217 of file subscriptor.h.

◆ validity_pointers

std::vector<std::atomic<bool> *> Subscriptor::validity_pointers
mutableprivate

In this vector, we store pointers to the validity bool in the SmartPointer objects that subscribe to this class.

Definition at line 233 of file subscriptor.h.

◆ object_info

const std::type_info* Subscriptor::object_info
mutableprivate

Pointer to the typeinfo object of this object, from which we can later deduce the class name. Since this information on the derived class is neither available in the destructor, nor in the constructor, we obtain it in between and store it here.

Definition at line 241 of file subscriptor.h.

◆ mutex [1/3]

std::mutex Subscriptor::mutex
staticprivate

A mutex used to ensure data consistency when printing out the list of subscribers.

Definition at line 263 of file subscriptor.h.

◆ entries [2/2]

std::vector<internal::TableEntry> TableHandler::Column::entries

List of entries within this column. Values are always immediately converted to strings to provide a uniform method of lookup.

Definition at line 687 of file table_handler.h.

◆ tex_caption

std::string TableHandler::Column::tex_caption

The caption of the column in tex output. By default, this is the key string that is given to the TableHandler by TableHandler::add_value(...). This may be changed by calling TableHandler::set_tex_caption(...).

Definition at line 695 of file table_handler.h.

◆ tex_format

std::string TableHandler::Column::tex_format

The column format in tex output. By default, this is "c", meaning ‘centered’. This may be changed by calling TableHandler::set_tex_format(...) with "c", "r", "l" for centered, right or left.

Definition at line 704 of file table_handler.h.

◆ precision

unsigned int TableHandler::Column::precision

Double or float entries are written with this precision (set by the user). The default is 4.

Definition at line 710 of file table_handler.h.

◆ scientific

bool TableHandler::Column::scientific

scientific=false means fixed point notation.

Definition at line 715 of file table_handler.h.

◆ flag

unsigned int TableHandler::Column::flag

Flag that may be used by derived classes for arbitrary purposes.

In particular, the ConvergenceTable class uses the flag to denote columns for which convergence information has already been computed, or should not be computed at all.

Definition at line 724 of file table_handler.h.

◆ max_length

unsigned int TableHandler::Column::max_length

This entry caches the maximum length in characters for all entries in this table.

Definition at line 730 of file table_handler.h.

◆ column_order

std::vector<std::string> TableHandler::column_order
protected

A variable storing the column and supercolumn keys in the order desired by the user. By default this is the order of adding the columns. This order may be changed by set_column_order().

Definition at line 757 of file table_handler.h.

◆ columns [1/2]

std::map<std::string, Column> TableHandler::columns
mutableprotected

A map from the column keys to the columns (not supercolumns).

The field is declared mutable so that the write_text() and write_tex() functions can be const, even though they may pad columns below if 'auto_fill_mode' is on.

Definition at line 766 of file table_handler.h.

◆ supercolumns

std::map<std::string, std::vector<std::string> > TableHandler::supercolumns
protected

A map from each supercolumn key to the keys of its subcolumns in the right order. It is allowed that a supercolumn has got the same key as a column.

Note that we do not use a multimap here since the order of column keys for each supercolumn key is relevant.

Definition at line 776 of file table_handler.h.

◆ tex_supercaptions

std::map<std::string, std::string> TableHandler::tex_supercaptions
protected

A map from the supercolumn keys to the captions of the supercolumns that are used in tex output.

By default these are just the supercolumn keys but they may be changed by set_tex_supercaptions(...).

Definition at line 785 of file table_handler.h.

◆ tex_table_caption

std::string TableHandler::tex_table_caption
protected

The caption of the table itself.

Definition at line 790 of file table_handler.h.

◆ tex_table_label

std::string TableHandler::tex_table_label
protected

The label of the table.

Definition at line 794 of file table_handler.h.

◆ auto_fill_mode

bool TableHandler::auto_fill_mode
protected

Flag indicating whether auto-fill mode should be used.

Definition at line 799 of file table_handler.h.

◆ vars [2/2]

template<int rank, int dim, typename Number = double>
Threads::ThreadLocalStorage<std::vector<double> > TensorFunctionParser< rank, dim, Number >::vars
mutableprivate

Place for the variables for each thread

Definition at line 279 of file tensor_function_parser.h.

◆ tfp

template<int rank, int dim, typename Number = double>
Threads::ThreadLocalStorage<std::vector<std::unique_ptr<mu::Parser> > > TensorFunctionParser< rank, dim, Number >::tfp
mutableprivate

The muParser objects for each thread (and one for each component). We are storing a unique_ptr so that we don't need to include the definition of mu::Parser in this header.

Definition at line 287 of file tensor_function_parser.h.

◆ constants [2/2]

template<int rank, int dim, typename Number = double>
std::map<std::string, double> TensorFunctionParser< rank, dim, Number >::constants
private

An array to keep track of all the constants, required to initialize tfp in each thread.

Definition at line 293 of file tensor_function_parser.h.

◆ var_names [2/2]

template<int rank, int dim, typename Number = double>
std::vector<std::string> TensorFunctionParser< rank, dim, Number >::var_names
private

An array for the variable names, required to initialize tfp in each thread.

Definition at line 299 of file tensor_function_parser.h.

◆ expressions [2/2]

template<int rank, int dim, typename Number = double>
std::vector<std::string> TensorFunctionParser< rank, dim, Number >::expressions
private

An array of function expressions (one per component), required to initialize tfp in each thread.

Definition at line 315 of file tensor_function_parser.h.

◆ initialized [2/2]

template<int rank, int dim, typename Number = double>
bool TensorFunctionParser< rank, dim, Number >::initialized
private

State of usability. This variable is checked every time the function is called for evaluation. It's set to true in the initialize() methods.

Definition at line 321 of file tensor_function_parser.h.

◆ n_vars [2/2]

template<int rank, int dim, typename Number = double>
unsigned int TensorFunctionParser< rank, dim, Number >::n_vars
private

Number of variables. If this is also a function of time, then the number of variables is dim+1, otherwise it is dim. In the case that this is a time dependent function, the time is supposed to be the last variable. If n_vars is not identical to the number of the variables parsed by the initialize() method, then an exception is thrown.

Definition at line 330 of file tensor_function_parser.h.

◆ n_components

template<int rank, int dim, typename Number = double>
unsigned int TensorFunctionParser< rank, dim, Number >::n_components
private

Number of components is equal dimrank.

Definition at line 335 of file tensor_function_parser.h.

◆ task_descriptor

template<typename RT = void>
std::shared_ptr<internal::TaskDescriptor<RT> > Threads::Task< RT >::task_descriptor
private

Shared pointer to the object representing the task. This makes sure that the object lives as long as there is at least one subscriber to it.

Definition at line 1632 of file thread_management.h.

◆ tasks

template<typename RT = void>
std::list<Task<RT> > Threads::TaskGroup< RT >::tasks
private

List of task objects.

Definition at line 1843 of file thread_management.h.

◆ expression

SymEngine::Expression Differentiation::SD::Expression::expression
private

The value or expression that this instance of this class is to represent.

Definition at line 870 of file symengine_number_types.h.

◆ method

template<typename ReturnType >
enum OptimizerType Differentiation::SD::BatchOptimizer< ReturnType >::method
private

The optimization methods that is to be employed.

Definition at line 1929 of file symengine_optimizer.h.

◆ flags [2/2]

template<typename ReturnType >
enum OptimizationFlags Differentiation::SD::BatchOptimizer< ReturnType >::flags
private

The optimization flags that indicate which expression manipulation mechanisms are to be employed.

Definition at line 1935 of file symengine_optimizer.h.

◆ independent_variables_symbols

template<typename ReturnType >
types::substitution_map Differentiation::SD::BatchOptimizer< ReturnType >::independent_variables_symbols
private

A map that represents the symbols that form the set of independent variables upon which optimized symbolic expressions are to be based.

Note
As the ordering of the input symbols is fixed at the time at which optimization is performed, we store all of the entries in a map to ensure that both we and the user never mistakenly swap the order of two or more symbols during evaluation.

Definition at line 1946 of file symengine_optimizer.h.

◆ dependent_variables_functions

template<typename ReturnType >
types::symbol_vector Differentiation::SD::BatchOptimizer< ReturnType >::dependent_variables_functions
private

A set of symbolic expressions to be optimized. It is required that the symbols on which these dependent functions are based are registered in the independent_variables_symbols map.

Definition at line 1953 of file symengine_optimizer.h.

◆ dependent_variables_output

template<typename ReturnType >
std::vector<ReturnType> Differentiation::SD::BatchOptimizer< ReturnType >::dependent_variables_output
mutableprivate

The output of substituting symbolic values with floating point values through the use of the optimizer.

It is necessary to use this intermediate storage mechanism to store the result of a substitution sweep as some optimizers work on all symbolic expressions in a single batch. In this way they can employ methods such as common subexpression elimination to minimize the number of terms evaluated across all symbolic functions.

This variable is marked as mutable. This facilitates the substitution functionality being used in logically constant get_* functions.

Definition at line 1985 of file symengine_optimizer.h.

◆ map_dep_expr_vec_entry

template<typename ReturnType >
map_dependent_expression_to_vector_entry_t Differentiation::SD::BatchOptimizer< ReturnType >::map_dep_expr_vec_entry
mutableprivate

A map indicating which dependent variable is associated with which entry in the output vector.

Definition at line 2004 of file symengine_optimizer.h.

◆ optimizer

template<typename ReturnType >
std::unique_ptr<SymEngine::Visitor> Differentiation::SD::BatchOptimizer< ReturnType >::optimizer
mutableprivate

A pointer to an instance of an optimizer that will be used to reformulate the substitution of symbolic expressions in a manner that is more efficient than plain dictionary-based approach.

Definition at line 2012 of file symengine_optimizer.h.

◆ ready_for_value_extraction

template<typename ReturnType >
bool Differentiation::SD::BatchOptimizer< ReturnType >::ready_for_value_extraction
mutableprivate

A flag to record whether or not substitution has taken place and values can now be extracted.

Note
This variable is marked as mutable. This facilitates the substitution functionality being used in logically constant get_* functions.

Definition at line 2022 of file symengine_optimizer.h.

◆ has_been_serialized

template<typename ReturnType >
bool Differentiation::SD::BatchOptimizer< ReturnType >::has_been_serialized
mutableprivate

A flag to record whether or not this class instance has been serialized in the past.

Definition at line 2028 of file symengine_optimizer.h.

◆ row_block_indices

template<typename MatrixType >
BlockIndices BlockMatrixBase< MatrixType >::row_block_indices
protected

Index arrays for rows and columns.

Definition at line 849 of file block_matrix_base.h.

◆ column_block_indices

template<typename MatrixType >
BlockIndices BlockMatrixBase< MatrixType >::column_block_indices
protected

Definition at line 850 of file block_matrix_base.h.

◆ sub_objects [1/2]

template<typename MatrixType >
Table<2, SmartPointer<BlockType, BlockMatrixBase<MatrixType> > > BlockMatrixBase< MatrixType >::sub_objects
protected

Array of sub-matrices.

Definition at line 855 of file block_matrix_base.h.

◆ counter_within_block [1/2]

template<typename MatrixType >
std::vector<size_type> BlockMatrixBase< MatrixType >::TemporaryData::counter_within_block

Temporary vector for counting the elements written into the individual blocks when doing a collective add or set.

Definition at line 1025 of file block_matrix_base.h.

◆ column_indices [1/2]

template<typename MatrixType >
std::vector<std::vector<size_type> > BlockMatrixBase< MatrixType >::TemporaryData::column_indices

Temporary vector for column indices on each block when writing local to global data on each sparse matrix.

Definition at line 1031 of file block_matrix_base.h.

◆ column_values

template<typename MatrixType >
std::vector<std::vector<value_type> > BlockMatrixBase< MatrixType >::TemporaryData::column_values

Temporary vector for storing the local values (they need to be reordered when writing local to global).

Definition at line 1037 of file block_matrix_base.h.

◆ mutex [2/3]

template<typename MatrixType >
std::mutex BlockMatrixBase< MatrixType >::TemporaryData::mutex

A mutex variable used to guard access to the member variables of this structure;

Definition at line 1043 of file block_matrix_base.h.

◆ temporary_data

template<typename MatrixType >
TemporaryData BlockMatrixBase< MatrixType >::temporary_data
private

A set of scratch arrays that can be used by the add() and set() functions that take pointers to data to pre-sort indices before use. Access from multiple threads is synchronized via the mutex variable that is part of the structure.

Definition at line 1067 of file block_matrix_base.h.

◆ sparsity_pattern [1/2]

template<typename number >
SmartPointer<const BlockSparsityPattern, BlockSparseMatrix<number> > BlockSparseMatrix< number >::sparsity_pattern
private

Pointer to the block sparsity pattern used for this matrix. In order to guarantee that it is not deleted while still in use, we subscribe to it using the SmartPointer class.

Definition at line 368 of file block_sparse_matrix.h.

◆ rows [1/3]

template<typename SparsityPatternType >
size_type BlockSparsityPatternBase< SparsityPatternType >::rows
protected

Number of block rows.

Definition at line 342 of file block_sparsity_pattern.h.

◆ columns [2/2]

template<typename SparsityPatternType >
size_type BlockSparsityPatternBase< SparsityPatternType >::columns
protected

Number of block columns.

Definition at line 347 of file block_sparsity_pattern.h.

◆ sub_objects [2/2]

template<typename SparsityPatternType >
Table<2, SmartPointer<SparsityPatternType, BlockSparsityPatternBase<SparsityPatternType> > > BlockSparsityPatternBase< SparsityPatternType >::sub_objects
protected

Array of sparsity patterns.

Definition at line 355 of file block_sparsity_pattern.h.

◆ row_indices

template<typename SparsityPatternType >
BlockIndices BlockSparsityPatternBase< SparsityPatternType >::row_indices
protected

Object storing and managing the transformation of row indices to indices of the sub-objects.

Definition at line 361 of file block_sparsity_pattern.h.

◆ column_indices [2/2]

template<typename SparsityPatternType >
BlockIndices BlockSparsityPatternBase< SparsityPatternType >::column_indices
protected

Object storing and managing the transformation of column indices to indices of the sub-objects.

Definition at line 367 of file block_sparsity_pattern.h.

◆ counter_within_block [2/2]

template<typename SparsityPatternType >
std::vector<size_type> BlockSparsityPatternBase< SparsityPatternType >::counter_within_block
private

Temporary vector for counting the elements written into the individual blocks when doing a collective add or set.

Definition at line 374 of file block_sparsity_pattern.h.

◆ block_column_indices

template<typename SparsityPatternType >
std::vector<std::vector<size_type> > BlockSparsityPatternBase< SparsityPatternType >::block_column_indices
private

Temporary vector for column indices on each block when writing local to global data on each sparse matrix.

Definition at line 380 of file block_sparsity_pattern.h.

◆ parent

template<class BlockVectorType , bool Constness>
BlockVector* internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::parent
private

Pointer to the block vector object to which this iterator points. Depending on the value of the Constness template argument of this class, this is a const or non-const pointer.

Definition at line 368 of file block_vector_base.h.

◆ global_index

template<class BlockVectorType , bool Constness>
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::global_index
private

Global index of the element to which we presently point.

Definition at line 373 of file block_vector_base.h.

◆ current_block

template<class BlockVectorType , bool Constness>
unsigned int internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::current_block
private

Current block and index within this block of the element presently pointed to.

Definition at line 379 of file block_vector_base.h.

◆ index_within_block

template<class BlockVectorType , bool Constness>
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::index_within_block
private

Definition at line 380 of file block_vector_base.h.

◆ next_break_forward

template<class BlockVectorType , bool Constness>
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::next_break_forward
private

Indices of the global element address at which we have to move on to another block when moving forward and backward. These indices are kept as a cache since this is much more efficient than always asking the parent object.

Definition at line 388 of file block_vector_base.h.

◆ next_break_backward

template<class BlockVectorType , bool Constness>
size_type internal::BlockVectorIterators::Iterator< BlockVectorType, Constness >::next_break_backward
private

Definition at line 389 of file block_vector_base.h.

◆ components

template<class VectorType >
std::vector<VectorType> BlockVectorBase< VectorType >::components
protected

Pointer to the array of components.

Definition at line 956 of file block_vector_base.h.

◆ block_indices

template<class VectorType >
BlockIndices BlockVectorBase< VectorType >::block_indices
protected

Object managing the transformation between global indices and indices within the different blocks.

Definition at line 962 of file block_vector_base.h.

◆ zero_addition_can_be_elided [1/3]

template<typename number >
const bool ChunkSparseMatrix< number >::Traits::zero_addition_can_be_elided = true
static

It is safe to elide additions of zeros to individual elements of this matrix.

Definition at line 474 of file chunk_sparse_matrix.h.

◆ cols [1/4]

template<typename number >
SmartPointer<const ChunkSparsityPattern, ChunkSparseMatrix<number> > ChunkSparseMatrix< number >::cols
private

Pointer to the sparsity pattern used for this matrix. In order to guarantee that it is not deleted while still in use, we subscribe to it using the SmartPointer class.

Definition at line 1382 of file chunk_sparse_matrix.h.

◆ val [1/2]

template<typename number >
std::unique_ptr<number[]> ChunkSparseMatrix< number >::val
private

Array of values for all the nonzero entries. The position of an entry within the matrix, i.e., the row and column number for a given value in this array can only be deduced using the sparsity pattern. The same holds for the more common operation of finding an entry by its coordinates.

Definition at line 1391 of file chunk_sparse_matrix.h.

◆ max_len [1/2]

template<typename number >
size_type ChunkSparseMatrix< number >::max_len
private

Allocated size of val. This can be larger than the actually used part if the size of the matrix was reduced sometime in the past by associating a sparsity pattern with a smaller size to this object, using the reinit() function.

Definition at line 1399 of file chunk_sparse_matrix.h.

◆ rows [2/3]

size_type ChunkSparsityPattern::rows
private

Number of rows that this sparsity structure shall represent.

Definition at line 837 of file chunk_sparsity_pattern.h.

◆ cols [2/4]

size_type ChunkSparsityPattern::cols
private

Number of columns that this sparsity structure shall represent.

Definition at line 842 of file chunk_sparsity_pattern.h.

◆ chunk_size

size_type ChunkSparsityPattern::chunk_size
private

The size of chunks.

Definition at line 847 of file chunk_sparsity_pattern.h.

◆ sparsity_pattern [2/2]

SparsityPattern ChunkSparsityPattern::sparsity_pattern
private

The reduced sparsity pattern. We store only which chunks exist, with each chunk a block in the matrix of size chunk_size by chunk_size.

Definition at line 853 of file chunk_sparsity_pattern.h.

◆ zero_addition_can_be_elided [2/3]

const bool PETScWrappers::MPI::SparseMatrix::Traits::zero_addition_can_be_elided = false
static

It is not safe to elide additions of zeros to individual elements of this matrix. The reason is that additions to the matrix may trigger collective operations synchronizing buffers on multiple processes. If an addition is elided on one process, this may lead to other processes hanging in an infinite waiting loop.

Definition at line 391 of file petsc_sparse_matrix.h.

◆ communicator

MPI_Comm PETScWrappers::MPI::SparseMatrix::communicator
private

Copy of the communicator object to be used for this parallel vector.

Definition at line 701 of file petsc_sparse_matrix.h.

◆ relaxation [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
double PreconditionBlock< MatrixType, inverse_type >::AdditionalData::relaxation

Relaxation parameter.

Definition at line 122 of file precondition_block.h.

◆ block_size

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
size_type PreconditionBlock< MatrixType, inverse_type >::AdditionalData::block_size

Block size.

Definition at line 127 of file precondition_block.h.

◆ invert_diagonal

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
bool PreconditionBlock< MatrixType, inverse_type >::AdditionalData::invert_diagonal

Invert diagonal during initialization.

Definition at line 132 of file precondition_block.h.

◆ same_diagonal

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
bool PreconditionBlock< MatrixType, inverse_type >::AdditionalData::same_diagonal

Assume all diagonal blocks are equal to save memory.

Definition at line 137 of file precondition_block.h.

◆ inversion

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
PreconditionBlockBase<inverse_type>::Inversion PreconditionBlock< MatrixType, inverse_type >::AdditionalData::inversion

Choose the inversion method for the blocks.

Definition at line 141 of file precondition_block.h.

◆ threshold

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
double PreconditionBlock< MatrixType, inverse_type >::AdditionalData::threshold

The if inversion is SVD, the threshold below which a singular value will be considered zero and thus not inverted. This parameter is used in the call to LAPACKFullMatrix::compute_inverse_svd().

Definition at line 148 of file precondition_block.h.

◆ blocksize

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
size_type PreconditionBlock< MatrixType, inverse_type >::blocksize
protected

Size of the blocks. Each diagonal block is assumed to be of the same size.

Definition at line 340 of file precondition_block.h.

◆ A [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
SmartPointer<const MatrixType, PreconditionBlock<MatrixType, inverse_type> > PreconditionBlock< MatrixType, inverse_type >::A
protected

Pointer to the matrix. Make sure that the matrix exists as long as this class needs it, i.e. until calling invert_diagblocks, or (if the inverse matrices should not be stored) until the last call of the preconditoining vmult function of the derived classes.

Definition at line 348 of file precondition_block.h.

◆ relaxation [2/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
double PreconditionBlock< MatrixType, inverse_type >::relaxation
protected

Relaxation parameter to be used by derived classes.

Definition at line 352 of file precondition_block.h.

◆ permutation

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
std::vector<size_type> PreconditionBlock< MatrixType, inverse_type >::permutation
protected

The permutation vector

Definition at line 357 of file precondition_block.h.

◆ inverse_permutation

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
std::vector<size_type> PreconditionBlock< MatrixType, inverse_type >::inverse_permutation
protected

The inverse permutation vector

Definition at line 362 of file precondition_block.h.

◆ matrix [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
const PreconditionBlockJacobi<MatrixType, inverse_type>* PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::matrix
protected

The matrix accessed.

Definition at line 439 of file precondition_block.h.

◆ bs

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::bs
protected

Save block size here for further reference.

Definition at line 444 of file precondition_block.h.

◆ a_block

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
size_type PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::a_block
protected

Current block number.

Definition at line 449 of file precondition_block.h.

◆ b_iterator

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
FullMatrix<inverse_type>::const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::b_iterator
protected

Iterator inside block.

Definition at line 454 of file precondition_block.h.

◆ b_end

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
FullMatrix<inverse_type>::const_iterator PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::Accessor::b_end
protected

End of current block.

Definition at line 459 of file precondition_block.h.

◆ accessor [1/2]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
Accessor PreconditionBlockJacobi< MatrixType, inverse_type >::const_iterator::accessor
private

Store an object of the accessor class.

Definition at line 511 of file precondition_block.h.

◆ preconditioning

template<typename MatrixType = SparseMatrix<double>, typename VectorType = ::Vector<double>>
std::string PreconditionSelector< MatrixType, VectorType >::preconditioning
protected

Stores the name of the preconditioning.

Definition at line 187 of file precondition_selector.h.

◆ A [2/2]

template<typename MatrixType = SparseMatrix<double>, typename VectorType = ::Vector<double>>
SmartPointer<const MatrixType, PreconditionSelector<MatrixType, VectorType> > PreconditionSelector< MatrixType, VectorType >::A
private

Matrix that is used for the matrix-builtin preconditioning function. cf. also PreconditionUseMatrix.

Definition at line 195 of file precondition_selector.h.

◆ omega

template<typename MatrixType = SparseMatrix<double>, typename VectorType = ::Vector<double>>
const VectorType::value_type PreconditionSelector< MatrixType, VectorType >::omega
private

Stores the damping parameter of the preconditioner.

Definition at line 200 of file precondition_selector.h.

◆ res2

template<class VectorType = Vector<double>>
double SolverMinRes< VectorType >::res2
protected

Within the iteration loop, the square of the residual vector is stored in this variable. The function criterion uses this variable to compute the convergence value, which in this class is the norm of the residual vector and thus the square root of the res2 value.

Definition at line 146 of file solver_minres.h.

◆ strengthen_diagonal [1/2]

template<typename number >
double SparseLUDecomposition< number >::AdditionalData::strengthen_diagonal

strengthen_diag times the sum of absolute row entries is added to the diagonal entries.

Per default, this value is zero, i.e. the diagonal is not strengthened.

Definition at line 161 of file sparse_decomposition.h.

◆ extra_off_diagonals

template<typename number >
unsigned int SparseLUDecomposition< number >::AdditionalData::extra_off_diagonals

By default, the initialize(matrix, data) function creates its own sparsity. This sparsity has the same SparsityPattern as matrix with some extra off diagonals the number of which is specified by extra_off_diagonals.

The user can give a SparsityPattern to use_this_sparsity. Then this sparsity is used and the extra_off_diagonals argument is ignored.

Definition at line 173 of file sparse_decomposition.h.

◆ use_previous_sparsity

template<typename number >
bool SparseLUDecomposition< number >::AdditionalData::use_previous_sparsity

If this flag is true the initialize() function uses the same sparsity that was used during the previous initialize() call.

This might be useful when several linear problems on the same sparsity need to solved, as for example several Newton iteration steps on the same triangulation.

Definition at line 183 of file sparse_decomposition.h.

◆ use_this_sparsity

template<typename number >
const SparsityPattern* SparseLUDecomposition< number >::AdditionalData::use_this_sparsity

When a SparsityPattern is given to this argument, the initialize() function calls reinit(*use_this_sparsity) causing this sparsity to be used.

Note that the sparsity structures of *use_this_sparsity and the matrix passed to the initialize function need not be equal. Fill-in is allowed, as well as filtering out some elements in the matrix.

Definition at line 195 of file sparse_decomposition.h.

◆ strengthen_diagonal [2/2]

template<typename number >
double SparseLUDecomposition< number >::strengthen_diagonal
protected

The default strengthening value, returned by get_strengthen_diagonal().

Definition at line 316 of file sparse_decomposition.h.

◆ prebuilt_lower_bound

template<typename number >
std::vector<const size_type *> SparseLUDecomposition< number >::prebuilt_lower_bound
protected

For every row in the underlying SparsityPattern, this array contains a pointer to the row's first afterdiagonal entry. Becomes available after invocation of prebuild_lower_bound().

Definition at line 323 of file sparse_decomposition.h.

◆ own_sparsity

template<typename number >
SparsityPattern* SparseLUDecomposition< number >::own_sparsity
private

In general this pointer is zero except for the case that no SparsityPattern is given to this class. Then, a SparsityPattern is created and is passed down to the SparseMatrix base class.

Nevertheless, the SparseLUDecomposition needs to keep ownership of this sparsity. It keeps this pointer to it enabling it to delete this sparsity at destruction time.

Definition at line 341 of file sparse_decomposition.h.

◆ zero_addition_can_be_elided [3/3]

template<typename number >
const bool SparseMatrix< number >::Traits::zero_addition_can_be_elided = true
static

It is safe to elide additions of zeros to individual elements of this matrix.

Definition at line 548 of file sparse_matrix.h.

◆ cols [3/4]

template<typename number >
SmartPointer<const SparsityPattern, SparseMatrix<number> > SparseMatrix< number >::cols
private

Pointer to the sparsity pattern used for this matrix. In order to guarantee that it is not deleted while still in use, we subscribe to it using the SmartPointer class.

Definition at line 1708 of file sparse_matrix.h.

◆ val [2/2]

template<typename number >
std::unique_ptr<number[]> SparseMatrix< number >::val
private

Array of values for all the nonzero entries. The position of an entry within the matrix, i.e., the row and column number for a given value in this array can only be deduced using the sparsity pattern. The same holds for the more common operation of finding an entry by its coordinates.

Definition at line 1717 of file sparse_matrix.h.

◆ max_len [2/2]

template<typename number >
std::size_t SparseMatrix< number >::max_len
private

Allocated size of val. This can be larger than the actually used part if the size of the matrix was reduced sometime in the past by associating a sparsity pattern with a smaller size to this object, using the reinit() function.

Definition at line 1725 of file sparse_matrix.h.

◆ column

template<typename number >
size_type SparseMatrixEZ< number >::Entry::column

The column number.

Definition at line 134 of file sparse_matrix_ez.h.

◆ value [3/3]

template<typename number >
number SparseMatrixEZ< number >::Entry::value

The value there.

Definition at line 139 of file sparse_matrix_ez.h.

◆ invalid

template<typename number >
const size_type SparseMatrixEZ< number >::Entry::invalid = numbers::invalid_size_type
static

Non-existent column number.

Definition at line 144 of file sparse_matrix_ez.h.

◆ start

template<typename number >
size_type SparseMatrixEZ< number >::RowInfo::start

Index of first entry of the row in the data field.

Definition at line 161 of file sparse_matrix_ez.h.

◆ length

template<typename number >
unsigned short SparseMatrixEZ< number >::RowInfo::length

Number of entries in this row.

Definition at line 165 of file sparse_matrix_ez.h.

◆ diagonal

template<typename number >
unsigned short SparseMatrixEZ< number >::RowInfo::diagonal

Position of the diagonal element relative tor the start index.

Definition at line 169 of file sparse_matrix_ez.h.

◆ invalid_diagonal

template<typename number >
const unsigned short SparseMatrixEZ< number >::RowInfo::invalid_diagonal
static
Initial value:
=
static_cast<unsigned short>(-1)

Value for non-existing diagonal.

Definition at line 173 of file sparse_matrix_ez.h.

◆ matrix [2/2]

template<typename number >
const SparseMatrixEZ<number>* SparseMatrixEZ< number >::const_iterator::Accessor::matrix
protected

The matrix accessed.

Definition at line 226 of file sparse_matrix_ez.h.

◆ a_row

template<typename number >
size_type SparseMatrixEZ< number >::const_iterator::Accessor::a_row
protected

Current row number.

Definition at line 231 of file sparse_matrix_ez.h.

◆ a_index

template<typename number >
unsigned short SparseMatrixEZ< number >::const_iterator::Accessor::a_index
protected

Current index in row.

Definition at line 236 of file sparse_matrix_ez.h.

◆ accessor [2/2]

template<typename number >
Accessor SparseMatrixEZ< number >::const_iterator::accessor
private

Store an object of the accessor class.

Definition at line 288 of file sparse_matrix_ez.h.

◆ n_columns

template<typename number >
size_type SparseMatrixEZ< number >::n_columns
private

Number of columns. This is used to check vector dimensions only.

Definition at line 882 of file sparse_matrix_ez.h.

◆ row_info

template<typename number >
std::vector<RowInfo> SparseMatrixEZ< number >::row_info
private

Info structure for each row.

Definition at line 887 of file sparse_matrix_ez.h.

◆ data [3/4]

template<typename number >
std::vector<Entry> SparseMatrixEZ< number >::data
private

Data storage.

Definition at line 892 of file sparse_matrix_ez.h.

◆ increment

template<typename number >
unsigned int SparseMatrixEZ< number >::increment
private

Increment when a row grows.

Definition at line 897 of file sparse_matrix_ez.h.

◆ saved_default_row_length

template<typename number >
unsigned int SparseMatrixEZ< number >::saved_default_row_length
private

Remember the user provided default row length.

Definition at line 902 of file sparse_matrix_ez.h.

◆ diag

template<typename number >
std::vector<number> SparseMIC< number >::diag
private

Values of the computed diagonal.

Definition at line 163 of file sparse_mic.h.

◆ inv_diag

template<typename number >
std::vector<number> SparseMIC< number >::inv_diag
private

Inverses of the diagonal: precomputed for faster vmult.

Definition at line 168 of file sparse_mic.h.

◆ inner_sums

template<typename number >
std::vector<number> SparseMIC< number >::inner_sums
private

Values of the computed "inner sums", i.e. per-row sums of the elements laying on the right side of the diagonal.

Definition at line 174 of file sparse_mic.h.

◆ max_dim

size_type SparsityPatternBase::max_dim
protected

Maximum number of rows that can be stored in the rowstart array. Since reallocation of that array only happens if the present one is too small, but never when the size of this matrix structure shrinks, max_dim might be larger than rows and in this case rowstart has more elements than are used.

Definition at line 744 of file sparsity_pattern.h.

◆ rows [3/3]

size_type SparsityPatternBase::rows
protected

Number of rows that this sparsity structure shall represent.

Definition at line 749 of file sparsity_pattern.h.

◆ cols [4/4]

size_type SparsityPatternBase::cols
protected

Number of columns that this sparsity structure shall represent.

Definition at line 754 of file sparsity_pattern.h.

◆ max_vec_len

std::size_t SparsityPatternBase::max_vec_len
protected

Size of the actually allocated array colnums. Here, the same applies as for the rowstart array, i.e. it may be larger than the actually used part of the array.

Definition at line 761 of file sparsity_pattern.h.

◆ max_row_length

unsigned int SparsityPatternBase::max_row_length
protected

Maximum number of elements per row. This is set to the value given to the reinit() function (or to the constructor), or to the maximum row length computed from the vectors in case the more flexible constructors or reinit versions are called. Its value is more or less meaningless after compress() has been called.

Definition at line 770 of file sparsity_pattern.h.

◆ rowstart

std::unique_ptr<std::size_t[]> SparsityPatternBase::rowstart
protected

Array which hold for each row which is the first element in colnums belonging to that row. Note that the size of the array is one larger than the number of rows, because the last element is used for row=rows, i.e. the row past the last used one. The value of rowstart[rows]} equals the index of the element past the end in colnums; this way, we are able to write loops like for (i=rowstart[k]; i<rowstart[k+1]; ++i) also for the last row.

Note that the actual size of the allocated memory may be larger than the region that is used. The actual number of elements that was allocated is stored in max_dim.

Definition at line 785 of file sparsity_pattern.h.

◆ colnums

std::unique_ptr<size_type[]> SparsityPatternBase::colnums
protected

Array of column numbers. In this array, we store for each non-zero element its column number. The column numbers for the elements in row r are stored within the index range rowstart[r]...rowstart[r+1]. Therefore to find out whether a given element (r,c) exists, we have to check whether the column number c exists in the above-mentioned range within this array. If it exists, say at position p within this array, the value of the respective element in the sparse matrix will also be at position p of the values array of that class.

At the beginning, all elements of this array are set to -1 indicating invalid (unused) column numbers (diagonal elements are preset if optimized storage is requested, though). Now, if nonzero elements are added, one column number in the row's respective range after the other is set to the column number of the added element. When compress is called, unused elements (indicated by column numbers -1) are eliminated by copying the column number of subsequent rows and the column numbers within each row (with possible exception of the diagonal element) are sorted, such that finding whether an element exists and determining its position can be done by a binary search.

Definition at line 809 of file sparsity_pattern.h.

◆ compressed

bool SparsityPatternBase::compressed
protected

Store whether the compress() function was called for this object.

Definition at line 814 of file sparsity_pattern.h.

◆ store_diagonal_first_in_row

bool SparsityPattern::store_diagonal_first_in_row
private

Is special treatment of diagonals enabled?

Definition at line 1312 of file sparsity_pattern.h.

◆ column_space_map

std::unique_ptr<Epetra_Map> TrilinosWrappers::SparsityPattern::column_space_map
private

Pointer to the user-supplied Epetra Trilinos mapping of the matrix columns that assigns parts of the matrix to the individual processes.

Definition at line 995 of file trilinos_sparsity_pattern.h.

◆ graph

std::unique_ptr<Epetra_FECrsGraph> TrilinosWrappers::SparsityPattern::graph
private

A sparsity pattern object in Trilinos to be used for finite element based problems which allows for adding non-local elements to the pattern.

Definition at line 1002 of file trilinos_sparsity_pattern.h.

◆ nonlocal_graph

std::unique_ptr<Epetra_CrsGraph> TrilinosWrappers::SparsityPattern::nonlocal_graph
private

A sparsity pattern object for the non-local part of the sparsity pattern that is going to be sent to the owning processor. Only used when the particular constructor or reinit method with writable_rows argument is set

Definition at line 1010 of file trilinos_sparsity_pattern.h.

◆ data [4/4]

template<typename VectorType = ::Vector<double>>
std::vector<entry_type>* GrowingVectorMemory< VectorType >::Pool::data

Pointer to the storage object

Definition at line 435 of file vector_memory.h.

◆ total_alloc

template<typename VectorType = ::Vector<double>>
size_type GrowingVectorMemory< VectorType >::total_alloc
private

Overall number of allocations. Only used for bookkeeping and to generate output at the end of an object's lifetime.

Definition at line 448 of file vector_memory.h.

◆ current_alloc

template<typename VectorType = ::Vector<double>>
size_type GrowingVectorMemory< VectorType >::current_alloc
private

Number of vectors currently allocated in this object; used for detecting memory leaks.

Definition at line 454 of file vector_memory.h.

◆ log_statistics

template<typename VectorType = ::Vector<double>>
bool GrowingVectorMemory< VectorType >::log_statistics
private

A flag controlling the logging of statistics by the destructor.

Definition at line 459 of file vector_memory.h.

◆ mutex [3/3]

template<typename VectorType = ::Vector<double>>
Threads::Mutex GrowingVectorMemory< VectorType >::mutex
staticprivate

Mutex to synchronize access to internal data of this object from multiple threads.

Definition at line 465 of file vector_memory.h.

Friends

◆ MultipleParameterLoop

friend class MultipleParameterLoop
friend

Definition at line 1849 of file parameter_handler.h.

◆ BlockMatrixIterators::Accessor

template<typename MatrixType >
template<typename , bool >
friend class BlockMatrixIterators::Accessor
friend

Definition at line 1072 of file block_matrix_base.h.

◆ MatrixIterator

template<typename MatrixType >
template<typename >
friend class MatrixIterator
friend

Definition at line 1075 of file block_matrix_base.h.

◆ BlockSparseMatrix

template<typename SparsityPatternType >
template<typename number >
friend class BlockSparseMatrix
friend

Typedef describing sparse matrices that consist of multiple blocks.

Typedef for the type used to describe sparse matrices that consist of multiple blocks.

Definition at line 385 of file block_sparsity_pattern.h.

◆ Iterator

template<class BlockVectorType , bool Constness>
template<typename , bool >
friend class Iterator
friend

Definition at line 405 of file block_vector_base.h.

◆ ::internal::BlockVectorIterators::Iterator

template<class VectorType >
template<typename N , bool C>
friend class ::internal::BlockVectorIterators::Iterator
friend

Definition at line 966 of file block_vector_base.h.

◆ BlockVectorBase

template<class VectorType >
template<typename >
friend class BlockVectorBase
friend

Definition at line 969 of file block_vector_base.h.

◆ ChunkSparseMatrix [1/4]

template<typename number >
template<typename somenumber >
friend class ChunkSparseMatrix
friend

Definition at line 1409 of file chunk_sparse_matrix.h.

◆ ChunkSparseMatrixIterators::Iterator

template<typename number >
template<typename , bool >
friend class ChunkSparseMatrixIterators::Iterator
friend

Definition at line 1413 of file chunk_sparse_matrix.h.

◆ ChunkSparseMatrixIterators::Accessor

template<typename number >
template<typename , bool >
friend class ChunkSparseMatrixIterators::Accessor
friend

Definition at line 1415 of file chunk_sparse_matrix.h.

◆ ChunkSparseMatrix [2/4]

template<typename >
friend class ChunkSparseMatrix
friend

Definition at line 857 of file chunk_sparsity_pattern.h.

◆ ChunkSparsityPatternIterators::Accessor [1/3]

Definition at line 860 of file chunk_sparsity_pattern.h.

◆ BlockMatrixBase< SparseMatrix >

friend class BlockMatrixBase< SparseMatrix >
friend

Definition at line 759 of file petsc_sparse_matrix.h.

◆ const_iterator [1/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
friend class const_iterator
friend

Definition at line 462 of file precondition_block.h.

◆ Accessor

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
friend class Accessor
friend

Definition at line 616 of file precondition_block.h.

◆ const_iterator [2/3]

template<typename MatrixType , typename inverse_type = typename MatrixType::value_type>
friend class const_iterator
friend

Definition at line 617 of file precondition_block.h.

◆ SparseMatrix [1/3]

template<typename number >
template<typename somenumber >
friend class SparseMatrix
friend

Typedef for sparse matrix type used

Typedef for the sparse matrix type used.

Definition at line 1729 of file sparse_matrix.h.

◆ SparseLUDecomposition [1/3]

template<typename number >
template<typename somenumber >
friend class SparseLUDecomposition
friend

Definition at line 1731 of file sparse_matrix.h.

◆ SparseILU [1/3]

template<typename number >
template<typename >
friend class SparseILU
friend

Definition at line 1733 of file sparse_matrix.h.

◆ BlockMatrixBase

template<typename number >
template<typename >
friend class BlockMatrixBase
friend

Definition at line 1737 of file sparse_matrix.h.

◆ SparseMatrixIterators::Iterator

template<typename number >
template<typename , bool >
friend class SparseMatrixIterators::Iterator
friend

Definition at line 1741 of file sparse_matrix.h.

◆ SparseMatrixIterators::Accessor

template<typename number >
template<typename , bool >
friend class SparseMatrixIterators::Accessor
friend

Definition at line 1743 of file sparse_matrix.h.

◆ const_iterator [3/3]

template<typename number >
friend class const_iterator
friend

Definition at line 239 of file sparse_matrix_ez.h.

◆ SparseMatrix [2/3]

template<typename number >
friend class SparseMatrix
friend

Typedef for sparse matrix type used

Typedef for the sparse matrix type used.

Definition at line 818 of file sparsity_pattern.h.

◆ SparseLUDecomposition [2/3]

template<typename number >
friend class SparseLUDecomposition
friend

Definition at line 820 of file sparsity_pattern.h.

◆ SparseILU [2/3]

template<typename number >
friend class SparseILU
friend

Definition at line 822 of file sparsity_pattern.h.

◆ ChunkSparseMatrix [3/4]

template<typename number >
friend class ChunkSparseMatrix
friend

Definition at line 824 of file sparsity_pattern.h.

◆ ChunkSparsityPattern [1/2]

friend class ChunkSparsityPattern
friend

Definition at line 826 of file sparsity_pattern.h.

◆ DynamicSparsityPattern [1/2]

friend class DynamicSparsityPattern
friend

Definition at line 827 of file sparsity_pattern.h.

◆ SparsityPatternIterators::Iterator [1/3]

Definition at line 830 of file sparsity_pattern.h.

◆ SparsityPatternIterators::Accessor [1/3]

Definition at line 831 of file sparsity_pattern.h.

◆ ChunkSparsityPatternIterators::Accessor [2/3]

Definition at line 832 of file sparsity_pattern.h.

◆ SparseMatrix [3/3]

template<typename number >
friend class SparseMatrix
friend

Typedef for sparse matrix type used

Typedef for the sparse matrix type used.

Definition at line 1316 of file sparsity_pattern.h.

◆ SparseLUDecomposition [3/3]

template<typename number >
friend class SparseLUDecomposition
friend

Definition at line 1318 of file sparsity_pattern.h.

◆ SparseILU [3/3]

template<typename number >
friend class SparseILU
friend

Definition at line 1320 of file sparsity_pattern.h.

◆ ChunkSparseMatrix [4/4]

template<typename number >
friend class ChunkSparseMatrix
friend

Definition at line 1322 of file sparsity_pattern.h.

◆ ChunkSparsityPattern [2/2]

friend class ChunkSparsityPattern
friend

Definition at line 1324 of file sparsity_pattern.h.

◆ DynamicSparsityPattern [2/2]

friend class DynamicSparsityPattern
friend

Definition at line 1325 of file sparsity_pattern.h.

◆ SparsityPatternIterators::Iterator [2/3]

Definition at line 1328 of file sparsity_pattern.h.

◆ SparsityPatternIterators::Accessor [2/3]

Definition at line 1329 of file sparsity_pattern.h.

◆ ChunkSparsityPatternIterators::Accessor [3/3]

Definition at line 1330 of file sparsity_pattern.h.

◆ TrilinosWrappers::SparseMatrix

friend class TrilinosWrappers::SparseMatrix
friend

Definition at line 1012 of file trilinos_sparsity_pattern.h.

◆ SparsityPatternIterators::Accessor [3/3]

Definition at line 1013 of file trilinos_sparsity_pattern.h.

◆ SparsityPatternIterators::Iterator [3/3]

Definition at line 1014 of file trilinos_sparsity_pattern.h.

◆ Utilities::MPI::sum

template<typename number >
template<typename Number >
void Utilities::MPI::sum ( const SparseMatrix< Number > &  ,
const MPI_Comm ,
SparseMatrix< Number > &   
)
friend
deal_II_exceptions::internals::issue_error_noreturn
void issue_error_noreturn(ExceptionHandling handling, const char *file, int line, const char *function, const char *cond, const char *exc_name, ExceptionType e)
Definition: exceptions.h:1305
Patterns::Tools::to_value
void to_value(const std::string &s, T &t)
Definition: patterns.h:2368
ExceptionBase
Definition: exceptions.h:49
SparsityPatternBase::n_rows
size_type n_rows() const
deal_II_exceptions::internals
Definition: exceptions.h:1191
Patterns::Tools::is_list_compatible::value
static constexpr const bool value
Definition: patterns.h:1655
BlockVectorBase::add
void add(const std::vector< size_type > &indices, const std::vector< Number > &values)
LAPACKSupport::V
static const char V
Definition: lapack_support.h:175
SparsityPatternBase::n_cols
size_type n_cols() const
DataOutBase::vtu
@ vtu
Definition: data_out_base.h:1610
Patterns::Tools::to_string
std::string to_string(const T &t)
Definition: patterns.h:2360
Physics::Elasticity::Kinematics::e
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
deal_II_exceptions::internals::abort_or_throw_on_exception
@ abort_or_throw_on_exception
Definition: exceptions.h:1279
deal_II_exceptions::internals::get_cusparse_error_string
std::string get_cusparse_error_string(const cusparseStatus_t error_code)
Definition: exceptions.cc:471
DataOutBase::DataOutFilter
Definition: data_out_base.h:1339
Differentiation::SD::Expression::get_value
const SymEngine::Basic & get_value() const
Definition: symengine_number_types.cc:227
deal_II_exceptions::internals::throw_on_exception
@ throw_on_exception
Definition: exceptions.h:1283
Differentiation::SD::Expression::Expression
Expression()
Definition: symengine_number_types.cc:48
numbers::is_finite
bool is_finite(const double x)
Definition: numbers.h:537
Patterns::Tools::internal::RankInfo::list_rank
static constexpr int list_rank
Definition: patterns.h:1490
Patterns::Tools::is_map_compatible::value
static constexpr const bool value
Definition: patterns.h:1662
internal::argument_type
Definition: exceptions.h:1621
StandardExceptions::ExcIndexRangeType
static ::ExceptionBase & ExcIndexRangeType(T arg1, T arg2, T arg3)
LAPACKSupport::matrix
@ matrix
Contents is actually a matrix.
Definition: lapack_support.h:60
DataOutBase::DataOutFilterFlags
Definition: data_out_base.h:1270
Threads::internal::call
void call(const std::function< RT()> &function, internal::return_value< RT > &ret_val)
Definition: thread_management.h:607
AssertDimension
#define AssertDimension(dim1, dim2)
Definition: exceptions.h:1579
complete_index_set
IndexSet complete_index_set(const IndexSet::size_type N)
Definition: index_set.h:1014
StandardExceptions::ExcCudaError
static ::ExceptionBase & ExcCudaError(const char *arg1)
StandardExceptions::ExcInternalError
static ::ExceptionBase & ExcInternalError()
Assert
#define Assert(cond, exc)
Definition: exceptions.h:1419
deal_II_exceptions::internals::issue_error_nothrow
void issue_error_nothrow(const char *file, int line, const char *function, const char *cond, const char *exc_name, ExceptionType e) noexcept
Definition: exceptions.h:1353
StandardExceptions::ExcDimensionMismatch
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
Patterns::Tools::internal::RankInfo::map_rank
static constexpr int map_rank
Definition: patterns.h:1491
AssertNothrow
#define AssertNothrow(cond, exc)
Definition: exceptions.h:1483
StandardExceptions::ExcCusparseError
static ::ExceptionBase & ExcCusparseError(std::string arg1)
deal_II_exceptions::internals::get_cusolver_error_string
std::string get_cusolver_error_string(const cusolverStatus_t error_code)
Definition: exceptions.cc:517
StandardExceptions::ExcNumberNotFinite
static ::ExceptionBase & ExcNumberNotFinite(std::complex< double > arg1)
DataOutBase::Patch< 0, spacedim >::no_neighbor
static const unsigned int no_neighbor
Definition: data_out_base.h:503
first
Point< 2 > first
Definition: grid_out.cc:4352
DeclException2
#define DeclException2(Exception2, type1, type2, outsequence)
Definition: exceptions.h:541
AssertThrow
#define AssertThrow(cond, exc)
Definition: exceptions.h:1531
Utilities::MPI::max
T max(const T &t, const MPI_Comm &mpi_communicator)