include/meltpooldg/core/parameters_base.hpp Source File

Developer Documentation: include/meltpooldg/core/parameters_base.hpp Source File
Developer Documentation
parameters_base.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/base/parameter_handler.h>
4
5#include <concepts>
6#include <fstream>
7#include <iostream>
8#include <sstream>
9#include <string>
10
11namespace MeltPoolDG
12{
24 void
25 add_and_parse_parameters(const std::string &parameter_file,
26 const std::function<void(dealii::ParameterHandler &)> &add_parameters,
27 const bool &enable_print = false,
28 const bool print_details = false,
29 const bool skip_undefined = true,
30 const std::string &subsection = "");
31
40 {
41 public:
54 virtual void
55 process_parameters_file(dealii::ParameterHandler &prm, const std::string &parameter_filename);
56
67 void
68 print_parameters(dealii::ParameterHandler &prm, std::ostream &pcout, const bool print_details);
69
70 protected:
79 virtual void
80 add_parameters(dealii::ParameterHandler &prm) = 0;
81
91 virtual void
92 post(const std::string &parameter_filename) = 0;
93
94 bool parameters_read = false;
96 private:
106 void
107 check_for_file(const std::string &parameter_filename) const;
108 };
109
117 template <typename T>
118 concept ParameterObject = std::is_base_of<ParametersBase, T>::value;
119
120} // namespace MeltPoolDG
Concept to check if a type is derived from ParametersBase.
Definition parameters_base.hpp:118
Interface for a general preconditioner.
Definition boundary_condition_functions.hpp:17
void add_and_parse_parameters(const std::string &parameter_file, const std::function< void(dealii::ParameterHandler &)> &add_parameters, const bool &enable_print=false, const bool print_details=false, const bool skip_undefined=true, const std::string &subsection="")
Adds parameters from a file to a ParameterHandler object.
Definition parameters_base.cpp:7
Abstract base class for managing parameter files.
Definition parameters_base.hpp:40
virtual void post(const std::string &parameter_filename)=0
Post-processing after reading the parameter file.
virtual void add_parameters(dealii::ParameterHandler &prm)=0
Add parameters to the ParameterHandler.
void check_for_file(const std::string &parameter_filename) const
Check if a parameter file exists and is accessible.
Definition parameters_base.cpp:93
void print_parameters(dealii::ParameterHandler &prm, std::ostream &pcout, const bool print_details)
Print parameters to an output stream.
Definition parameters_base.cpp:79
bool parameters_read
Definition parameters_base.hpp:94
virtual void process_parameters_file(dealii::ParameterHandler &prm, const std::string &parameter_filename)
Process a parameter file and populate the ParameterHandler.
Definition parameters_base.cpp:44