Skip to content

[Solvergraph] Optional edges and use it in SPH - EOS - #1937

Draft
tdavidcl wants to merge 17 commits into
Shamrock-code:mainfrom
tdavidcl:sod_dusty_tva
Draft

[Solvergraph] Optional edges and use it in SPH - EOS#1937
tdavidcl wants to merge 17 commits into
Shamrock-code:mainfrom
tdavidcl:sod_dusty_tva

Conversation

@tdavidcl

Copy link
Copy Markdown
Member

No description provided.

@tdavidcl tdavidcl added the draft label Jul 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thanks @tdavidcl for opening this PR!

You can do multiple things directly here:
1 - Comment pre-commit.ci run to run pre-commit checks.
2 - Comment pre-commit.ci autofix to apply fixes.
3 - Add label autofix.ci to fix authorship & pre-commit for every commit made.
4 - Add label light-ci to only trigger a reduced & faster version of the CI (need the full one before merge).
5 - Add label trigger-ci to create an empty commit to trigger the CI.

Once the workflow completes a message will appear displaying informations related to the run.

Also the PR gets automatically reviewed by gemini, you can:
1 - Comment /gemini review to trigger a review
2 - Comment /gemini summary for a summary
3 - Tag it using @gemini-code-assist either in the PR or in review comments on files

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 2ef8a8e9-138f-4dbc-8636-0cc2fc5c70ef

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds nullable solver-graph edges, distributed span-based EOS evaluation, updates the standard Sod example for L2 reporting, and adds a dusty TVA Sod-tube validation simulation with analysis, checkpointing, visualization, and test-result output.

Changes

SPH Sod simulations and EOS support

Layer / File(s) Summary
Optional solver-graph edges
src/shamrock/include/shamrock/solvergraph/INullOptEdge.hpp, src/shamrock/include/shamrock/solvergraph/INode.hpp
Adds null optional edges, optional edge accessors, and macros that wire required and optional solver-graph edges.
Isothermal EOS computation
src/shammodels/sph/src/modules/ComputeEos.cpp
Adds ComputeEOSIsothermal, accepting either density or smoothing-length spans and computing pressure and sound speed through distributed kernels.
EOS span dispatch integration
src/shammodels/sph/src/modules/ComputeEos.cpp
Refactors EOS variants to use data edges and optional spans, converts smoothing length to density when needed, and derives gas density inputs for dust fields.
Sod validation workflows
examples/sph/run_sod.py, examples/sph/run_sod_dust_tva.py
Updates numeric L2 analysis in the standard Sod example and adds dusty TVA setup, particle initialization, scheduled analysis, checkpoints, plots, animation, and test-result output.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ComputeEos
  participant SolverGraph
  participant DistributedKernel
  participant EOSModel
  ComputeEos->>SolverGraph: provide hfactd, pmass, and optional spans
  SolverGraph->>DistributedKernel: dispatch EOS computation
  DistributedKernel->>EOSModel: calculate pressure and sound speed
  EOSModel-->>ComputeEos: return EOS output spans
Loading

Possibly related PRs

