Repository navigation
Conversation
The run crashed before the first iteration, the streamwise periodic quantities are only set up on the fine grid. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UkNcoCEH8nFNrHWzhJCar
… flow With INTEGRATED_HEATFLUX= YES the value of MARKER_HEATFLUX is in W, it was multiplied by the area again as if it was in W/m2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UkNcoCEH8nFNrHWzhJCar
The term with the gradient of the eddy viscosity was divided by the length of the translation vector instead of its square. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UkNcoCEH8nFNrHWzhJCar
…nd temperature The sum of the absolute values of each component is only the distance along the translation vector if the vector is aligned with an axis. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UkNcoCEH8nFNrHWzhJCar
The heat was printed with whatever was in memory when the energy equation was off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013UkNcoCEH8nFNrHWzhJCar
Test casesFiles (configurations, histories, meshes): periodicBoundaries/streamwise. 2 MPI ranks, "develop" = 1. Multigrid: 2.
New test 3. Turbulent source term: the temperature is T = T~ + Q / (mdot cp L^2) (t . x), so the turbulent conductivity cp mu_t / Pr_t gives the source Q / (mdot L^2 Pr_t) (t . grad mu_t). The code had L instead of L^2 (L = 0.0111544 m in the pin array, a factor 90). One iteration from the turbulent solution of 4. Recovered pressure: the pin array on the mesh rotated by 30 degrees. The difference between recovered and periodic pressure must be the same at the same points as on the original mesh: it differs by up to 0.53 Pa (pressure drop 5.58 Pa) on develop, 3e-15 Pa with this PR. No regression test: the recovered values are only in the volume output. 5. 6. Prescribed massflow with OpenMP: a generated 9x9x9 BOX channel, five iterations. The unguarded upstream update produces thread-dependent pressure histories. With this PR, one/two-thread pressure drops agree within 1e-8 and the repeated two-thread history is identical; two MPI ranks also agree. The one-thread history is unchanged. New hybrid regression 7. Auxiliary Green–Gauss gradient: the actual solver helper, scalar 2+3y-z on a translational periodic BOX: maximum gradient error 20 before the fix. Translation and a 90-degree helical rotation now pass, also on two MPI ranks. Auxiliary fields are scalars, so only spatial gradient components rotate. The test is in Existing testsNo reference value changes. Unchanged history files, develop against this PR: Follow-up validation (Oct 7)The combined periodic source passes the release OpenMP/MPI build and the targeted gradient/thread checks. A separate D build also passes. The broader OpenMP unit runner aborts on the baseline too, so no whole-suite pass is claimed. Both actual upstream solver implementations reproduce the failures in the D harness; D sources were restored and all targeted checks pass. Forward/reverse OpenMP AD interface syntax checks pass. A full AD link and sensitivity validation were not performed. Additional tests (Oct 7)Reproducers, configurations, numeric logs and scripts: auxiliary. Develop =
The flamelet check exercises the real variable metadata and shared gradient helper with controlled scalar fields; it is not a full chemistry-table flow. Restart pressure/discard semantics were tested and work on develop, so no patch was made. Auxiliary unweighted LS is already unsupported for source/viscous terms. Combined release checks: serial and OpenMP2 pass 10 cases / 3175 assertions; partitioned MPI2 and MPI2×OpenMP2 pass on both ranks (2334 / 2238 assertions). These are combined-source checks, not standalone builds of every branch. Complete branch CI and full regression/reference checks remain pending. |
Proposed Changes
Streamwise periodic heat and massflow handling, recovered fields and shared auxiliary gradients contain several consistency errors. This PR corrects these paths and rejects unsupported streamwise configurations.
The corrections cover multigrid rejection, integrated wall heat, the turbulent temperature-source length scale, recovered pressure/temperature along oblique translations, initialized heat output and the threaded prescribed-massflow update. Shared auxiliary Green–Gauss and weighted least-squares helpers now exchange periodic contributions and rotate spatial gradient components. Flamelet preferential-diffusion variables report the four auxiliary fields they allocate.
The recovered-temperature correction at a heated wall now uses the inward-normal sign. Configuration checks require a nonzero purely translational first pair and reject temperature recovery with unsupported convective/CHT walls. Valid configuration controls demonstrate develop accepting these combinations and the branch giving the intended error.
Pipe/massflow regressions and BOX units cover uniform/stretched translation and helical meshes, GG/WLS, flamelet metadata/gradients and a curved heated wall. No auxiliary unweighted-LS implementation is added: that source/viscous option is already rejected by develop. Full chemistry-table flamelet and end-to-end adjoint checks remain pending.
Validation of the combined periodic source passes serial, partitioned MPI2, OpenMP2 and MPI2×OpenMP2 (10 cases / 3175 serial assertions). Individual branch CI and complete regression/reference checks are pending. Test configurations, meshes, logs and before/after values are in the testcase comment. New regression references are local x86 values and need CI confirmation.
Related Work
PR Checklist