Skip to content

LAPACK tests not working #150

@masterleinad

Description

@masterleinad

After updating deal.II, i.e. after dealii/dealii#7687, the LAPACK tests in test_hierarchy were not working (#138). One of the reasons is that the agglomerates might not have boundary conditions and hence the corresponding matrix has a non-trivial kernel shifting the diagonal entries slightly at least allows inverting the matrix (using UMFPACK). I observed this even before updating, i.e. with with the version in the image. After that the LAPACK tests are still failing due to the restriction matrix not being full-rank (possibly due to the spurious eigenvalues).
Just switching from LAPACK to ARPACK gives similar results as with Lanczos. Copying the reference values from the Lanczos tests to the ARPACK tests gives:

1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_16": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.11466298397904537 != 0.1148067738]. Relative difference exceeds tolerance [0.00125402 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = false; reordering = None; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = arpack; 
1: FE degree: 1
1: Convergence rate: 0.11
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_17": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.11469510272606935 != 0.1148067738]. Relative difference exceeds tolerance [0.000973634 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = false; reordering = None; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = lanczos; 
1: skip
1: FE degree: 1
1: Convergence rate: 0.30
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_19": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.2995474407510747 != 0.3012330587]. Relative difference exceeds tolerance [0.00562722 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = false; reordering = None; mesh_evaluator_type = DealIIMatrixFreeMeshEvaluator; eigensolver = lanczos; 
1: FE degree: 1
1: Convergence rate: 0.11
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_20": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.11466298397904537 != 0.1148067738]. Relative difference exceeds tolerance [0.00125402 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = false; reordering = Reverse Cuthill_McKee; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = arpack; 
1: FE degree: 1
1: Convergence rate: 0.11
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_21": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.11469510272606935 != 0.1148067738]. Relative difference exceeds tolerance [0.000973634 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = false; reordering = Reverse Cuthill_McKee; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = lanczos; 
1: skip
1: FE degree: 1
1: Convergence rate: 0.30
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_23": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.2995474407510747 != 0.3012330587]. Relative difference exceeds tolerance [0.00562722 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = false; reordering = Reverse Cuthill_McKee; mesh_evaluator_type = DealIIMatrixFreeMeshEvaluator; eigensolver = lanczos; 
1: FE degree: 1
1: Convergence rate: 0.10
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_24": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.10243805241099262 != 0.10245448259999999]. Relative difference exceeds tolerance [0.000160391 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = true; reordering = None; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = arpack; 
1: FE degree: 1
1: Convergence rate: 0.10
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_25": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.10245562595409574 != 0.10245448259999999]. Relative difference exceeds tolerance [1.11596e-05 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = true; reordering = None; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = lanczos; 
1: skip
1: FE degree: 1
1: Convergence rate: 0.30
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_27": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.29778963080796284 != 0.29779748690000002]. Relative difference exceeds tolerance [2.63813e-05 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = true; reordering = None; mesh_evaluator_type = DealIIMatrixFreeMeshEvaluator; eigensolver = lanczos; 
1: FE degree: 1
1: Convergence rate: 0.10
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_28": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.10243805241099262 != 0.10245448259999999]. Relative difference exceeds tolerance [0.000160391 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = true; reordering = Reverse Cuthill_McKee; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = arpack; 
1: FE degree: 1
1: Convergence rate: 0.10
1: /tmp/mfmg/tests/test_hierarchy.cc(241): error: in "hierarchy_3d/_29": check conv_rate == ref_solution[std::make_tuple(mesh, distort_random_str, reordering, eigensolver, matrix_free_str)] has failed [0.10245562595409574 != 0.10245448259999999]. Relative difference exceeds tolerance [1.11596e-05 > 1e-06]
1: Failure occurred in a following context:
1:     mesh = hyper_ball; distort_random = true; reordering = Reverse Cuthill_McKee; mesh_evaluator_type = DealIIMeshEvaluator; eigensolver = lanczos;

The Lanczos results are also slightly different due to the minor modification of the agglomerates.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions