From f62eab0a0393753649901027e23468738e0be297 Mon Sep 17 00:00:00 2001 From: schnellerhase <56360279+schnellerhase@users.noreply.github.com> Date: Wed, 29 Jan 2025 22:49:36 +0100 Subject: [PATCH 1/4] Move dolfinx wrapper headers to dolfinx_wrappers/ --- python/dolfinx/wrappers/{ => dolfinx_wrappers}/MPICommWrapper.h | 0 python/dolfinx/wrappers/{ => dolfinx_wrappers}/array.h | 0 python/dolfinx/wrappers/{ => dolfinx_wrappers}/caster_mpi.h | 0 python/dolfinx/wrappers/{ => dolfinx_wrappers}/caster_petsc.h | 0 python/dolfinx/wrappers/{ => dolfinx_wrappers}/mesh.h | 0 python/dolfinx/wrappers/{ => dolfinx_wrappers}/numpy_dtype.h | 0 python/dolfinx/wrappers/{ => dolfinx_wrappers}/pycoeff.h | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename python/dolfinx/wrappers/{ => dolfinx_wrappers}/MPICommWrapper.h (100%) rename python/dolfinx/wrappers/{ => dolfinx_wrappers}/array.h (100%) rename python/dolfinx/wrappers/{ => dolfinx_wrappers}/caster_mpi.h (100%) rename python/dolfinx/wrappers/{ => dolfinx_wrappers}/caster_petsc.h (100%) rename python/dolfinx/wrappers/{ => dolfinx_wrappers}/mesh.h (100%) rename python/dolfinx/wrappers/{ => dolfinx_wrappers}/numpy_dtype.h (100%) rename python/dolfinx/wrappers/{ => dolfinx_wrappers}/pycoeff.h (100%) diff --git a/python/dolfinx/wrappers/MPICommWrapper.h b/python/dolfinx/wrappers/dolfinx_wrappers/MPICommWrapper.h similarity index 100% rename from python/dolfinx/wrappers/MPICommWrapper.h rename to python/dolfinx/wrappers/dolfinx_wrappers/MPICommWrapper.h diff --git a/python/dolfinx/wrappers/array.h b/python/dolfinx/wrappers/dolfinx_wrappers/array.h similarity index 100% rename from python/dolfinx/wrappers/array.h rename to python/dolfinx/wrappers/dolfinx_wrappers/array.h diff --git a/python/dolfinx/wrappers/caster_mpi.h b/python/dolfinx/wrappers/dolfinx_wrappers/caster_mpi.h similarity index 100% rename from python/dolfinx/wrappers/caster_mpi.h rename to python/dolfinx/wrappers/dolfinx_wrappers/caster_mpi.h diff --git a/python/dolfinx/wrappers/caster_petsc.h b/python/dolfinx/wrappers/dolfinx_wrappers/caster_petsc.h similarity index 100% rename from python/dolfinx/wrappers/caster_petsc.h rename to python/dolfinx/wrappers/dolfinx_wrappers/caster_petsc.h diff --git a/python/dolfinx/wrappers/mesh.h b/python/dolfinx/wrappers/dolfinx_wrappers/mesh.h similarity index 100% rename from python/dolfinx/wrappers/mesh.h rename to python/dolfinx/wrappers/dolfinx_wrappers/mesh.h diff --git a/python/dolfinx/wrappers/numpy_dtype.h b/python/dolfinx/wrappers/dolfinx_wrappers/numpy_dtype.h similarity index 100% rename from python/dolfinx/wrappers/numpy_dtype.h rename to python/dolfinx/wrappers/dolfinx_wrappers/numpy_dtype.h diff --git a/python/dolfinx/wrappers/pycoeff.h b/python/dolfinx/wrappers/dolfinx_wrappers/pycoeff.h similarity index 100% rename from python/dolfinx/wrappers/pycoeff.h rename to python/dolfinx/wrappers/dolfinx_wrappers/pycoeff.h From 5cd00f03ab09a0a567a5ecb8ef7225837aa6b0bf Mon Sep 17 00:00:00 2001 From: schnellerhase <56360279+schnellerhase@users.noreply.github.com> Date: Wed, 29 Jan 2025 22:50:06 +0100 Subject: [PATCH 2/4] Adapt to new header location --- python/dolfinx/wrappers/assemble.cpp | 4 ++-- python/dolfinx/wrappers/common.cpp | 6 +++--- python/dolfinx/wrappers/fem.cpp | 6 +++--- python/dolfinx/wrappers/geometry.cpp | 4 ++-- python/dolfinx/wrappers/graph.cpp | 2 +- python/dolfinx/wrappers/io.cpp | 4 ++-- python/dolfinx/wrappers/la.cpp | 6 +++--- python/dolfinx/wrappers/mesh.cpp | 10 +++++----- python/dolfinx/wrappers/petsc.cpp | 8 ++++---- python/dolfinx/wrappers/refinement.cpp | 6 +++--- 10 files changed, 28 insertions(+), 28 deletions(-) diff --git a/python/dolfinx/wrappers/assemble.cpp b/python/dolfinx/wrappers/assemble.cpp index c897d383a77..28f8a070cd6 100644 --- a/python/dolfinx/wrappers/assemble.cpp +++ b/python/dolfinx/wrappers/assemble.cpp @@ -4,8 +4,8 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "array.h" -#include "pycoeff.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/pycoeff.h" #include #include #include diff --git a/python/dolfinx/wrappers/common.cpp b/python/dolfinx/wrappers/common.cpp index ff2a5e12516..c3393efad67 100644 --- a/python/dolfinx/wrappers/common.cpp +++ b/python/dolfinx/wrappers/common.cpp @@ -4,9 +4,9 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "MPICommWrapper.h" -#include "array.h" -#include "caster_mpi.h" +#include "dolfinx_wrappers/MPICommWrapper.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/caster_mpi.h" #include #include #include diff --git a/python/dolfinx/wrappers/fem.cpp b/python/dolfinx/wrappers/fem.cpp index e824ecb9960..7d02481ee2e 100644 --- a/python/dolfinx/wrappers/fem.cpp +++ b/python/dolfinx/wrappers/fem.cpp @@ -4,9 +4,9 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "array.h" -#include "caster_mpi.h" -#include "numpy_dtype.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/caster_mpi.h" +#include "dolfinx_wrappers/numpy_dtype.h" #include #include #include diff --git a/python/dolfinx/wrappers/geometry.cpp b/python/dolfinx/wrappers/geometry.cpp index 2fa35732704..d997196ea13 100644 --- a/python/dolfinx/wrappers/geometry.cpp +++ b/python/dolfinx/wrappers/geometry.cpp @@ -4,8 +4,8 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "array.h" -#include "caster_mpi.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/caster_mpi.h" #include #include #include diff --git a/python/dolfinx/wrappers/graph.cpp b/python/dolfinx/wrappers/graph.cpp index fa07807c9ae..9fd231e4a9b 100644 --- a/python/dolfinx/wrappers/graph.cpp +++ b/python/dolfinx/wrappers/graph.cpp @@ -4,7 +4,7 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "caster_mpi.h" +#include "dolfinx_wrappers/caster_mpi.h" #include #include #include diff --git a/python/dolfinx/wrappers/io.cpp b/python/dolfinx/wrappers/io.cpp index 785007f8bff..1181dcb71be 100644 --- a/python/dolfinx/wrappers/io.cpp +++ b/python/dolfinx/wrappers/io.cpp @@ -4,8 +4,8 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "array.h" -#include "caster_mpi.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/caster_mpi.h" #include #include #include diff --git a/python/dolfinx/wrappers/la.cpp b/python/dolfinx/wrappers/la.cpp index b04209c277b..1ea307cc38a 100644 --- a/python/dolfinx/wrappers/la.cpp +++ b/python/dolfinx/wrappers/la.cpp @@ -4,9 +4,9 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "array.h" -#include "caster_mpi.h" -#include "numpy_dtype.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/caster_mpi.h" +#include "dolfinx_wrappers/numpy_dtype.h" #include #include #include diff --git a/python/dolfinx/wrappers/mesh.cpp b/python/dolfinx/wrappers/mesh.cpp index 53199b6accb..12d2392cfbd 100644 --- a/python/dolfinx/wrappers/mesh.cpp +++ b/python/dolfinx/wrappers/mesh.cpp @@ -4,11 +4,11 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "mesh.h" -#include "MPICommWrapper.h" -#include "array.h" -#include "caster_mpi.h" -#include "numpy_dtype.h" +#include "dolfinx_wrappers/mesh.h" +#include "dolfinx_wrappers/MPICommWrapper.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/caster_mpi.h" +#include "dolfinx_wrappers/numpy_dtype.h" #include #include #include diff --git a/python/dolfinx/wrappers/petsc.cpp b/python/dolfinx/wrappers/petsc.cpp index 553bffe0ca4..1380af9040f 100644 --- a/python/dolfinx/wrappers/petsc.cpp +++ b/python/dolfinx/wrappers/petsc.cpp @@ -6,10 +6,10 @@ #if defined(HAS_PETSC) && defined(HAS_PETSC4PY) -#include "array.h" -#include "caster_mpi.h" -#include "caster_petsc.h" -#include "pycoeff.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/caster_mpi.h" +#include "dolfinx_wrappers/caster_petsc.h" +#include "dolfinx_wrappers/pycoeff.h" #include #include #include diff --git a/python/dolfinx/wrappers/refinement.cpp b/python/dolfinx/wrappers/refinement.cpp index d9b86fcf781..1e7c73a8e96 100644 --- a/python/dolfinx/wrappers/refinement.cpp +++ b/python/dolfinx/wrappers/refinement.cpp @@ -4,9 +4,9 @@ // // SPDX-License-Identifier: LGPL-3.0-or-later -#include "MPICommWrapper.h" -#include "array.h" -#include "mesh.h" +#include "dolfinx_wrappers/MPICommWrapper.h" +#include "dolfinx_wrappers/array.h" +#include "dolfinx_wrappers/mesh.h" #include #include #include From 1bb2eab87ce957d8f8572e180e572fa8396a3de6 Mon Sep 17 00:00:00 2001 From: schnellerhase <56360279+schnellerhase@users.noreply.github.com> Date: Wed, 29 Jan 2025 22:51:17 +0100 Subject: [PATCH 3/4] Remove not used get_include_path --- python/dolfinx/wrappers/__init__.py | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 python/dolfinx/wrappers/__init__.py diff --git a/python/dolfinx/wrappers/__init__.py b/python/dolfinx/wrappers/__init__.py deleted file mode 100644 index 9757a1d6da5..00000000000 --- a/python/dolfinx/wrappers/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (C) 2020 Garth N. Wells -# -# This file is part of DOLFINx (https://www.fenicsproject.org) -# -# SPDX-License-Identifier: LGPL-3.0-or-later - - -def get_include_path(): - """Return path to nanobind wrapper header files""" - import pathlib - - return pathlib.Path(__file__).parent From 795eba0d249e91356b1ed615e7e9c5f93b44037e Mon Sep 17 00:00:00 2001 From: schnellerhase <56360279+schnellerhase@users.noreply.github.com> Date: Fri, 31 Jan 2025 14:25:45 +0100 Subject: [PATCH 4/4] Move py_to_cpp_coeffs into dolfinx_wrappers namespace --- python/dolfinx/wrappers/assemble.cpp | 27 ++++++++++--------- .../wrappers/dolfinx_wrappers/pycoeff.h | 3 +++ python/dolfinx/wrappers/petsc.cpp | 6 ++--- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/python/dolfinx/wrappers/assemble.cpp b/python/dolfinx/wrappers/assemble.cpp index 28f8a070cd6..6883111b7fc 100644 --- a/python/dolfinx/wrappers/assemble.cpp +++ b/python/dolfinx/wrappers/assemble.cpp @@ -229,7 +229,7 @@ void declare_assembly_functions(nb::module_& m) { return dolfinx::fem::assemble_scalar( M, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients)); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients)); }, nb::arg("M"), nb::arg("constants"), nb::arg("coefficients"), "Assemble functional over mesh with provided constants and " @@ -247,7 +247,7 @@ void declare_assembly_functions(nb::module_& m) dolfinx::fem::assemble_vector( std::span(b.data(), b.size()), L, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients)); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients)); }, nb::arg("b"), nb::arg("L"), nb::arg("constants"), nb::arg("coeffs"), "Assemble linear form into an existing vector with pre-packed constants " @@ -288,63 +288,63 @@ void declare_assembly_functions(nb::module_& m) dolfinx::fem::assemble_matrix( A.mat_add_values(), a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 2) { auto mat_add = A.template mat_add_values<2, 2>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 3) { auto mat_add = A.template mat_add_values<3, 3>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 4) { auto mat_add = A.template mat_add_values<4, 4>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 5) { auto mat_add = A.template mat_add_values<5, 5>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 6) { auto mat_add = A.template mat_add_values<6, 6>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 7) { auto mat_add = A.template mat_add_values<7, 7>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 8) { auto mat_add = A.template mat_add_values<8, 8>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else if (data_bs[0] == 9) { auto mat_add = A.template mat_add_values<9, 9>(); dolfinx::fem::assemble_matrix( mat_add, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else throw std::runtime_error("Block size not supported in Python"); @@ -468,8 +468,9 @@ void declare_assembly_functions(nb::module_& m) std::vector, std::pair, int>>> _coeffs; - std::ranges::transform(coeffs, std::back_inserter(_coeffs), - [](auto& c) { return py_to_cpp_coeffs(c); }); + std::ranges::transform( + coeffs, std::back_inserter(_coeffs), + [](auto& c) { return dolfinx_wrappers::py_to_cpp_coeffs(c); }); dolfinx::fem::apply_lifting(std::span(b.data(), b.size()), _a, _constants, _coeffs, _bcs, _x0, alpha); diff --git a/python/dolfinx/wrappers/dolfinx_wrappers/pycoeff.h b/python/dolfinx/wrappers/dolfinx_wrappers/pycoeff.h index a056bd51400..2a2ed0058b8 100644 --- a/python/dolfinx/wrappers/dolfinx_wrappers/pycoeff.h +++ b/python/dolfinx/wrappers/dolfinx_wrappers/pycoeff.h @@ -10,6 +10,8 @@ #include #include +namespace dolfinx_wrappers +{ template std::map, std::pair, int>> @@ -30,3 +32,4 @@ py_to_cpp_coeffs( }); return c; } +} // namespace dolfinx_wrappers diff --git a/python/dolfinx/wrappers/petsc.cpp b/python/dolfinx/wrappers/petsc.cpp index 1380af9040f..d6edc3bb4ec 100644 --- a/python/dolfinx/wrappers/petsc.cpp +++ b/python/dolfinx/wrappers/petsc.cpp @@ -333,14 +333,14 @@ void petsc_fem_module(nb::module_& m) a.function_spaces()[1]->dofmap()->bs(), ADD_VALUES); dolfinx::fem::assemble_matrix( set_fn, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } else { dolfinx::fem::assemble_matrix( dolfinx::la::petsc::Matrix::set_block_fn(A, ADD_VALUES), a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), _bcs); + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), _bcs); } }, nb::arg("A"), nb::arg("a"), nb::arg("constants"), nb::arg("coeffs"), @@ -372,7 +372,7 @@ void petsc_fem_module(nb::module_& m) dolfinx::fem::assemble_matrix( set_fn, a, std::span(constants.data(), constants.size()), - py_to_cpp_coeffs(coefficients), + dolfinx_wrappers::py_to_cpp_coeffs(coefficients), std::span(rows0.data(), rows0.size()), std::span(rows1.data(), rows1.size())); },