Suggested labels: in-review, in-testing

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive No description was provided, so there is no meaningful summary to assess. Add a brief description of the main code changes and intended effect.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title matches a major part of the diff by calling out optional edges and EOS changes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/shammodels/sph/src/modules/ComputeEos.cpp`:
- Around line 71-78: Update the validation condition using has_rho and has_h to
reject configurations where both density sources are present or neither is
present, while allowing exactly one of spans_rho or spans_h. Preserve the
existing invalid_argument exception and message.

In `@src/shamrock/include/shamrock/solvergraph/INode.hpp`:
- Around line 109-117: Update INode::get_rw_edge_optional to return a mutable
reference by replacing the const reference wrapper construction with the
non-const form, so it matches std::optional<std::reference_wrapper<T>> and
allows get_edges() to instantiate successfully.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 34e760b8-764a-40d9-a7e3-960606298cd3

📥 Commits

Reviewing files that changed from the base of the PR and between e3d8dba and bec3f9f.

📒 Files selected for processing (3)
  • src/shammodels/sph/src/modules/ComputeEos.cpp
  • src/shamrock/include/shamrock/solvergraph/INode.hpp
  • src/shamrock/include/shamrock/solvergraph/INullOptEdge.hpp

Comment thread src/shammodels/sph/src/modules/ComputeEos.cpp
Comment on lines +109 to +117
/// Get a read write edge and cast it to the type T, return an optional
template<class T>
inline std::optional<std::reference_wrapper<T>> get_rw_edge_optional(int slot) {
auto &edge = rw_edges.at(slot);

auto ptr = std::dynamic_pointer_cast<T>(edge);
if (ptr) {
return std::cref(*ptr);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

rg -n -A14 -B2 'get_rw_edge_optional' \
  src/shamrock/include/shamrock/solvergraph/INode.hpp

rg -n 'std::cref\(\*ptr\)|std::ref\(\*ptr\)' \
  src/shamrock/include/shamrock/solvergraph/INode.hpp

Repository: Shamrock-code/Shamrock

Length of output: 2576


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

sed -n '80,140p' src/shamrock/include/shamrock/solvergraph/INode.hpp
printf '\n---\n'
sed -n '280,320p' src/shamrock/include/shamrock/solvergraph/INode.hpp
printf '\n---\n'
python3 - <<'PY'
from textwrap import dedent
code = dedent(r'''
`#include` <functional>
`#include` <memory>
`#include` <optional>

