New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tests failing when using Petsc v3.4.5 #10906
Comments
I finished getting my PETSc 3.4.5 build set up, and I only get four total failures.
It looks like they all overlap with yours except for |
Parser Errors: -------------------------------------------------------------------------------------------------------------- /Users/petejw/projects/moose_2nd/test/tests/kernels/vector_fe/tests:25: unused parameter "Tests/jacobian/state" -------------------------------------------------------------------------------------------------------------- Refs idaholab#10906.
… PETSc. The change in the number of residual evaluations is due to 3061bbd, which allowed different residual functions to be used in different contexts. Refs idaholab#10906.
Are you also building with the most recent version of Libmesh? I'm wondering why I have so many more failures. |
I'm building with the libmesh in libMesh/libmesh#1602.
I'm kind of wondering if it's differences in floating point exception handling on your system, due to the |
Here is an example of one test's output which fails due to the damping parameter being too small
and another which fails due to the Jacobian entry
|
Hmm... It's possible the difference is that I had you compile PETSc with |
These tests use the "jp" coloring algorithm, which was introduced in PETSc 3.5.0. Refs idaholab#10906.
These were only recently added, and the tolerances are apparently a bit too tight for older versions of PETSc. Refs idaholab#10906.
It looks like the difference was my debug version of PetSc. I just ran in optimized mode and only had 3 tests failing.
|
Issue solved by #10910 |
OK, glad we were able to get this straightened out. We may want to eventually add a TestHarness option to restrict the remaining tests you found to not run with debug-enabled PETSc... |
Maybe, there are other problems with running with debug PETSc (e.g. several more tests routinely timeout). Should we be doing this, yes.... It's going to take more work. |
On older versions of PETSc (3.4.5) these tests print the warning below in the PenetrationLocator. The tests *still pass* despite the warning, so one way to "fix" the issue for older PETScs is simply to allow warnings on a case-by-case basis for these tests. ``` Warning in PenetrationLocator. Penetration is not detected for one or more slave nodes. This could be because those slave nodes simply do not project to faces on the master surface. However, this could also be because contact should be enforced on those nodes, but the faces that they project to are outside the contact patch, which will give an erroneous result. Use appropriate options for 'patch_size' and 'patch_update_strategy' in the Mesh block to avoid this issue. Setting 'patch_update_strategy=iteration' is recommended because it completely avoids this potential issue. Also note that this warning is printed only once, so a similar situation could occur multiple times during the simulation but this warning is printed only at the first occurrence. ``` Refs idaholab#10906.
If one follows the advice of the PenetrationLocator message, it is also possible to get rid of the warnings and make the tests pass. I'm not sure which strategy is going to be preferred by people. Refs idaholab#10906.
This test fails with a negative Jacobian on older versions of PETSc since the changes in 3061bbd. Refs idaholab#10906.
… PETSc. These tests now diff significantly with older versions of PETSc, most likely due to 3061bbd which changed the way the residual is computed in contact problems. test:normalized_penalty.kin_Q4: Nodal variables: contact_pressure rel diff: 0.0000000e+00 ~ -3.0000000e+06 = 1.00000e+00 (node 2) disp_x rel diff: 9.0910618e-20 ~ 1.0000000e-02 = 1.00000e+00 (node 2) penetration rel diff: -1.0000000e-02 ~ 4.4408921e-16 = 1.00000e+00 (node 18) saved_x rel diff: 1.2154877e-14 ~ -1.5000000e+06 = 1.00000e+00 (node 1) Element variables: stress_xx rel diff: 0.0000000e+00 ~ 3.0000000e+06 = 1.00000e+00 (block 1, elmt 1) test:normalized_penalty.kin_Q8: Nodal variables: contact_pressure rel diff: 0.0000000e+00 ~ -3.0000000e+06 = 1.00000e+00 (node 2) disp_x rel diff: 1.5835195e-20 ~ 1.0000000e-02 = 1.00000e+00 (node 2) penetration rel diff: -1.0000000e-02 ~ 8.8817842e-16 = 1.00000e+00 (node 10) saved_x rel diff: -4.4979690e-11 ~ 5.0000000e+05 = 1.00000e+00 (node 58) Element variables: stress_xx rel diff: 0.0000000e+00 ~ 3.0000000e+06 = 1.00000e+00 (block 1, elmt 1) Refs idaholab#10906.
This commit keeps the test working with older versions of PETSc and removes the abs_zero and use_old_floor hacks employed previously. Refs idaholab#10906.
…ons of PETSc. Changes to the way the residual is computed in 3061bbd require PETSc >= 3.5.0 in order to make these tests work. Refs idaholab#10906.
In older versions of PETSc, we are unable to achieve the full default nl_rel_tol reduction in the single timestep this test takes, but loosening the tolerance slightly allows the test to pass using the same gold file. Refs idaholab#10906.
These tests use the "jp" coloring algorithm, which was introduced in PETSc 3.5.0. Refs idaholab#10906.
These were only recently added, and the tolerances are apparently a bit too tight for older versions of PETSc. Refs idaholab#10906.
This is required to keep these tests running warning-free with older versions of PETSc (3.4.5). Another option would be to add 'allow_warnings=true' to the specs for these tests, but I think this approach is more robust. Without this change, on PETSc 3.4.5, the warning in question is given below: ``` Warning in PenetrationLocator. Penetration is not detected for one or more slave nodes. This could be because those slave nodes simply do not project to faces on the master surface. However, this could also be because contact should be enforced on those nodes, but the faces that they project to are outside the contact patch, which will give an erroneous result. Use appropriate options for 'patch_size' and 'patch_update_strategy' in the Mesh block to avoid this issue. Setting 'patch_update_strategy=iteration' is recommended because it completely avoids this potential issue. Also note that this warning is printed only once, so a similar situation could occur multiple times during the simulation but this warning is printed only at the first occurrence. ``` Refs idaholab#10906.
This test fails with a negative Jacobian on older versions of PETSc since the changes in 3061bbd. Refs idaholab#10906.
… PETSc. These tests now diff significantly with older versions of PETSc, most likely due to 3061bbd which changed the way the residual is computed in contact problems. test:normalized_penalty.kin_Q4: Nodal variables: contact_pressure rel diff: 0.0000000e+00 ~ -3.0000000e+06 = 1.00000e+00 (node 2) disp_x rel diff: 9.0910618e-20 ~ 1.0000000e-02 = 1.00000e+00 (node 2) penetration rel diff: -1.0000000e-02 ~ 4.4408921e-16 = 1.00000e+00 (node 18) saved_x rel diff: 1.2154877e-14 ~ -1.5000000e+06 = 1.00000e+00 (node 1) Element variables: stress_xx rel diff: 0.0000000e+00 ~ 3.0000000e+06 = 1.00000e+00 (block 1, elmt 1) test:normalized_penalty.kin_Q8: Nodal variables: contact_pressure rel diff: 0.0000000e+00 ~ -3.0000000e+06 = 1.00000e+00 (node 2) disp_x rel diff: 1.5835195e-20 ~ 1.0000000e-02 = 1.00000e+00 (node 2) penetration rel diff: -1.0000000e-02 ~ 8.8817842e-16 = 1.00000e+00 (node 10) saved_x rel diff: -4.4979690e-11 ~ 5.0000000e+05 = 1.00000e+00 (node 58) Element variables: stress_xx rel diff: 0.0000000e+00 ~ 3.0000000e+06 = 1.00000e+00 (block 1, elmt 1) Refs idaholab#10906.
This commit keeps the test working with older versions of PETSc and removes the abs_zero and use_old_floor hacks employed previously. Refs idaholab#10906.
…ons of PETSc. Changes to the way the residual is computed in 3061bbd require PETSc >= 3.5.0 in order to make these tests work. Refs idaholab#10906.
In older versions of PETSc, we are unable to achieve the full default nl_rel_tol reduction in the single timestep this test takes, but loosening the tolerance slightly allows the test to pass using the same gold file. Refs idaholab#10906.
Rationale
A selection of tests is failing when using Petsc v3.4.5. This issue is being raised following the discussion from this LibMesh issue @jwpeterson
Description
The following tests are failing while using the older version of Petsc
We're proposing to append
petsc_version = '>= 3.6.0'
to the above test specs.Impact
This shouldn't affect normal users using later versions of Petsc.
The text was updated successfully, but these errors were encountered: