12 #define BOOST_ALLOW_DEPRECATED_HEADERS
14 #include <deal.II/base/multithread_info.h>
36 std::vector<std::string> order = {
"d",
"b",
"m",
"p",
"r",
37 "ncells",
"ndofs",
"L2",
"H1" };
42 virtual void format()
override
44 MainOutputTable::format();
46 set_tex_caption(
"d",
"d");
47 set_tex_caption(
"b",
"b");
48 set_tex_caption(
"m",
"m");
63 if (nr_threads_max > 0)
64 MultithreadInfo::set_thread_limit(nr_threads_max);
66 Assert(DIMENSION__ > 1, ExcInternalError());
67 Assert(DIMENSION__ < 4, ExcInternalError());
69 const std::vector<std::string> bc_string = {
77 dir = (DIMENSION__ == 2) ?
"Data/ppc-" + bc_string[BC_TYPE__] +
"/"
78 :
"Data/shell-" + bc_string[BC_TYPE__] +
"/";
80 std::cout <<
"Program: abc\n"
81 <<
"Dimensions: " << DIMENSION__ <<
"\n"
82 <<
"Boundary condition: " << BC_TYPE__ <<
"\n"
83 <<
"Writing to: " << dir <<
"\n";
86 for (
unsigned int m = 1; m < 6; m++) {
87 std::cout <<
"--------------------------------------------\n"
88 <<
"--------------------------------------------\n";
90 for (
unsigned int p = 1; p < 4; p++) {
92 for (
unsigned int r = 1; r < 4; r++) {
93 table_PHI.add_value(
"d", DIMENSION__);
94 table_PHI.add_value(
"b", BC_TYPE__);
95 table_PHI.add_value(
"m", m);
96 table_PHI.add_value(
"r", r);
97 table_PHI.add_value(
"p", p);
104 dir +
"solution_p" + std::to_string(p) +
"_m" + std::to_string(m) +
105 "_r" + std::to_string(r));
107 table_PHI.add_value(
"ndofs", problem.
get_n_dofs());
108 table_PHI.add_value(
"ncells", problem.
get_n_cells());
112 table_PHI.
save(dir +
"table_PHI_m" + std::to_string(m) +
"_p" +
125 }
catch (std::exception& exc) {
126 std::cerr << std::endl
128 <<
"----------------------------------------------------"
130 std::cerr <<
"Exception on processing: " << std::endl
131 << exc.what() << std::endl
132 <<
"Aborting!" << std::endl
133 <<
"----------------------------------------------------"
137 std::cerr << std::endl
139 <<
"----------------------------------------------------"
141 std::cerr <<
"Unknown exception!" << std::endl
142 <<
"Aborting!" << std::endl
143 <<
"----------------------------------------------------"
This is a wrap-around class. It contains the main loop of the program that implements the Asymptotic ...
An extended version of the convergence table used in Asymptotic boundary condition (abc/) numerical e...
The convergence table used in multiple numerical experiments.
void save(std::string fname)
Saves the data in text and tex formats, and prints the data on screen.
Global settings for the Asymptotic boundary conditions (abc/) numerical experiment.
Implements the solver of the Asymptotic boundary condition (abc/) numerical experiment.
double get_L2_norm() const
Returns error norm.
double get_H1_norm() const
Returns error norm.
unsigned int get_n_dofs() const
Returns the total amount of the degrees of freedom.
unsigned int get_n_cells() const
Returns the number of active cells in the mesh.