51 add_parameters(dealii::ParameterHandler & prm)
53 output_parameters.add_parameters(prm);
56 ApplicationBase(std::string parameter_file, MPI_Comm
const & comm)
58 pcout(std::cout, dealii::Utilities::MPI::this_mpi_process(mpi_comm) == 0),
59 parameter_file(parameter_file),
60 n_subdivisions_1d_hypercube(1)
64 virtual ~ApplicationBase()
69 set_parameters_throughput_study(
unsigned int const degree,
70 unsigned int const refine_space,
71 unsigned int const n_subdivisions_1d_hypercube)
73 this->param.degree = degree;
74 this->param.grid.n_refine_global = refine_space;
75 this->n_subdivisions_1d_hypercube = n_subdivisions_1d_hypercube;
79 set_parameters_convergence_study(
unsigned int const degree,
80 unsigned int const refine_space,
81 unsigned int const refine_time)
83 this->param.degree = degree;
84 this->param.grid.n_refine_global = refine_space;
85 this->param.n_refine_time = refine_time;
89 setup(std::shared_ptr<
Grid<dim>> & grid, std::shared_ptr<dealii::Mapping<dim>> & mapping)
96 param.print(pcout,
"List of parameters:");
99 grid = std::make_shared<Grid<dim>>();
100 create_grid(*grid, mapping);
101 print_grid_info(pcout, *grid);
104 boundary_descriptor = std::make_shared<BoundaryDescriptor<dim>>();
105 set_boundary_descriptor();
106 verify_boundary_conditions<dim>(*boundary_descriptor, *grid);
109 field_functions = std::make_shared<FieldFunctions<dim>>();
110 set_field_functions();
113 virtual std::shared_ptr<PostProcessorBase<dim, Number>>
114 create_postprocessor() = 0;
117 get_parameters()
const
122 std::shared_ptr<BoundaryDescriptor<dim>
const>
123 get_boundary_descriptor()
const
125 return boundary_descriptor;
128 std::shared_ptr<FieldFunctions<dim>
const>
129 get_field_functions()
const
131 return field_functions;
138 dealii::ParameterHandler prm;
139 this->add_parameters(prm);
140 prm.parse_input(parameter_file,
"",
true,
true);
143 MPI_Comm
const mpi_comm;
145 dealii::ConditionalOStream pcout;
149 std::shared_ptr<BoundaryDescriptor<dim>> boundary_descriptor;
150 std::shared_ptr<FieldFunctions<dim>> field_functions;
152 std::string parameter_file;
154 unsigned int n_subdivisions_1d_hypercube;
160 set_parameters() = 0;
163 create_grid(
Grid<dim> & grid, std::shared_ptr<dealii::Mapping<dim>> & mapping) = 0;
166 set_boundary_descriptor() = 0;
169 set_field_functions() = 0;