47 add_parameters(dealii::ParameterHandler & prm)
49 output_parameters.add_parameters(prm);
52 ApplicationBase(std::string parameter_file, MPI_Comm
const & comm)
54 pcout(std::cout, dealii::Utilities::MPI::this_mpi_process(mpi_comm) == 0),
55 parameter_file(parameter_file),
56 n_subdivisions_1d_hypercube(1)
60 virtual ~ApplicationBase()
65 set_parameters_throughput_study(
unsigned int const degree,
66 unsigned int const refine_space,
67 unsigned int const n_subdivisions_1d_hypercube)
69 this->param.degree = degree;
70 this->param.grid.n_refine_global = refine_space;
71 this->n_subdivisions_1d_hypercube = n_subdivisions_1d_hypercube;
75 set_parameters_convergence_study(
unsigned int const degree,
76 unsigned int const refine_space,
77 unsigned int const refine_time)
79 this->param.degree = degree;
80 this->param.grid.n_refine_global = refine_space;
81 this->param.n_refine_time = refine_time;
86 std::shared_ptr<dealii::Mapping<dim>> & mapping,
94 param.print(pcout,
"List of parameters:");
97 grid = std::make_shared<Grid<dim>>();
98 create_grid(*grid, mapping, multigrid_mappings);
99 print_grid_info(pcout, *grid);
102 boundary_descriptor = std::make_shared<BoundaryDescriptor<dim>>();
103 set_boundary_descriptor();
104 verify_boundary_conditions(*boundary_descriptor, *grid);
107 field_functions = std::make_shared<FieldFunctions<dim>>();
108 set_field_functions();
111 virtual std::shared_ptr<dealii::Function<dim>>
112 create_mesh_movement_function()
114 std::shared_ptr<dealii::Function<dim>> mesh_motion =
115 std::make_shared<dealii::Functions::ZeroFunction<dim>>(dim);
120 virtual std::shared_ptr<PostProcessorBase<dim, Number>>
121 create_postprocessor() = 0;
124 get_parameters()
const
129 std::shared_ptr<BoundaryDescriptor<dim>
const>
130 get_boundary_descriptor()
const
132 return boundary_descriptor;
135 std::shared_ptr<FieldFunctions<dim>
const>
136 get_field_functions()
const
138 return field_functions;
145 dealii::ParameterHandler prm;
146 this->add_parameters(prm);
147 prm.parse_input(parameter_file,
"",
true,
true);
150 MPI_Comm
const mpi_comm;
152 dealii::ConditionalOStream pcout;
156 std::shared_ptr<FieldFunctions<dim>> field_functions;
157 std::shared_ptr<BoundaryDescriptor<dim>> boundary_descriptor;
159 std::string parameter_file;
161 unsigned int n_subdivisions_1d_hypercube;
167 set_parameters() = 0;
171 std::shared_ptr<dealii::Mapping<dim>> & mapping,
175 set_boundary_descriptor() = 0;
178 set_field_functions() = 0;