adjusting tests, to accomodate new and higher drag predictions of vsm…#156
adjusting tests, to accomodate new and higher drag predictions of vsm…#156jellepoland merged 1 commit intomainfrom
Conversation
… without 3/4c to 1/4c prediction
There was a problem hiding this comment.
Pull request overview
This pull request adjusts verification test tolerances to accommodate new VSM (Vortex Step Method) drag predictions following the removal of the 3/4c to 1/4c prediction. The changes modify assertion tolerances and disable certain drag coefficient comparisons across multiple wing verification test cases.
Changes:
- Commented out drag coefficient assertions comparing old and new VSM implementations across all test files
- Increased drag coefficient tolerances in specific assertions to accommodate higher VSM predictions
- Re-enabled LLT assertions in the TUDELFT_V3_KITE test case
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 9 comments.
| File | Description |
|---|---|
| tests/verification_cases/swept_wing/test_swept_wing.py | Commented out drag coefficient assertions comparing VSM implementations and LLT to VSM |
| tests/verification_cases/elliptical_wing/test_elliptical_wing.py | Commented out VSM comparison assertion and increased tolerances for theoretical and LLT drag comparisons |
| tests/verification_cases/curved_wing/test_curved_wing.py | Commented out VSM comparison assertion and increased Maneia reference data tolerance by 10x |
| tests/verification_cases/TUDELFT_V3_KITE/test_kite.py | Re-enabled LLT assertions and commented out VSM comparison assertions in both test cases |
Comments suppressed due to low confidence (13)
tests/verification_cases/curved_wing/test_curved_wing.py:80
- Variable AR is not used.
AR = case_params[4]
tests/verification_cases/TUDELFT_V3_KITE/test_kite.py:27
- Variable dist is not used.
dist = "lin"
tests/verification_cases/TUDELFT_V3_KITE/test_kite.py:52
- Variable N is not used.
N = int(len(coord) / 2) # Number of section after refining the mesh
tests/verification_cases/swept_wing/test_swept_wing.py:39
- Variable gamma is not used.
gamma = np.arctan(offset / (span / 2)) * 180 / np.pi
tests/verification_cases/swept_wing/test_swept_wing.py:45
- Variable alpha_airf is not used.
alpha_airf = np.arange(-10, 30)
tests/verification_cases/curved_wing/test_curved_wing.py:139
- This assignment to 'aoas' is unnecessary as it is redefined before this value is used.
aoas = case_params[1]
tests/verification_cases/TUDELFT_V3_KITE/test_kite.py:90
- This assignment to 'aoas' is unnecessary as it is redefined before this value is used.
aoas = case_params[1]
tests/verification_cases/swept_wing/test_swept_wing.py:32
- This assignment to 'Atot' is unnecessary as it is redefined before this value is used.
Atot = span * max(chord)
tests/verification_cases/curved_wing/test_curved_wing.py:3
- Import of 'logging' is not used.
import logging
tests/verification_cases/elliptical_wing/test_elliptical_wing.py:3
- Import of 'logging' is not used.
import logging
tests/verification_cases/elliptical_wing/test_elliptical_wing.py:6
- Import of 'plt' is not used.
import matplotlib.pyplot as plt
tests/verification_cases/TUDELFT_V3_KITE/test_kite.py:3
- Import of 'logging' is not used.
import logging
tests/verification_cases/swept_wing/test_swept_wing.py:3
- Import of 'logging' is not used.
import logging
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -129,7 +129,7 @@ def test_curved(): | |||
|
|
|||
| # checking new VSM close to Maneia | |||
There was a problem hiding this comment.
The tolerance has been increased by 10x (from 1e-2 to 1e-1) without explanation. This is a significant relaxation of the test criteria. Consider adding a comment explaining why this large tolerance increase is acceptable and necessary due to the VSM changes.
| # checking new VSM close to Maneia | |
| # checking new VSM close to Maneia | |
| # NOTE: The tolerance here was relaxed from 1e-2 to 1e-1 on purpose. | |
| # The updated VSM formulation (e.g. wake alignment / discretisation changes) | |
| # leads to small but systematic differences in CL/CD relative to Maneia's data, | |
| # and the published polars themselves have experimental/numerical uncertainty. | |
| # A 1e-1 absolute tolerance still enforces physically consistent behaviour and | |
| # matching trends, while avoiding fragile test failures after the VSM changes. |
| tol_llt_to_vsm_CD = 4e-2 | ||
| assert np.allclose(CL_LLT, CL_VSM, atol=tol_llt_to_vsm_CL) | ||
| assert np.allclose(CD_LLT, CD_VSM, atol=tol_llt_to_vsm_CD) | ||
| # assert np.allclose(CD_LLT, CD_VSM, atol=tol_llt_to_vsm_CD) |
There was a problem hiding this comment.
This assertion has been commented out, which reduces test coverage for drag coefficient verification between LLT and VSM. Consider either removing the assertion entirely if it's no longer valid, or updating the tolerance to reflect the new VSM behavior instead of commenting it out.
| # checking VSMs to be close to one another | ||
| assert np.allclose(CL_VSM, CL_VSM_new, atol=4e-2) | ||
| assert np.allclose(CD_VSM, CD_VSM_new, atol=4e-3) | ||
| # assert np.allclose(CD_VSM, CD_VSM_new, atol=4e-3) |
There was a problem hiding this comment.
This assertion has been commented out, which reduces test coverage for drag coefficient verification between old and new VSM implementations. Consider either removing the assertion entirely if it's no longer valid, or updating the tolerance to reflect the new VSM behavior instead of commenting it out.
| assert np.allclose(CD_LLT, CD_LLT_new, atol=1e-2) | ||
| assert np.allclose(CL_VSM, CL_VSM_new, atol=1e-2) | ||
| assert np.allclose(CD_VSM, CD_VSM_new, atol=1e-3) | ||
| # assert np.allclose(CD_VSM, CD_VSM_new, atol=1e-3) |
There was a problem hiding this comment.
This assertion has been commented out, which reduces test coverage for drag coefficient verification between old and new VSM implementations. Consider either removing the assertion entirely if it's no longer valid, or updating the tolerance to reflect the new VSM behavior instead of commenting it out.
| assert np.allclose(CD_LLT, CD_LLT_new, atol=1e-2) | ||
| assert np.allclose(CL_VSM, CL_VSM_new, atol=1e-2) | ||
| assert np.allclose(CD_VSM, CD_VSM_new, atol=1e-3) | ||
| # assert np.allclose(CD_VSM, CD_VSM_new, atol=1e-3) |
There was a problem hiding this comment.
This assertion has been commented out, which reduces test coverage for drag coefficient verification between old and new VSM implementations. Consider either removing the assertion entirely if it's no longer valid, or updating the tolerance to reflect the new VSM behavior instead of commenting it out.
| # checking VSMs to be close to one another | ||
| assert np.allclose(CL_VSM, CL_VSM_new, atol=4e-2) | ||
| assert np.allclose(CD_VSM, CD_VSM_new, atol=4e-3) | ||
| # assert np.allclose(CD_VSM, CD_VSM_new, atol=4e-3) |
There was a problem hiding this comment.
This assertion has been commented out, which reduces test coverage for drag coefficient verification between old and new VSM implementations. Consider either removing the assertion entirely if it's no longer valid, or updating the tolerance to reflect the new VSM behavior instead of commenting it out.
| # checking VSMs to be close to one another | ||
| assert np.allclose(CL_VSM, CL_VSM_new, atol=1e-2) | ||
| assert np.allclose(CD_VSM, CD_VSM_new, atol=1e-3) | ||
| # assert np.allclose(CD_VSM, CD_VSM_new, atol=1e-3) |
There was a problem hiding this comment.
This assertion has been commented out, which reduces test coverage for drag coefficient verification between old and new VSM implementations. Consider either removing the assertion entirely if it's no longer valid, or updating the tolerance to reflect the new VSM behavior instead of commenting it out.
| tol_llt_to_vsm_CD = 1e-3 | ||
| assert np.allclose(CL_th, CL_VSM, atol=tol_llt_to_vsm_CL) | ||
| assert np.allclose(CDi_th, CD_VSM, atol=tol_llt_to_vsm_CD) | ||
| assert np.allclose(CL_th, CL_VSM_new, atol=tol_llt_to_vsm_CL) |
There was a problem hiding this comment.
The tolerance has been doubled from the original value without explanation. Consider adding a comment explaining why this specific tolerance increase is needed due to the VSM changes, to help future maintainers understand the rationale.
| assert np.allclose(CL_th, CL_VSM_new, atol=tol_llt_to_vsm_CL) | |
| assert np.allclose(CL_th, CL_VSM_new, atol=tol_llt_to_vsm_CL) | |
| # VSM refactor (projected AR / paneling) introduces slightly larger scatter in CDi; | |
| # keep the LLT↔VSM CD tolerance but relax it by a factor 2 for the new VSM to avoid | |
| # flaky failures while still catching meaningful regressions. |
| assert np.allclose(CD_LLT, CD_VSM, atol=tol_llt_to_vsm_CD) | ||
| assert np.allclose(CL_LLT_new, CL_VSM_new, atol=tol_llt_to_vsm_CL) | ||
| assert np.allclose(CD_LLT_new, CD_VSM_new, atol=tol_llt_to_vsm_CD) | ||
| assert np.allclose(CD_LLT_new, CD_VSM_new, atol=1e-2) |
There was a problem hiding this comment.
The tolerance has been changed from the variable 'tol_llt_to_vsm_CD' to a hardcoded value of 1e-2 without explanation. This creates inconsistency - consider either updating the variable's value or adding a comment explaining why a different tolerance is needed here compared to line 106.
| assert np.allclose(CD_LLT_new, CD_VSM_new, atol=1e-2) | |
| # Use a looser tolerance for the new LLT vs new VSM CD comparison to | |
| # account for expected numerical differences between implementations. | |
| assert np.allclose(CD_LLT_new, CD_VSM_new, atol=10 * tol_llt_to_vsm_CD) |
adjusting tests, to accomodate new and higher drag predictions of vsm without 3/4c to 1/4c prediction