Repository navigation
Conversation
andrew-platt
requested review from
ebranlard and
hkross
and
a balanced review from Copilot
October 27, 2026 18:45
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The enabled solver path needs automated regression coverage for conservation, residual behavior, and multiplier exclusion.
1 open issue
What changed in this PR
Adds an optional zero-net-source constraint to OLAF’s source-panel confinement model, preserving the unconstrained solve by default.
Changes:
- Augments the solver with an auxiliary multiplier kept separate from physical source strengths and induced velocities.
- Preserves source strengths during initialization and refreshes derived fields before final VTK output.
- Adds input parsing, validation, serialized parameter support, and documentation.
| File | Description |
|---|---|
modules/aerodyn/src/FVW.f90 |
Preserves panel strengths and refreshes final output fields. |
modules/aerodyn/src/FVW_Types.f90 |
Adds constraint parameter copying and serialization. |
modules/aerodyn/src/FVW_Subs.f90 |
Implements the augmented solve and separates physical strengths from the multiplier. |
modules/aerodyn/src/FVW_Registry.txt |
Defines the default-off constraint parameter. |
modules/aerodyn/src/FVW_IO.f90 |
Parses the option, validates update frequency, and limits output to physical strengths. |
docs/source/user/aerodyn-olaf/InputFiles.rst |
Documents the constraint equations and modeling limitations. |
docs/source/user/aerodyn-olaf/ExampleFiles/ExampleFile--OLAF.dat |
Adds example advanced options with default values. |
Review effort: Balanced
Comment on lines
+2086
to
+2089
| if (Panl%EnforceZeroNetSource) then | ||
| ! Row N+1: Sum(Sigma * Area) = 0 Constraint | ||
| do ip = 1, Panl%n | ||
| AI(Panl%n+1, ip) = Panl%Area(ip) |
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.

Feature or improvement description
This pull request adds an optional zero-net-source constraint to the existing OLAF source-panel flow confinement model.
The new advanced input option,
SrcPnlZeroNetSource, uses a Lagrange-multiplier formulation to enforce zero area-integrated source strength across all source panels. It defaults toFalse, retaining the original unconstrained source-panel solve.The changes also:
Related issue, if one exists
No linked issue.
Impacted areas of the software
Additional supporting information
This change was motivated by applying the existing flow confinement model to the MHKF1 water-tunnel case. Without the additional constraint, the wall-panel solution produced strong source-induced deceleration near the rotor. Together with the underprediction of power and torque over much of the evaluated TSR range, this behavior suggested that the model was underrepresenting the confinement effect on rotor power and torque.
To address this behavior within the existing panel-method framework, zero area-integrated source strength was investigated as an additional global modeling condition for the finite tunnel-wall representation. This condition removes the net source/sink component of the panel distribution while allowing individual panels to retain positive or negative source strengths. It is imposed through an augmented linear system with an auxiliary Lagrange multiplier, retaining the existing source-panel representation and its coupling to the rotor and wake.
In the water-tunnel comparisons performed during development, the constraint redistributed the source strengths and reduced source-induced deceleration upstream of the rotor. Across the simulated TSR range, it increased the predicted power, thrust, and torque coefficients relative to the unconstrained source-panel solution. The power and torque coefficient curves showed improved overall agreement with the uncorrected in-tunnel experimental measurements, while thrust agreement did not improve uniformly. These results support providing the constraint as an optional modeling condition for evaluating confinement effects.
When enabled, the augmented formulation permits a nonzero residual in the wall no-penetration condition. Further assessment of this residual and the predicted flow field is needed to establish applicability across other operating conditions and tunnel geometries.
Generative AI usage
ChatGPT assisted with commit analysis, and preparation of the PR summary. The changes were reviewed, compiled, and tested locally.
Assisted by: OpenAI ChatGPT <[email protected]>
Test results, if applicable
After integrating the changes with the
devbranch:openfastandaerodyn_driverusing GCC/GFortran 11.4.0 with double precision and OpenMP enabled.SrcPnlZeroNetSource=True, using 12 OpenMP threads.1.7e-8 m^3/s.The automated unit and regression test suites were not run.