27 using VectorType = dealii::LinearAlgebra::distributed::Vector<number>;
33 const dealii::DoFHandler<dim> &dof_handler,
34 const unsigned int °ree,
35 const std::string &name,
41 solutionOutput(
const std::unordered_map<std::pair<unsigned int, dependencyType>,
44 const std::vector<
const dealii::DoFHandler<dim> *> &dof_handlers,
45 const unsigned int °ree,
46 const std::string &name,
54 const dealii::DoFHandler<dim> &dof_handler,
55 const unsigned int °ree,
56 const std::string &name,
60 const auto n_trailing_digits =
static_cast<unsigned int>(
61 std::floor(std::log10(user_inputs.temporal_discretization.total_increments)) + 1);
64 dealii::DataOut<dim> data_out;
67 data_out.add_data_vector(dof_handler, solution, name);
73 data_out.build_patches(degree);
76 dealii::DataOutBase::VtkFlags flags;
77 flags.time = user_inputs.temporal_discretization.time;
78 flags.cycle = user_inputs.temporal_discretization.increment;
79 flags.print_date_and_time =
true;
80#ifdef PRISMS_PF_WITH_ZLIB
83 flags.compression_level = dealii::DataOutBase::CompressionLevel::best_speed;
85 data_out.set_flags(flags);
89 data_out.write_vtu_with_pvtu_record(
"./",
91 user_inputs.temporal_discretization.increment,
98 const std::unordered_map<std::pair<unsigned int, dependencyType>,
101 const std::vector<
const dealii::DoFHandler<dim> *> &dof_handlers,
102 const unsigned int °ree,
103 const std::string &name,
107 const auto n_trailing_digits =
static_cast<unsigned int>(
108 std::floor(std::log10(user_inputs.temporal_discretization.total_increments)) + 1);
111 dealii::DataOut<dim> data_out;
114 for (
const auto &[index, variable] : user_inputs.var_attributes)
116 auto *solution = solution_set.at(std::make_pair(index, dependencyType::NORMAL));
117 solution->update_ghost_values();
120 const bool is_scalar = variable.field_type == fieldType::SCALAR;
121 const unsigned int n_components = is_scalar ? 1 : dim;
123 const std::vector<dealii::DataComponentInterpretation::DataComponentInterpretation>
124 dataType(n_components,
126 ? dealii::DataComponentInterpretation::component_is_scalar
127 : dealii::DataComponentInterpretation::component_is_part_of_vector);
129 const std::vector<std::string> names(n_components, variable.name.c_str());
131 data_out.add_data_vector(*(dof_handlers.at(index)), *solution, names, dataType);
133 solution->zero_out_ghost_values();
140 data_out.build_patches(degree);
143 dealii::DataOutBase::VtkFlags flags;
144 flags.time = user_inputs.temporal_discretization.time;
145 flags.cycle = user_inputs.temporal_discretization.increment;
146 flags.print_date_and_time =
true;
147#ifdef PRISMS_PF_WITH_ZLIB
148 flags.compression_level = dealii::DataOutBase::CompressionLevel::best_speed;
150 data_out.set_flags(flags);
154 data_out.write_vtu_with_pvtu_record(
"./",
156 user_inputs.temporal_discretization.increment,
Class that outputs a passed solution to vtu, vtk, or pvtu.
Definition solution_output.h:25
solutionOutput(const VectorType &solution, const dealii::DoFHandler< dim > &dof_handler, const unsigned int °ree, const std::string &name, const userInputParameters< dim > &user_inputs)
Constructor for a single field that must be output.
Definition solution_output.h:53