Change for sliding plane when relative frame is used - #2311
Merged
pcarruscag merged 28 commits intoSep 13, 2026
Conversation
…when rotating frame is used.
…otating frame zone.
…s adopted for unsteady simulation.
…otating frame zone.
…otating frame zone.
…otating frame zone.
…s adopted for unsteady simulation.
So we merge the mods on it to its real destination. Merge branch 'master' into turbo_features_fabian
bigfooted
reviewed
Jun 26, 2024
added 5 commits
July 29, 2024 14:55
pcarruscag
reviewed
Aug 11, 2024
pcarruscag
left a comment
Member
There was a problem hiding this comment.
Can you make this a config option as I mentioned before?
The large solution files need to be in the TestCases repo instead of together with the code.
…-sliding-plane # Conflicts: # Common/include/CConfig.hpp # Common/src/CConfig.cpp # SU2_CFD/src/drivers/CMultizoneDriver.cpp # SU2_CFD/src/interfaces/CInterface.cpp
pcarruscag
added a commit
to su2code/TestCases
that referenced
this pull request
Sep 12, 2026
…test These were present in the original contribution's branch history (su2code/SU2#2311, commit 3f5d63d) but dropped before the PR's final state, leaving the test case without a mesh or restart to run from. Recovered from that history to complete the companion data for the inlet_distortion_relative_frame case. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Member
|
Rebased this branch onto current Bug fixes
Test case / data files
Still needed before this can pass CI as-is: su2code/TestCases#204 needs to merge first (or 🤖 Generated with Claude Code |
- Gate the donor-velocity rotation on either zone's RELATIVE_FRAME_SLIDINGPLANE flag, matching the OR already used for the coordinate rotation in CNearestNeighbor::SetTransferCoeff (was donor-only, so a config that only enabled the flag on the target zone silently transferred correct coordinates but unrotated velocities). - Fix a donor/target mix-up in GetDonor_Velocity_RotatingFrame: the target-side branch read TimeIter from donor_config instead of target_config. - Hoist the per-target-vertex rotation matrix and rotated coordinate construction in CNearestNeighbor::SetTransferCoeff out of the inner per-donor-candidate loop; it was being recomputed (including trig calls) for every donor candidate instead of once per target vertex. - Only mark a ROTATING_FRAME zone as needing a per-timestep interface transfer-coefficient refresh in CMultizoneDriver when RELATIVE_FRAME_SLIDINGPLANE is actually enabled, so existing ROTATING_FRAME + sliding-interface setups that don't use this feature don't pay a new per-timestep recompute cost. - Fix copy-pasted Doxygen comments that labeled target_config/ target_geometry as "the donor mesh", and clean up trailing whitespace in the new code. - Move the inlet_distortion_relative_frame test case's mesh/solution/ profile data out of TestCases/ (which the SU2 repo's own TestCases/.gitignore says is for the sibling su2code/TestCases data repo, see su2code/TestCases#204) and wire the case into parallel_regression.py/serial_regression.py with test_vals from an actual run, so it gets CI coverage. Note: this PR's own CI will fail on the new regression entry until su2code/TestCases#204 merges (or is otherwise pulled in), since the mesh/solution/profile data for inlet_distortion_relative_frame lives there, not in this repo. Pushing this branch to a fork also requires the 'workflow' OAuth scope on the pushing token, since the merge with develop touches .github/workflows/*. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
pcarruscag
force-pushed
the
Feature_SlidingPlane_RelFrame
branch
from
September 12, 2026 20:14
e36f4ab to
cd0b6ff
Compare
Merge conflict resolution had kept the PR's (prefixed_motion[iZone] || prefixed_motion[jZone]) condition instead of develop's original prefixed_motion[iZone]-only check, silently changing when transfer coefficients get recomputed for every existing prefixed-motion sliding-interface case (e.g. channel_3D, RIGID_MOTION), not just the new relative-frame feature -- causing a numerical regression against stored test_vals. Both zones in the new inlet_distortion_relative_frame test case set GRID_MOVEMENT=ROTATING_FRAME with RELATIVE_FRAME_SLIDINGPLANE=YES, so prefixed_motion is true for both and the single-sided check still triggers the recompute in both directions for that case. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Too heavy for a regression test (3D RANS SST, 68k+30k point meshes, ~90MB of mesh/solution/profile data) for what it exercises being a simple duct/cylinder geometry. Removes the cfg files, the parallel_regression.py/serial_regression.py entries, and the regression.yml Testcases-branch pointer added to support it -- the companion su2code/TestCases#204 PR is no longer needed either. The feature itself (source changes in CNearestNeighbor, CSlidingInterface, CInterface, CMultizoneDriver) is unaffected; a lighter regression case can be built later on top of an existing sliding-interface test (e.g. sliding_interface/uniform_flow) instead. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
pcarruscag
reviewed
Sep 13, 2026
pcarruscag
left a comment
Member
There was a problem hiding this comment.
I removed the test because it was too large, almost 1 minute.
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.
Proposed Changes
In some cases we use relative frame for rotor zone to perform URANS, e.g., in aeroelasticity analysis, we want the grid movement comes only from blade deformation. The problem is that the sliding plane in SU2 works only for absolute frame. In relative frame, the grid is not rotating, so the interpolation at sliding interface is not changed as time step is marching. The proposed changes rotate the sliding interface in accordance with physical time steps to perform interpolation. This function is activated only for relative frame. The grid itself is not rotating.
Currently, this is only implemented in CNearestneighbor class, other interpolation method should be changed as well in the near future.
Related Work
Resolve any issues (bug fix or feature request), note any related PRs, or mention interactions with the work of others, if any.
PR Checklist
Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.
pre-commit run --allto format old commits.