diff --git a/backends/dealii/include/poisson.h b/backends/dealii/include/poisson.h index d8fb339..ed9d549 100644 --- a/backends/dealii/include/poisson.h +++ b/backends/dealii/include/poisson.h @@ -80,11 +80,17 @@ class PoissonSolver VectorTools::create_right_hand_side( dof_handler, QGauss(fe.degree + 1), rhs, system_rhs, constraints); - VectorTools::create_boundary_right_hand_side(dof_handler, - QGauss(fe.degree + 1), - neumann_bc, - system_rhs, - neumann_boundary_ids); + if constexpr (dim > 1 && dim == spacedim) + VectorTools::create_boundary_right_hand_side(dof_handler, + QGauss(fe.degree + + 1), + neumann_bc, + system_rhs, + neumann_boundary_ids); + else + { + AssertThrow(false, ExcNotImplemented()); + } MatrixTools::create_laplace_matrix(dof_handler, QGauss(fe.degree + 1), diff --git a/backends/dealii/include/register_types.h b/backends/dealii/include/register_types.h index 1066aea..2ccad6f 100644 --- a/backends/dealii/include/register_types.h +++ b/backends/dealii/include/register_types.h @@ -92,15 +92,16 @@ namespace coral if constexpr (dim == spacedim) { const std::string dims_short = std::to_string(dim); - const std::string dims_full = dims_short + ", " + std::to_string(spacedim); + const std::string dims_full = + dims_short + ", " + std::to_string(spacedim); // Alias for all dimensional types coral::detail::set_type_alias>( "dealii::Triangulation<" + dims_full + ">"); coral::detail::set_type_alias>( "dealii::FiniteElement<" + dims_full + ">"); - coral::detail::set_type_alias>( - "dealii::FE_Q<" + dims_full + ">"); + coral::detail::set_type_alias>("dealii::FE_Q<" + + dims_full + ">"); coral::detail::set_type_alias>( "dealii::DoFHandler<" + dims_full + ">"); coral::detail::set_type_alias>( @@ -171,9 +172,12 @@ namespace coral register_all_types() { register_non_dimensional_types(); + register_dimensional_types<1, 1>(); + register_dimensional_types<1, 2>(); + register_dimensional_types<1, 3>(); register_dimensional_types<2, 2>(); - // register_dimensional_types<3, 3>(); - // register_dimensional_types<2, 3>(); + register_dimensional_types<2, 3>(); + register_dimensional_types<3, 3>(); }; } // namespace coral diff --git a/backends/dealii/src/poisson.cc b/backends/dealii/src/poisson.cc index 5cbec69..605559d 100644 --- a/backends/dealii/src/poisson.cc +++ b/backends/dealii/src/poisson.cc @@ -1,4 +1,8 @@ #include "poisson.h" +template class PoissonSolver<1, 1>; +template class PoissonSolver<1, 2>; +template class PoissonSolver<1, 3>; template class PoissonSolver<2, 2>; +template class PoissonSolver<2, 3>; template class PoissonSolver<3, 3>; \ No newline at end of file