12 #define BOOST_ALLOW_DEPRECATED_HEADERS
14 #include "deal.II/base/multithread_info.h"
20 #include "project_Aphi_to_Brz.hpp"
21 #include "project_Aphi_to_Hrz.hpp"
37 if (nr_threads_max > 0)
38 MultithreadInfo::set_thread_limit(nr_threads_max);
40 std::string dir =
"Data/circle/";
43 std::cout <<
"Program: ssol-iii-axi\n"
44 <<
"Dimensions: " << 2 <<
"\n"
45 <<
"Writing to: " << dir <<
"\n";
50 for (
unsigned int p = 1; p < 4; p++) {
54 for (
unsigned int r = 15; r < 19; r++) {
56 dir +
"solution_A_p" + std::to_string(p) +
"_r" + std::to_string(r);
59 std::cout <<
"Time table A \n";
66 dir +
"solution_H_p" + std::to_string(p) +
"_r" + std::to_string(r);
68 table_H.add_value(
"r", r);
69 table_H.add_value(
"p", p);
72 std::cout <<
"Time table H \n";
76 ProjectAphiToHrz projector(p - 1,
88 table_H.add_value(
"ndofs", projector.get_n_dofs());
89 table_H.add_value(
"ncells", projector.get_n_cells());
90 table_H.add_value(
"L2", projector.get_L2_norm());
91 table_H.add_value(
"H1", 0.0);
95 dir +
"solution_B_p" + std::to_string(p) +
"_r" + std::to_string(r);
97 table_B.add_value(
"r", r);
98 table_B.add_value(
"p", p);
101 std::cout <<
"Time table D \n";
105 ProjectAphiToBrz projector(p - 1,
117 table_B.add_value(
"ndofs", projector.get_n_dofs());
118 table_B.add_value(
"ncells", projector.get_n_cells());
119 table_B.add_value(
"L2", projector.get_L2_norm() / mu_0);
120 table_B.add_value(
"H1", 0.0);
124 std::cout <<
"Table H\n";
125 table_H.
save(dir +
"table_H_p" + std::to_string(p));
127 std::cout <<
"Table B\n";
128 table_B.
save(dir +
"table_B_p" + std::to_string(p));
139 }
catch (std::exception& exc) {
140 std::cerr << std::endl
142 <<
"----------------------------------------------------"
144 std::cerr <<
"Exception on processing: " << std::endl
145 << exc.what() << std::endl
146 <<
"Aborting!" << std::endl
147 <<
"----------------------------------------------------"
151 std::cerr << std::endl
153 <<
"----------------------------------------------------"
155 std::cerr <<
"Unknown exception!" << std::endl
156 <<
"Aborting!" << std::endl
157 <<
"----------------------------------------------------"
This is a wrap-around class. It contains the main loop of the program that implements the Axisymmetri...
Describes exact solution, , of the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-a...
Describes exact solution, , of the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-a...
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.
const bool project_exact_solution
If set to true, the program will project the exact solution.
const bool log_cg_convergence
If set to true, saves the residual at each iteration of the CG solver. The names of the files fit the...
const bool print_time_tables
If set to true, the program will print time tables on the screen.
Global settings for the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-axi/) numeri...
const bool print_time_tables
If set to true, the program will print time tables on the screen.
Implements the Axisymmetric - thick spherical coil with magnetic core (ssol-iii-axi/) numerical exper...
const Triangulation< dim > & get_tria() const
Returns a reference to triangulation.
const Vector< double > & get_solution() const
Returns a reference to the solution.
void clear()
Releases computer memory associated with the system matrix and right-hand side.
const DoFHandler< dim > & get_dof_handler() const
Returns a reference to dof handler.
unsigned int get_mapping_degree() const
Returns degree of the interpolating Lagrange polynomials used for mapping from the reference cell to ...