Skip to content

Commit 47108fd

Browse files
improve testing, coverage and fix examples
1 parent ba3769b commit 47108fd

13 files changed

+137
-28
lines changed

.github/workflows/CI.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,11 @@ jobs:
137137
- name: Run tests
138138
run: |
139139
export PYTHONPATH="$PWD/build"
140-
mpirun -np 1 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests
141-
mpirun -np 2 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests
142-
mpirun -np 3 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests
143-
mpirun -np 4 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests
140+
mpirun -np 1 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests --ignore=tests/test_hmatrix.py
141+
mpirun -np 2 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests --ignore=tests/test_hmatrix.py
142+
mpirun -np 3 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests --ignore=tests/test_hmatrix.py
143+
mpirun -np 4 ${{ matrix.MPIEXEC_PREFLAGS }} python3 -m pytest tests --ignore=tests/test_hmatrix.py
144+
python3 -m pytest tests/test_hmatrix.py
144145
145146
- name: Check format
146147
if: matrix.CODE_COVERAGE == 'ON'

example/use_block_jacobi_solver.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
logging.basicConfig(level=logging.INFO)
1212

1313
# Random geometry
14-
size = 500
14+
size = 1000
1515
dimension = 3
1616

1717
[points, _] = create_random_geometries(dimension, size, size)
@@ -20,12 +20,12 @@
2020
# Htool parameters
2121
eta = 10
2222
epsilon = 1e-3
23-
minclustersize = 10
23+
maximal_leaf_size = 10
2424
number_of_children = 2
2525

2626
# Build clusters
2727
cluster_builder = Htool.ClusterTreeBuilder()
28-
cluster_builder.set_minclustersize(minclustersize)
28+
cluster_builder.set_maximal_leaf_size(maximal_leaf_size)
2929
cluster: Htool.Cluster = cluster_builder.create_cluster_tree(
3030
points, number_of_children, mpi4py.MPI.COMM_WORLD.size
3131
)

example/use_cluster_with_given_partition.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313

1414

1515
# Parameters
16-
minclustersize = 10
16+
maximal_leaf_size = 10
1717
number_of_children = 2
1818

1919
# Build clusters
2020
cluster_builder = Htool.ClusterTreeBuilder()
21-
cluster_builder.set_minclustersize(minclustersize)
21+
cluster_builder.set_maximal_leaf_size(maximal_leaf_size)
2222

