49 add_parameters(dealii::ParameterHandler & prm)
51 output_parameters.add_parameters(prm);
54 ApplicationBase(std::string parameter_file, MPI_Comm
const & comm)
56 pcout(std::cout, dealii::Utilities::MPI::this_mpi_process(mpi_comm) == 0),
57 parameter_file(parameter_file),
58 n_subdivisions_1d_hypercube(1)
62 virtual ~ApplicationBase()
68 std::shared_ptr<dealii::Mapping<dim>> & mapping,
76 param.print(pcout,
"List of parameters:");
79 grid = std::make_shared<Grid<dim>>();
80 create_grid(*grid, mapping, multigrid_mappings);
81 print_grid_info(pcout, *grid);
84 boundary_descriptor = std::make_shared<BoundaryDescriptor<dim>>();
85 set_boundary_descriptor();
86 verify_boundary_conditions(*boundary_descriptor, *grid);
89 material_descriptor = std::make_shared<MaterialDescriptor>();
90 set_material_descriptor();
93 field_functions = std::make_shared<FieldFunctions<dim>>();
94 set_field_functions();
98 set_parameters_throughput_study(
unsigned int const degree,
99 unsigned int const refine_space,
100 unsigned int const n_subdivisions_1d_hypercube)
102 this->param.degree = degree;
103 this->param.grid.n_refine_global = refine_space;
104 this->n_subdivisions_1d_hypercube = n_subdivisions_1d_hypercube;
108 set_parameters_convergence_study(
unsigned int const degree,
109 unsigned int const refine_space,
110 unsigned int const refine_time)
112 this->param.degree = degree;
113 this->param.grid.n_refine_global = refine_space;
114 this->param.n_refine_time = refine_time;
117 virtual std::shared_ptr<PostProcessor<dim, Number>>
118 create_postprocessor() = 0;
121 get_parameters()
const
126 std::shared_ptr<BoundaryDescriptor<dim>
const>
127 get_boundary_descriptor()
const
129 return boundary_descriptor;
132 std::shared_ptr<MaterialDescriptor const>
133 get_material_descriptor()
const
135 return material_descriptor;
138 std::shared_ptr<FieldFunctions<dim>
const>
139 get_field_functions()
const
141 return field_functions;
148 dealii::ParameterHandler prm;
149 this->add_parameters(prm);
150 prm.parse_input(parameter_file,
"",
true,
true);
153 MPI_Comm
const mpi_comm;
155 dealii::ConditionalOStream pcout;
159 std::shared_ptr<BoundaryDescriptor<dim>> boundary_descriptor;
160 std::shared_ptr<MaterialDescriptor> material_descriptor;
161 std::shared_ptr<FieldFunctions<dim>> field_functions;
163 std::string parameter_file;
165 unsigned int n_subdivisions_1d_hypercube;
171 set_parameters() = 0;
175 std::shared_ptr<dealii::Mapping<dim>> & mapping,
179 set_boundary_descriptor() = 0;
182 set_material_descriptor() = 0;
185 set_field_functions() = 0;