Skip to content

add coupled unsteady problem and solver#161

Closed
JonahJ27 wants to merge 3 commits intocamUrban:class_structurefrom
JonahJ27:coupled_unsteady_addition
Closed

add coupled unsteady problem and solver#161
JonahJ27 wants to merge 3 commits intocamUrban:class_structurefrom
JonahJ27:coupled_unsteady_addition

Conversation

@JonahJ27
Copy link
Copy Markdown
Contributor

@JonahJ27 JonahJ27 commented Apr 3, 2026

Description

Provide a concise description of the changes in this pull request. Appropriate titles for PRs use sentence-case and no trailing period. Also, add applicable labels and assign the PR to yourself. If using the bug or feature label, prefix your title with [BUG] or [FEATURE]. If a first-time contributor, welcome! If you'd like, feel free to add yourself to the end of the list of contributors in the README, following one of the styles shown.

Motivation

Explain why you are making these changes and what problem they solve.

Relevant Issues

Link any related issues using GitHub's syntax. For bugs, write, "Fixes #." For features, "Closes #." If there are no related issues, write "None."

Changes

List the changes you made in bullet points.

Dependency Updates

List any new dependencies (including dev dependencies) added in this PR. Also list any updates to required dependency versions. If no new dependencies have been added or version requirements changed, write "None."

Change Magnitude

Identify the option that best describes the impact of your change, then delete the other two lines and this sentence.

Major: Large change that adds significant new functionality, changes existing behavior, or may affect many parts of the codebase.

Moderate: Medium-sized change that adds or modifies a feature without large-scale impact.

Minor: Small change such as a bug fix, small enhancement, or documentation update.

Checklist (check each item when completed or not applicable)

  • I am familiar with the current contribution guidelines.
  • PR description links all relevant issues and follows this template.
  • My branch is based on main and is up to date with the upstream main branch.
  • All calculations use S.I. units.
  • Code is formatted with black (line length = 88).
  • Code is well documented with block comments where appropriate.
  • Any external code, algorithms, or equations used have been cited in comments or docstrings.
  • All new modules, classes, functions, and methods have docstrings in reStructuredText format, and are formatted using docformatter (--in-place --black). See the style guide for type hints and docstrings for more details.
  • All new classes, functions, and methods in the pterasoftware package use type hints. See the style guide for type hints and docstrings for more details.
  • If any major functionality was added or significantly changed, I have added or updated tests in the tests package.
  • Code locally passes all tests in the tests package.
  • This PR passes the ReadTheDocs build check (this runs automatically with the other workflows).
  • This PR passes the black, codespell, and isort GitHub actions.
  • This PR passes the mypy GitHub action.
  • This PR passes all the tests GitHub actions.

@JonahJ27 JonahJ27 requested a review from camUrban as a code owner April 3, 2026 16:58
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 3, 2026

Codecov Report

❌ Patch coverage is 92.34450% with 16 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.73%. Comparing base (5f14b81) to head (037db55).

Files with missing lines Patch % Lines
...are/coupled_unsteady_ring_vortex_lattice_method.py 91.92% 13 Missing ⚠️
pterasoftware/_core.py 71.42% 2 Missing ⚠️
...erasoftware/unsteady_ring_vortex_lattice_method.py 87.50% 1 Missing ⚠️
Additional details and impacted files
@@                 Coverage Diff                 @@
##           class_structure     #161      +/-   ##
===================================================
+ Coverage            91.70%   91.73%   +0.02%     
===================================================
  Files                   34       35       +1     
  Lines                 6752     6953     +201     
===================================================
+ Hits                  6192     6378     +186     
- Misses                 560      575      +15     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@camUrban
Copy link
Copy Markdown
Owner

camUrban commented Apr 14, 2026

Thanks for taking the new class structure for a test drive. Good to see the foundation works for the aeroelastic use case.

A couple of things before we move forward:

  1. This PR will auto-close once I merge Refine class structure #160 and delete the class_structure branch. Your commits stay on your fork, so you can cherry-pick from coupled_unsteady_addition into [FEATURE] Add structural aeroelasticity #156 after you update it from main.
  2. When you port this into [FEATURE] Add structural aeroelasticity #156, I think we should rework it a bit. The direction I landed on in Refine class structure #160 was to have the feature variants extend the Core* classes directly as siblings of the standard classes, rather than going through an intermediate Coupled* layer. Part of the reasoning is that CoupledUnsteadyProblem's base initialize_next_problem ends up regenerating from the movement, which is what UnsteadyProblem.__init__ already does, so the middle layer doesn't carry much weight on its own. Using Aeroelastic* naming also makes it clearer what the coupling is to. Happy to walk through all this at our next 1:1!

Nice work validating the design.

@camUrban camUrban mentioned this pull request Apr 14, 2026
55 tasks
@camUrban camUrban deleted the branch camUrban:class_structure April 14, 2026 23:58
@camUrban camUrban closed this Apr 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants