38struct ErrorCalculationData
40 ErrorCalculationData()
41 : calculate_relative_errors(
true),
42 calculate_H1_seminorm_error(
false),
43 write_errors_to_file(
false),
44 compute_convergence_table(
false),
45 spatially_weight_error(
false),
47 additional_quadrature_points(3),
54 print(dealii::ConditionalOStream & pcout,
bool unsteady)
56 print_parameter(pcout,
"Error calculation", unsteady ==
true and analytical_solution);
57 if(unsteady ==
true and time_control_data.is_active)
59 print(pcout, unsteady, time_control_data);
60 print_parameter(pcout,
"Calculate relative errors", calculate_relative_errors);
61 print_parameter(pcout,
"Calculate H1-seminorm error", calculate_H1_seminorm_error);
62 print_parameter(pcout,
"Write errors to file", write_errors_to_file);
63 if(write_errors_to_file)
64 print_parameter(pcout,
"Directory", directory);
65 print_parameter(pcout,
"Name", name);
69 std::shared_ptr<dealii::Function<dim>> analytical_solution;
73 bool calculate_relative_errors;
77 bool calculate_H1_seminorm_error;
83 bool write_errors_to_file;
86 bool compute_convergence_table;
89 bool spatially_weight_error;
91 std::shared_ptr<dealii::Function<dim>> weight;
94 unsigned int additional_quadrature_points;
97 std::string directory;
105 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
107 ErrorCalculator(MPI_Comm
const & comm);
110 setup(dealii::DoFHandler<dim>
const & dof_handler,
111 dealii::Mapping<dim>
const & mapping,
115 evaluate(VectorType
const & solution,
double const time,
bool const unsteady);
121 do_evaluate(VectorType
const & solution_vector,
double const time);
124 filename_from_filename_base(std::string
const & directory,
125 std::string
const & filename_base,
126 bool const initial_call);
128 MPI_Comm
const mpi_comm;
130 bool clear_files_L2, clear_files_H1_seminorm;
132 dealii::ObserverPointer<dealii::DoFHandler<dim>
const> dof_handler;
133 dealii::ObserverPointer<dealii::Mapping<dim>
const> mapping;