docs(rfc): RFC 0000 — CFD solver strategy (SU2, OpenFOAM, PyFluent) - #45
Closed
aligatoralex wants to merge 1 commit into
Closed
aligatoralex wants to merge 1 commit into
aligatoralex wants to merge 1 commit into
Conversation
Recommends SU2 as YAADO_Core's first-class public CFD solver (LGPL-2.1, aerospace/compressible-flow fit, already ships adjoint shape-optimization infra the repo doesn't use yet), OpenFOAM as an optional second choice (DAFoam as the concrete OpenMDAO-integration path if pursued, rather than hand-writing an adjoint wrapper), and explicitly excludes PyFluent/Ansys Fluent from the public repo on academic-license grounds -- it may only live in a private, appropriately-licensed companion repo, never in YAADO_Core. Verifies su2_config_template.py's real, current state directly (stale module-path header, vehicle-specific "ramjet rocket" language mixed with generic "Generic Vehicle" wording post-refactor, a dead Any-typed config read sharing #34's pattern, a dangling reference to a non-existent docs/AGENT_CONTEXT.md) and scopes its cleanup as part of this RFC's acceptance. Recommends generic RANS/GCI config machinery stay in YAADO_Core while vehicle-specific mesh/study results move to Hangar/<vehicle>/analyses_private/, per the project's Core-stays-generic rule. Names the 3D boundary-layer meshing gap in the free tool stack as a structural limitation (corroborated by independent third-party sources), not a bug, and requires an explicit mesh-quality flag in generic mesh output regardless of which fix is eventually chosen. Flags several things this RFC could not resolve on its own authority and lists them as open questions rather than assuming a favorable answer: the actual Ansys license terms (Teaching vs Research vs other), the missing docs/rfcs/0000-template.md and docs/AGENT_CONTEXT.md this request and the SU2 module respectively reference but do not exist on main, and whether to resurrect vs redesign the CFD scaffolding removed in the August 2026 ComponentStore reset. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NPJaUV26PzaRdYKr3Q7z1d
Contributor
Author
|
Superseded by #47 — this RFC moves to Generated by Claude Code |
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.
Description of Changes:
Adds
docs/rfcs/0000-cfd-solver-strategy.md— an RFC on CFD solver strategy forYAADO_Core(SU2, OpenFOAM, PyFluent/Fluent). No code changes.docs/rfcs/0000-template.md-formatted, but that template and thedocs/rfcs/directory do not exist onmain— verified directly this session. Four prior RFCs (0001–0004) live indocs/rfc/(singular), each still on its own unmerged branch. This RFC usesdocs/rfcs/0000-...exactly as requested and flags the directory/numbering inconsistency as an open question for whoever owns repo conventions, rather than silently picking one.Key recommendations:
continuous_adjoint.py/discrete_adjoint.py/shape_optimization.pyand apysu2Python-wrapper build — adjoint shape-optimization infrastructure YAADO doesn't use yet, directly relevant to RFC 0004's optimization-loop question.rhoCentralFoam/sonicFoamcover compressible/shock-capturing flow. New finding: DAFoam (discrete adjoint + native OpenMDAO interface) is the concrete adoption path if OpenFOAM-based MDO is ever pursued — adopt as a vendored submodule, don't hand-roll an adjoint wrapper.YAADO_Core, and the RFC does not clear even that without a human reading the actual license (§7.4, deliberately unresolved).YAADO_Core; a vehicle's actual mesh files/study results move toHangar/<vehicle>/analyses_private/.Verified directly this session (not assumed):
su2_config_template.py's real current state — stale module-path header (analyses.cfd.su2_config_template), "ramjet rocket" language mixed with post-refactor "Generic Vehicle" wording, a deadAny-typed config read sharing issue #34's pattern, and a dangling reference to adocs/AGENT_CONTEXT.mdthat does not exist onmain. Scoped as required cleanup, folded into #34 where it overlaps rather than duplicated.Deliberately left unresolved rather than assumed favorable: the actual Ansys license tier/terms (§7.4 — needs a human with the signed agreement), whether to resurrect vs. redesign the CFD scaffolding removed in the August 2026 reset (§7.2), and the RFC filing-convention question above (§7.1).
Checklist:
uv run pytest YAADO_Core/tests/and all tests pass. (Docs-only; 102 passed, unaffected baseline on this branch.)docs/rfcs/.)Verification method:
Every YAADO-repo claim (file contents, missing directories/templates, issue cross-references) was checked directly against the current checkout this session, not assumed from the task brief. External tool/license claims are cited to the sources supplied in the research brief; §4 explicitly tables which claims are independently re-verified here vs. carried forward from that brief without re-verification.
Generated by Claude Code