2323
target_cluster: Htool.Cluster = cluster_builder.create_cluster_tree(
2424
target_points,

example/use_custom_dense_block_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
# Htool parameters
2020
eta = 10
2121
epsilon = 1e-3
22-
minclustersize = 10
22+
maximal_leaf_size = 10
2323
number_of_children = 2
2424

2525
# Build clusters
2626
cluster_builder = Htool.ClusterTreeBuilder()
27-
cluster_builder.set_minclustersize(minclustersize)
27+
cluster_builder.set_maximal_leaf_size(maximal_leaf_size)
2828
target_cluster: Htool.Cluster = cluster_builder.create_cluster_tree(
2929
points, number_of_children, mpi4py.MPI.COMM_WORLD.size
3030
)

example/use_custom_local_operator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515

1616

1717
# Htool parameters
18-
minclustersize = 10
18+
maximal_leaf_size = 10
1919
number_of_children = 2
2020

2121
# Build clusters
2222
cluster_builder = Htool.ClusterTreeBuilder()
23-
cluster_builder.set_minclustersize(minclustersize)
23+
cluster_builder.set_maximal_leaf_size(maximal_leaf_size)
2424
target_cluster: Htool.Cluster = cluster_builder.create_cluster_tree(
2525
target_points,
2626
number_of_children,

example/use_custom_low_rank_approximation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
# Htool parameters
2323
eta = 100
2424
epsilon = 1e-3
25-
minclustersize = 10
25+
maximal_leaf_size = 10
2626
number_of_children = 2
2727

2828
# Build clusters
2929
cluster_builder = Htool.ClusterTreeBuilder()
30-
cluster_builder.set_minclustersize(minclustersize)
30+
cluster_builder.set_maximal_leaf_size(maximal_leaf_size)
3131
target_cluster: Htool.Cluster = cluster_builder.create_cluster_tree(
3232
target_points,
3333
number_of_children,

example/use_hmatrix_compression.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
# Htool parameters
2222
eta = 10
2323
epsilon = 1e-3
24-
minclustersize = 10
24+
maximal_leaf_size = 10
2525
number_of_children = 2
2626

2727
# Build clusters
2828
cluster_tree_builder = Htool.ClusterTreeBuilder()
29-
cluster_tree_builder.set_minclustersize(minclustersize)
29+
cluster_tree_builder.set_maximal_leaf_size(maximal_leaf_size)
3030
target_cluster: Htool.Cluster = cluster_tree_builder.create_cluster_tree(
3131
target_points,
3232
number_of_children,

example/use_local_hmatrix_compression.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
# Htool parameters
2626
eta = 10
2727
epsilon = 1e-3
28-
minclustersize = 10
28+
maximal_leaf_size = 10
2929
number_of_children = 2
3030

3131
# Build clusters
3232
cluster_builder = Htool.ClusterTreeBuilder()
33-
cluster_builder.set_minclustersize(minclustersize)
33+
cluster_builder.set_maximal_leaf_size(maximal_leaf_size)
3434
target_cluster: Htool.Cluster = cluster_builder.create_cluster_tree(
3535
target_points,
3636
number_of_children,
@@ -65,10 +65,7 @@
6565
generator,
6666
target_cluster,
6767
source_cluster,
68-
epsilon,
69-
eta,
70-
"N",
71-
"N",
68+
Htool.HMatrixTreeBuilder(epsilon, eta, "N", "N"),
7269
mpi4py.MPI.COMM_WORLD,
7370
)
7471
distributed_operator = default_local_approximation.distributed_operator
@@ -91,7 +88,7 @@
9188
off_diagonal_partition[0, 1] = off_diagonal_nc_1 + local_nc
9289
off_diagonal_partition[1, 1] = off_diagonal_nc_2
9390
off_diagonal_cluster: Htool.Cluster = cluster_builder.create_cluster_tree(
94-
permuted_source_points, number_of_children, 2, off_diagonal_partition
91+
permuted_source_points, number_of_children, 2, partition=off_diagonal_partition
9592
)
9693

9794
off_diagonal_generator = CustomGenerator(target_points, permuted_source_points)

src/htool/clustering/cluster_tree_builder.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ void declare_cluster_builder(py::module &m, const std::string &className) {
2626
auto weights_ptr = weights.has_value() ? weights.value().data() : nullptr;
2727
return self.create_cluster_tree(coordinates.shape()[1], coordinates.shape()[0], coordinates.data(), radii_ptr, weights_ptr, number_of_children, size_of_partition, partition_ptr);
2828
},
29-
py::arg("coordinates"),
29+
py::arg("coordinates"), // LCOV_EXCL_START
3030
py::arg("number_of_children"),
3131
py::arg("size_of_partition"),
3232
py::kw_only(),
3333
py::arg("partition") = py::none(),
3434
py::arg("radii") = py::none(),
3535
py::arg("weights") = py::none());
36+
// LCOV_EXCL_STOP
3637

3738
py_class.def("set_maximal_leaf_size", &Class::set_maximal_leaf_size);
3839
py_class.def("set_partitioning_strategy", &Class::set_partitioning_strategy);

src/htool/hmatrix/hmatrix_tree_builder.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@ void declare_hmatrix_builder(py::module &m, const std::string &className) {
2323
py_class.def(py::init([](underlying_type<CoefficientPrecision> epsilon, CoordinatePrecision eta, char symmetry, char UPLO, int reqrank, std::shared_ptr<VirtualLowRankGeneratorPython<CoefficientPrecision>> low_rank_strategy) {
2424
return std::unique_ptr<Class>(new Class(epsilon, eta, symmetry, UPLO, reqrank, low_rank_strategy));
2525
}),
26-
py::arg("epsilon"),
26+
py::arg("epsilon"), // LCOV_EXCL_START
2727
py::arg("eta"),
2828
py::arg("symmetry"),
2929
py::arg("UPLO"),
3030
py::kw_only(),
3131
py::arg("reqrank") = -1,
3232
py::arg("low_rank_strategy") = nullptr);
33+
// LCOV_EXCL_STOP
3334

3435
// Build
3536
py_class.def("build", [](const Class &self, const VirtualGenerator<CoefficientPrecision> &generator, const Cluster<CoordinatePrecision> &target_cluster, const Cluster<CoordinatePrecision> &source_cluster, int target_partition_number, int partition_number_for_symmetry) { return self.build(generator, target_cluster, source_cluster, target_partition_number, partition_number_for_symmetry); }, py::arg("generator"), py::arg("target_cluster"), py::arg("source_cluster"), py::arg("target_partition_number") = -1, py::arg("partition_number_for_symmetry") = -1);

0 commit comments

Comments
 (0)