22 #ifndef poisson_include_file
23 #define poisson_include_file
64 #define FORCE_USE_OF_TRILINOS
68 #if defined(DEAL_II_WITH_PETSC) && !defined(DEAL_II_PETSC_WITH_COMPLEX) && \
69 !(defined(DEAL_II_WITH_TRILINOS) && defined(FORCE_USE_OF_TRILINOS))
70 using namespace dealii::LinearAlgebraPETSc;
72 #elif defined(DEAL_II_WITH_TRILINOS)
73 using namespace dealii::LinearAlgebraTrilinos;
75 # error DEAL_II_WITH_PETSC or DEAL_II_WITH_TRILINOS required
81 template <
typename Integral>
111 parse_string(
const std::string &par);
118 assemble_system_one_cell(
125 copy_one_cell(
const CopyData ©);
140 assemble_system_on_range(
151 output_results(
const unsigned cycle)
const;
159 std::unique_ptr<FE_Q<dim>> fe;
160 std::unique_ptr<MappingQGeneric<dim>>
mapping;
175 std::string estimator_type =
"exact";
176 std::string marking_strategy =
"global";
177 std::pair<double, double> coarsening_and_refinement_factors = {0.03, 0.3};
188 unsigned int fe_degree = 1;
189 unsigned int mapping_degree = 1;
190 unsigned int n_refinements = 4;
191 unsigned int n_refinement_cycles = 1;
192 std::string output_filename =
"poisson";
193 int number_of_threads = -1;
195 std::set<types::boundary_id> dirichlet_ids = {0};
196 std::set<types::boundary_id> neumann_ids;
198 std::string forcing_term_expression =
"1";
199 std::string coefficient_expression =
"1";
200 std::string exact_solution_expression =
"0";
201 std::string dirichlet_boundary_conditions_expression =
"0";
202 std::string neumann_boundary_conditions_expression =
"0";
203 std::string pre_refinement_expression =
"0";
206 std::string grid_generator_function =
"hyper_cube";
207 std::string grid_generator_arguments =
"0: 1: false";
211 bool use_direct_solver =
true;
215 template <
typename Integral>