From 9927c907ea08545401989d50ae203b170e68f05a Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sun, 23 Apr 2023 15:59:26 -0600 Subject: [PATCH] Also allow vector types that are can just wrap Vec objects. --- include/deal.II/lac/petsc_snes.h | 8 +++++++- include/deal.II/lac/petsc_ts.h | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/include/deal.II/lac/petsc_snes.h b/include/deal.II/lac/petsc_snes.h index 11c6db51e5..f69e2a2f36 100644 --- a/include/deal.II/lac/petsc_snes.h +++ b/include/deal.II/lac/petsc_snes.h @@ -29,6 +29,11 @@ # include +# if defined(DEAL_II_HAVE_CXX20) +# include +# endif + + DEAL_II_NAMESPACE_OPEN namespace PETScWrappers @@ -224,7 +229,8 @@ namespace PETScWrappers template - DEAL_II_CXX20_REQUIRES(concepts::is_dealii_petsc_vector_type) + DEAL_II_CXX20_REQUIRES((concepts::is_dealii_petsc_vector_type || + std::constructible_from)) class NonlinearSolver { public: diff --git a/include/deal.II/lac/petsc_ts.h b/include/deal.II/lac/petsc_ts.h index 64e9cb235f..af2019058d 100644 --- a/include/deal.II/lac/petsc_ts.h +++ b/include/deal.II/lac/petsc_ts.h @@ -29,6 +29,10 @@ # include +# if defined(DEAL_II_HAVE_CXX20) +# include +# endif + DEAL_II_NAMESPACE_OPEN namespace PETScWrappers @@ -289,7 +293,8 @@ namespace PETScWrappers template - DEAL_II_CXX20_REQUIRES(concepts::is_dealii_petsc_vector_type) + DEAL_II_CXX20_REQUIRES((concepts::is_dealii_petsc_vector_type || + std::constructible_from)) class TimeStepper { public: -- 2.39.5