@@ -36,27 +36,39 @@ def compute_coarse_space(self, Ai, Bi):
3636@pytest .mark .parametrize (
3737 "mu,symmetry,ddm_builder,hpddm_schwarz_method,hpddm_schwarz_coarse_correction,geneo_type" ,
3838 [
39- # (1, "N", "BlockJacobi", "none", "none", "none"),
40- # (1, "N", "BlockJacobi", "asm", "none", "none"),
41- # (1, "N", "BlockJacobi", "ras", "none", "none"),
42- # (1, "N", "DDMWithHMatrixPlusOverlap", "asm", "none", "none"),
43- # (1, "N", "DDMWithHMatrixPlusOverlap", "ras", "none", "none"),
44- # (1, "N", "DDMWithHMatrix", "asm", "none", "none"),
45- # (1, "N", "DDMWithHMatrix", "ras", "none", "none"),
46- # (10, "N", "BlockJacobi", "none", "none", "none"),
47- # (10, "N", "BlockJacobi", "asm", "none", "none"),
48- # (10, "N", "BlockJacobi", "ras", "none", "none"),
49- # (10, "N", "DDMWithHMatrixPlusOverlap", "asm", "none", "none"),
50- # (10, "N", "DDMWithHMatrixPlusOverlap", "ras", "none", "none"),
51- # (10, "N", "DDMWithHMatrix", "asm", "none", "none"),
52- # (10, "N", "DDMWithHMatrix", "ras", "none", "none"),
39+ (1 , "N" , "BlockJacobi" , "none" , "none" , "none" ),
40+ (1 , "N" , "BlockJacobi" , "asm" , "none" , "none" ),
41+ (1 , "N" , "BlockJacobi" , "ras" , "none" , "none" ),
42+ (1 , "N" , "BlockJacobiDense" , "none" , "none" , "none" ),
43+ (1 , "N" , "BlockJacobiDense" , "asm" , "none" , "none" ),
44+ (1 , "N" , "BlockJacobiDense" , "ras" , "none" , "none" ),
45+ (1 , "N" , "DDMWithHMatrixPlusOverlap" , "asm" , "none" , "none" ),
46+ (1 , "N" , "DDMWithHMatrixPlusOverlap" , "ras" , "none" , "none" ),
47+ (1 , "N" , "DDMWithHMatrix" , "asm" , "none" , "none" ),
48+ (1 , "N" , "DDMWithHMatrix" , "ras" , "none" , "none" ),
49+ (1 , "N" , "DDMWithHMatrixDense" , "asm" , "none" , "none" ),
50+ (1 , "N" , "DDMWithHMatrixDense" , "ras" , "none" , "none" ),
51+ (10 , "N" , "BlockJacobi" , "none" , "none" , "none" ),
52+ (10 , "N" , "BlockJacobi" , "asm" , "none" , "none" ),
53+ (10 , "N" , "BlockJacobi" , "ras" , "none" , "none" ),
54+ (10 , "N" , "BlockJacobiDense" , "none" , "none" , "none" ),
55+ (10 , "N" , "BlockJacobiDense" , "asm" , "none" , "none" ),
56+ (10 , "N" , "BlockJacobiDense" , "ras" , "none" , "none" ),
57+ (10 , "N" , "DDMWithHMatrixPlusOverlap" , "asm" , "none" , "none" ),
58+ (10 , "N" , "DDMWithHMatrixPlusOverlap" , "ras" , "none" , "none" ),
59+ (10 , "N" , "DDMWithHMatrix" , "asm" , "none" , "none" ),
60+ (10 , "N" , "DDMWithHMatrix" , "ras" , "none" , "none" ),
61+ (10 , "N" , "DDMWithHMatrixDense" , "asm" , "none" , "none" ),
62+ (10 , "N" , "DDMWithHMatrixDense" , "ras" , "none" , "none" ),
5363 (1 , "S" , "BlockJacobi" , "none" , "none" , "none" ),
5464 (1 , "S" , "BlockJacobi" , "asm" , "none" , "none" ),
5565 (1 , "S" , "BlockJacobi" , "ras" , "none" , "none" ),
5666 (1 , "S" , "DDMWithHMatrixPlusOverlap" , "asm" , "none" , "none" ),
5767 (1 , "S" , "DDMWithHMatrixPlusOverlap" , "ras" , "none" , "none" ),
5868 (1 , "S" , "DDMWithHMatrix" , "asm" , "none" , "none" ),
5969 (1 , "S" , "DDMWithHMatrix" , "ras" , "none" , "none" ),
70+ (1 , "S" , "DDMWithHMatrixDense" , "asm" , "none" , "none" ),
71+ (1 , "S" , "DDMWithHMatrixDense" , "ras" , "none" , "none" ),
6072 (10 , "S" , "BlockJacobi" , "none" , "none" , "none" ),
6173 (10 , "S" , "BlockJacobi" , "asm" , "none" , "none" ),
6274 (10 , "S" , "BlockJacobi" , "ras" , "none" , "none" ),
@@ -228,6 +240,18 @@ def test_ddm_solver(
228240 default_approximation .distributed_operator ,
229241 block_diagonal_hmatrix ,
230242 )
243+ elif ddm_builder == "BlockJacobiDense" :
244+ if symmetry == "S" :
245+ default_solver_builder = Htool .DDMSolverWithDenseLocalSolver (
246+ default_approximation .distributed_operator ,
247+ default_approximation .block_diagonal_hmatrix ,
248+ )
249+ else :
250+ default_solver_builder = Htool .ComplexDDMSolverWithDenseLocalSolver (
251+ default_approximation .distributed_operator ,
252+ default_approximation .block_diagonal_hmatrix ,
253+ )
254+ local_hmatrix = default_solver_builder .get_local_hmatrix ()
231255
232256 elif ddm_builder == "DDMWithHMatrixPlusOverlap" :
233257 block_diagonal_hmatrix = copy .deepcopy (
@@ -266,6 +290,8 @@ def test_ddm_solver(
266290 geometry ,
267291 Htool .ClusterTreeBuilder (),
268292 Htool .HMatrixTreeBuilder (epsilon , eta * 1.0 , symmetry , UPLO ),
293+ radii = None ,
294+ weights = None ,
269295 )
270296 else :
271297 default_solver_builder = Htool .ComplexDDMSolverBuilder (
@@ -278,10 +304,35 @@ def test_ddm_solver(
278304 geometry ,
279305 Htool .ClusterTreeBuilder (),
280306 Htool .ComplexHMatrixTreeBuilder (epsilon , eta * 1.0 , symmetry , UPLO ),
307+ radii = None ,
308+ weights = None ,
281309 )
282310 local_hmatrix = default_solver_builder .get_local_hmatrix ()
283311 Htool .recompression (local_hmatrix )
284312
313+ elif ddm_builder == "DDMWithHMatrixDense" :
314+ if symmetry == "S" :
315+ default_solver_builder = Htool .DDMSolverWithDenseLocalSolver (
316+ default_approximation .distributed_operator ,
317+ default_approximation .block_diagonal_hmatrix ,
318+ generator ,
319+ ovr_subdomain_to_global ,
320+ cluster_to_ovr_subdomain ,
321+ neighbors ,
322+ intersections ,
323+ )
324+ else :
325+ default_solver_builder = Htool .ComplexDDMSolverWithDenseLocalSolver (
326+ default_approximation .distributed_operator ,
327+ default_approximation .block_diagonal_hmatrix ,
328+ generator ,
329+ ovr_subdomain_to_global ,
330+ cluster_to_ovr_subdomain ,
331+ neighbors ,
332+ intersections ,
333+ )
334+ local_hmatrix = default_solver_builder .get_local_hmatrix ()
335+
285336 solver = default_solver_builder .solver
286337 distributed_operator = default_approximation .distributed_operator
287338 local_size_wo_overlap = len (cluster_to_ovr_subdomain )
0 commit comments