17 #ifndef dealii_point_value_history_h 18 #define dealii_point_value_history_h 20 #include <deal.II/base/exceptions.h> 21 #include <deal.II/base/point.h> 22 #include <deal.II/base/quadrature_lib.h> 23 #include <deal.II/base/smartpointer.h> 24 #include <deal.II/base/utilities.h> 26 #include <deal.II/dofs/dof_accessor.h> 27 #include <deal.II/dofs/dof_handler.h> 29 #include <deal.II/fe/component_mask.h> 30 #include <deal.II/fe/fe_q.h> 31 #include <deal.II/fe/fe_values.h> 32 #include <deal.II/fe/mapping.h> 33 #include <deal.II/fe/mapping_q1.h> 35 #include <deal.II/grid/grid_tools.h> 37 #include <deal.II/lac/vector.h> 39 #include <deal.II/numerics/data_postprocessor.h> 48 DEAL_II_NAMESPACE_OPEN
52 namespace PointValueHistoryImplementation
65 const std::vector<types::global_dof_index> &new_sol_indices);
67 std::vector<Point<dim>> support_point_locations;
68 std::vector<types::global_dof_index> solution_indices;
237 const unsigned int n_independent_variables = 0);
282 add_points(
const std::vector<
Point<dim>> &locations);
294 add_field_name(
const std::string & vector_name,
306 add_field_name(
const std::string &vector_name,
307 const unsigned int n_components);
314 add_component_names(
const std::string & vector_name,
315 const std::vector<std::string> &component_names);
322 add_independent_names(
const std::vector<std::string> &independent_names);
334 template <
class VectorType>
336 evaluate_field(
const std::string &name,
const VectorType &solution);
356 template <
class VectorType>
358 evaluate_field(
const std::vector<std::string> &names,
359 const VectorType & solution,
368 template <
class VectorType>
370 evaluate_field(
const std::string & name,
371 const VectorType & solution,
388 template <
class VectorType>
390 evaluate_field_at_requested_location(
const std::string &name,
391 const VectorType & solution);
403 start_new_dataset(
const double key);
412 push_back_independent(
const std::vector<double> &independent_values);
434 write_gnuplot(
const std::string & base_name,
435 const std::vector<
Point<dim>> &postprocessor_locations =
463 mark_support_locations();
473 get_support_locations(std::vector<std::vector<
Point<dim>>> &locations);
484 get_points(std::vector<std::vector<
Point<dim>>> &locations);
532 status(std::ostream &out);
544 deep_check(
const bool strict);
550 "A call has been made to push_back_independent() when " 551 "no independent values were requested.");
558 "This error is thrown to indicate that the data sets appear to be out of " 559 "sync. The class requires that the number of dataset keys is the same as " 560 "the number of independent values sets and mesh linked value sets. The " 561 "number of each of these is allowed to differ by one to allow new values " 562 "to be added with out restricting the order the user choses to do so. " 563 "Special cases of no FHandler and no independent values should not " 564 "trigger this error.");
571 ExcDoFHandlerRequired,
572 "A method which requires access to a @p DoFHandler to be meaningful has " 573 "been called when have_dof_handler is false (most likely due to default " 574 "constructor being called). Only independent variables may be logged with " 581 ExcDoFHandlerChanged,
582 "The triangulation has been refined or coarsened in some way. This " 583 "suggests that the internal DoF indices stored by the current " 584 "object are no longer meaningful.");
612 std::map<std::string, std::vector<std::vector<double>>>
data_store;
629 std::vector<internal::PointValueHistoryImplementation::PointGeometryData<dim>>
683 tria_change_listener();
687 DEAL_II_NAMESPACE_CLOSE
std::vector< std::vector< double > > independent_values
std::vector< internal::PointValueHistoryImplementation::PointGeometryData< dim > > point_geometry_data
std::vector< double > dataset_key
std::vector< std::string > indep_names
SmartPointer< const DoFHandler< dim >, PointValueHistory< dim > > dof_handler
boost::signals2::connection tria_listener
PointGeometryData(const Point< dim > &new_requested_location, const std::vector< Point< dim >> &new_locations, const std::vector< types::global_dof_index > &new_sol_indices)
Only a constructor needed for this class (a struct really)
#define DeclExceptionMsg(Exception, defaulttext)
std::map< std::string, std::vector< std::vector< double > > > data_store
bool triangulation_changed
std::map< std::string, ComponentMask > component_mask
std::map< std::string, std::vector< std::string > > component_names_map