fix: relax DISORT test tolerance under LGPL build - #1148
Merged
Conversation
Loosen the relative-error threshold in disort-test.h from 1e-6 to 2e-6 when ARTS_LGPL is defined, accommodating the lower precision of the LGPL-compatible DISORT configuration. disort-test-4 hardcodes reference u values (`disort-test-4.cpp:66-227`) that were generated with the GPL eigensolver — the ported EISPACK. The linux-lgpl-gcc build instead compiles `disort-eigen.lgpl.cpp:5`, which wraps the standard diagonalize_inplace from lin_alg.h (LAPACK/Eigen-based). The two solvers produce eigendecompositions that differ at the ~1e-7 level. test_4a is a near-conservative single-layer case (omega = 1 - 1e-6, NQuad = 32, delta-M scaling), which makes the eigenproblem ill-conditioned, so the solver difference propagates into u.
Contributor
|
Would it not be better to simply set OpenMP counts to 1? Because as far as I can see, that the Lapack is multi-threaded should be the only real difference. |
Member
Author
|
Have a look at my change-disort-test4-single-threaded branch |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The LGPL-compatible ARTS build uses a different eigensolver implementation than the default build, which can produce slightly different floating-point results. The existing test tolerance of
1e-6was too strict for this configuration and caused thedisort-test-4.cppto fail. This PR widens the accepted relative-error threshold for the LGPL build to2e-6so the test passes without weakening the default build's stricter check.