template<class T>
std::optional<std::reference_wrapper<T>> f(std::shared_ptr<T> edge) {
    auto ptr = std::dynamic_pointer_cast<T>(edge);
    if (ptr) {
        return std::cref(*ptr);
    }
    return std::nullopt;
}
''')
open('/tmp/check.cpp','w').write(code)
print(code)
PY
printf '\n---\n'
if command -v g++ >/dev/null 2>&1; then
  g++ -std=c++20 -fsyntax-only /tmp/check.cpp 2>&1 | sed -n '1,120p'
elif command -v clang++ >/dev/null 2>&1; then
  clang++ -std=c++20 -fsyntax-only /tmp/check.cpp 2>&1 | sed -n '1,120p'
else
  echo "No compiler available"
fi

Repository: Shamrock-code/Shamrock

Length of output: 5832


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

sed -n '1,220p' src/shamrock/include/shamrock/solvergraph/INode.hpp | nl -ba | sed -n '1,220p'

Repository: Shamrock-code/Shamrock

Length of output: 200


Return std::ref(*ptr) here. std::cref(*ptr) yields std::reference_wrapper<const T>, which does not match std::optional<std::reference_wrapper<T>> and breaks get_edges() when optional RW edges are instantiated.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/shamrock/include/shamrock/solvergraph/INode.hpp` around lines 109 - 117,
Update INode::get_rw_edge_optional to return a mutable reference by replacing
the const reference wrapper construction with the non-const form, so it matches
std::optional<std::reference_wrapper<T>> and allows get_edges() to instantiate
successfully.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/shammodels/sph/src/modules/ComputeEos.cpp`:
- Around line 948-973: The dust EOS branches in the has_epsilon_field() and
has_s_j_field() paths are no-ops, leaving EOS fields stale. Either restore their
compute_eos_internal implementations using the current span-based interface, or
explicitly fail both branches with shambase::throw_unimplemented() so
unsupported dust configurations cannot proceed silently.
- Line 276: Remove the unconditional logger::raw_ln debug statement from
compute_eos_internal, leaving the surrounding EOS computation unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: e8ec3599-9052-44a2-8665-d10a3466af0f

📥 Commits

Reviewing files that changed from the base of the PR and between bec3f9f and 0f9230d.

📒 Files selected for processing (4)
  • src/shammodels/sph/include/shammodels/sph/modules/ComputeEos.hpp
  • src/shammodels/sph/src/modules/ComputeEos.cpp
  • src/shamrock/include/shamrock/solvergraph/INode.hpp
  • src/shamrock/include/shamrock/solvergraph/INullOptEdge.hpp

Comment thread src/shammodels/sph/src/modules/ComputeEos.cpp Outdated
Comment thread src/shammodels/sph/src/modules/ComputeEos.cpp Outdated
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 538 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/shammodels/sph/src/modules/ComputeEos.cpp 0.00% 528 Missing ⚠️
...rock/include/shamrock/solvergraph/INullOptEdge.hpp 0.00% 8 Missing ⚠️
src/shamphys/src/SodTube.cpp 0.00% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

Comment thread examples/sph/run_dustysettle_tva.py Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (4)
src/shammodels/sph/src/modules/ComputeEos.cpp (4)

176-217: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicate isothermal EOS logic vs. ComputeEOSIsothermal::internal_eos.

This eos_internal lambda (lines 185-189) is a copy of ComputeEOSIsothermal::internal_eos (lines 55-61) defined earlier in this same file. Two independent copies of the same physics is exactly the kind of drift that let the validation bug diverge (one copy got fixed, the other didn't). Consider having this branch call the node's static internal_eos directly.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/shammodels/sph/src/modules/ComputeEos.cpp` around lines 176 - 217, Remove
the local eos_internal lambda in the isothermal branch and reuse
ComputeEOSIsothermal::internal_eos for both rho- and h-based kernel paths,
preserving the existing argument flow and outputs.

218-274: 🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

Unchecked spans_uint.value() in the Adiabatic branch.

spans_uint.value().get().get_spans() is called unconditionally without checking has_value(). All current call sites in compute_eos() always populate spans_uint, so this isn't exercised today, but the public signature (per ComputeEos.hpp) allows spans_uint to be std::nullopt, and calling this branch that way would throw std::bad_optional_access instead of a clear domain error.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/shammodels/sph/src/modules/ComputeEos.cpp` around lines 218 - 274, The
Adiabatic branch in compute_eos must validate spans_uint before dereferencing
it. Add an explicit domain-error path when spans_uint is absent, before either
distributed_data_kernel_call uses spans_uint.value(), while preserving the
existing rho- and h-based computation when it is present.

863-921: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicate rho_g/uint_g computation between epsilon and s_j dust branches.

This block (863-921) and the has_s_j_field() block (922-981) are nearly identical, differing only in how epsilon_sum is computed (direct field vs. s_j^2/rho_a). Consider factoring the shared rho_g/uint_g field setup, ghost-field lookup, and kernel dispatch into a helper parameterized by an epsilon_sum callback.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/shammodels/sph/src/modules/ComputeEos.cpp` around lines 863 - 921, Factor
the duplicated rho_g/uint_g setup, ghost-field lookup, and
distributed_data_kernel_call shared by the has_epsilon_field() and
has_s_j_field() branches into a helper. Parameterize the helper with the
branch-specific epsilon_sum calculation, while preserving each branch’s existing
input fields and EOS computation through compute_eos_internal.

906-911: 🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

Unguarded division/multiplication by (1 - epsilon_sum) can silently produce NaN/Inf/negative gas density. Both dust-to-gas conversion kernels compute epsilon_sum from field data with no check that it stays below 1 before using (1 - epsilon_sum), so numerical drift or a bad dust configuration silently corrupts rho_g/uint_g instead of failing loudly.

  • src/shammodels/sph/src/modules/ComputeEos.cpp#L906-L911: clamp or assert epsilon_sum < 1 before computing rho_g_a/uint_g_a in the epsilon-field branch.
  • src/shammodels/sph/src/modules/ComputeEos.cpp#L966-L971: apply the same clamp/assert in the s_j-field branch.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/shammodels/sph/src/modules/ComputeEos.cpp` around lines 906 - 911, Guard
the dust-to-gas conversion against epsilon_sum reaching or exceeding 1 before
computing rho_g_a and uint_g_a in both ComputeEos.cpp sites at lines 906-911 and
966-971; clamp or assert epsilon_sum < 1 in the epsilon-field and s_j-field
branches so invalid field data cannot produce non-finite or negative gas values.
♻️ Duplicate comments (1)
src/shammodels/sph/src/modules/ComputeEos.cpp (1)

69-76: 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win

Inverted validation regressed in the new ComputeEOSIsothermal node.

This is the exact same inverted condition flagged and marked "addressed" in a prior review at this same line range: the check throws when exactly one of rho/h is given (the only valid case) and silently passes through when both or neither are given. Any normal single-source call to this node will now throw "Must have either rho or h", and if neither is set, spans_pressure/spans_soundspeed are left at whatever ensure_sizes produced (never written by lines 90-118).

🐛 Proposed fix
-            if ((has_rho && !has_h) || (!has_rho && has_h)) {
+            if (has_rho == has_h) {
                 throw shambase::make_except_with_loc<std::invalid_argument>(
-                    "Must have either rho or h");
+                    "Must have exactly one of rho or h");
             }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/shammodels/sph/src/modules/ComputeEos.cpp` around lines 69 - 76, Correct
the validation condition in ComputeEOSIsothermal so it throws when both
spans_rho and spans_h are present or when neither is present, while allowing
exactly one source. Ensure the invalid neither-input path does not proceed to
leave spans_pressure or spans_soundspeed unwritten.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@src/shammodels/sph/src/modules/ComputeEos.cpp`:
- Around line 176-217: Remove the local eos_internal lambda in the isothermal
branch and reuse ComputeEOSIsothermal::internal_eos for both rho- and h-based
kernel paths, preserving the existing argument flow and outputs.
- Around line 218-274: The Adiabatic branch in compute_eos must validate
spans_uint before dereferencing it. Add an explicit domain-error path when
spans_uint is absent, before either distributed_data_kernel_call uses
spans_uint.value(), while preserving the existing rho- and h-based computation
when it is present.
- Around line 863-921: Factor the duplicated rho_g/uint_g setup, ghost-field
lookup, and distributed_data_kernel_call shared by the has_epsilon_field() and
has_s_j_field() branches into a helper. Parameterize the helper with the
branch-specific epsilon_sum calculation, while preserving each branch’s existing
input fields and EOS computation through compute_eos_internal.
- Around line 906-911: Guard the dust-to-gas conversion against epsilon_sum
reaching or exceeding 1 before computing rho_g_a and uint_g_a in both
ComputeEos.cpp sites at lines 906-911 and 966-971; clamp or assert epsilon_sum <
1 in the epsilon-field and s_j-field branches so invalid field data cannot
produce non-finite or negative gas values.

---

Duplicate comments:
In `@src/shammodels/sph/src/modules/ComputeEos.cpp`:
- Around line 69-76: Correct the validation condition in ComputeEOSIsothermal so
it throws when both spans_rho and spans_h are present or when neither is
present, while allowing exactly one source. Ensure the invalid neither-input
path does not proceed to leave spans_pressure or spans_soundspeed unwritten.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f4fe94b6-1b3e-4bc2-ab2f-52776ca169e4

📥 Commits

Reviewing files that changed from the base of the PR and between 0f9230d and cf38f10.

📒 Files selected for processing (1)
  • src/shammodels/sph/src/modules/ComputeEos.cpp

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@examples/sph/run_sod.py`:
- Line 230: Update the result-writing call in examples/sph/run_sod.py at lines
230-230 to use a with open(..., encoding="utf-8") as output context manager and
pass output to json.dump. Apply the same context-managed write in
examples/sph/run_sod_dust_tva.py at lines 299-299, preserving the existing
test_result.json output and indentation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: c75a7521-b3a4-4f47-a990-131bc29afc30

📥 Commits

Reviewing files that changed from the base of the PR and between cf38f10 and 03d7ea1.

📒 Files selected for processing (2)
  • examples/sph/run_sod.py
  • examples/sph/run_sod_dust_tva.py

Comment thread examples/sph/run_sod.py
}
print(result)

json.dump(result, open(f"{dump_folder}/test_result.json", "w"), indent=4)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

Close the test-result files deterministically.

Use a context manager so the JSON is flushed and closed even when execution or garbage collection differs.

  • examples/sph/run_sod.py#L230-L230: wrap the result writer in with open(..., encoding="utf-8") as output:.
  • examples/sph/run_sod_dust_tva.py#L299-L299: apply the same context-managed write.
🧰 Tools
🪛 Ruff (0.15.21)

[warning] 230-230: Use a context manager for opening files

(SIM115)

📍 Affects 2 files
  • examples/sph/run_sod.py#L230-L230 (this comment)
  • examples/sph/run_sod_dust_tva.py#L299-L299
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@examples/sph/run_sod.py` at line 230, Update the result-writing call in
examples/sph/run_sod.py at lines 230-230 to use a with open(...,
encoding="utf-8") as output context manager and pass output to json.dump. Apply
the same context-managed write in examples/sph/run_sod_dust_tva.py at lines
299-299, preserving the existing test_result.json output and indentation.

Source: Linters/SAST tools

@tdavidcl
tdavidcl marked this pull request as draft July 21, 2026 16:15
@tdavidcl tdavidcl changed the title [SPH] Add dust TVA sod tube to examples [Solvergraph] Optional edges and use it in SPH - EOS Jul 21, 2026
Comment thread doc/sphinx/source/dev_doc.md Outdated
@tdavidcl tdavidcl removed the light-ci label Aug 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Workflow report

workflow report corresponding to commit f728e17
Commiter email is timothee.davidcleris@proton.me

Light CI is enabled (the default for pull requests). This will only run the basic tests and not the full tests.
Full CI runs if the full-ci label is set, or automatically on Mergify merge-queue branches (mergify/merge-queue/*).
The merge gate job "on PR / all" is skipped in this case. Queue entry uses "on PR / all_light"; full CI runs in the merge queue.

Pre-commit check report

Pre-commit check: ✅

trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check for merge conflicts................................................Passed
check that executables have shebangs.....................................Passed
check that scripts with shebangs are executable..........................Passed
check for added large files..............................................Passed
check for case conflicts.................................................Passed
check for broken symlinks................................................Passed
check yaml...............................................................Passed
detect private key.......................................................Passed
No-tabs checker..........................................................Passed
Tabs remover.............................................................Passed
cmake-format.............................................................Passed
Validate GitHub Workflows................................................Passed
clang-format.............................................................Passed
ruff check...............................................................Passed
ruff format..............................................................Passed
Check doxygen headers....................................................Passed
Check license headers....................................................Passed
Check #pragma once.......................................................Passed
Check SYCL #include......................................................Passed
No ssh in git submodules remote..........................................Passed
No UTF-8 in files (except for authors)...................................Passed

Test pipeline can run.

Clang-tidy diff report


1224 warnings generated.
Suppressed 1225 warnings (1224 in non-user code, 1 NOLINT).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

Doxygen diff with main

Removed warnings : 0
New warnings : 3
Warnings count : 8183 → 8186 (0.0%)

Detailed changes :
+ src/shammodels/sph/src/modules/ComputeEos.cpp:33: warning: Member NODE_EDGES(X_RO, X_RW, X_RO_OPTIONAL, X_RW_OPTIONAL) (macro definition) of file ComputeEos.cpp is not documented.
+ src/shammodels/sph/src/modules/ComputeEos.cpp:48: warning: Compound shammodels::common::modules::ComputeEOSIsothermal is not documented.
+ src/shammodels/sph/src/modules/ComputeEos.cpp:57: warning: Member internal_eos(const Tscal &cs, const Tscal &rho, Tscal &pressure, Tscal &soundspeed) noexcept (function) of class shammodels::common::modules::ComputeEOSIsothermal is not documented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant