Skip to content

[Solvergraph] add EdgeList for runtime sized node inputs - #2154

Draft
tdavidcl wants to merge 1 commit into
Shamrock-code:mainfrom
tdavidcl:anyrefs_vtk
Draft

[Solvergraph] add EdgeList for runtime sized node inputs#2154
tdavidcl wants to merge 1 commit into
Shamrock-code:mainfrom
tdavidcl:anyrefs_vtk

Conversation

@tdavidcl

Copy link
Copy Markdown
Member

No description provided.

…the ramses VTK dump

Node arity was fixed at compile time: INode already stores its edges in a
vector, but the EXPAND_NODE_EDGES macros build a braced init-list and read it
back with a compile-time slot cursor, so a node could not take "a size, then N
IFieldSpan<Tscal>".

EdgeList<T> keeps the node arity fixed by holding the variable length part in a
single edge, the same way INullOptEdge expresses optional edges without changing
the arity. INode and its macros are untouched. RO/RW const-correctness falls out
of the const overloads of get/for_each, and free_alloc only drops the list, as
FieldRefs and PatchDataLayerRefs do for their own references. IEdge gains a
get_sub_edges() hook so the dot graph still renders a node reading N fields as N
dependencies.

An EdgeList is homogeneous in its element type, so listing fields of mixed types
needs the element type erased. IFieldRefsAny does that by double dispatch over
XMAC_LIST_ENABLED_FIELD, as a mixin rather than an edge so no diamond appears.
Every FieldRefs<T> and Field<T> inherits it from a one line accept in
IFieldRefs<T>, and visit_field_refs recovers the concrete type with a generic
lambda, the way for_each_field_any already reads.

PatchDataLayerToVtk becomes AMRBlocksToVtk and takes an explicit list of fields
instead of an IPatchDataLayerRefs, so a dump can pick any field from any layer
without matching the solver layout or copying everything into a dump specific
one. This removes get_field_count() and its "- 2 to remove the block infos"
fudge, the nvar == 1 skip-by-convention branch, and the assumption that
cell_min/cell_max are layout slots 0 and 1. Note that the dump already
concatenated each field across patches into a fresh buffer, VTK needs one
contiguous array per field, so consuming field refs directly costs no extra copy.

The node had no live call site, its only use was a commented out ghost zone
debug block, and it would not have compiled if used: _impl_get_label and
_impl_get_tex were not const, so they never overrode the pure virtuals and the
class stayed abstract. Both are const now, and the debug dump is restored as a
default-off branch, sequenced after the GetFieldRefFromLayer nodes that populate
storage.refs_*, not inside gz_xchg_sequence where those refs are not attached
yet.

Two constraints worth knowing, both documented in the headers: DDMultiRef is
variadic at compile time, so a node holding N spans at runtime issues one kernel
per span and cannot fuse them; and LegacyVtkWriter::write_field is collective, so
the field list must hold the same entries in the same order on every rank.

Assisted-by: Claude Code
@tdavidcl tdavidcl added the draft label Aug 22, 2026
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

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: 480a6730-3c49-400d-84c1-99a4eb8fccd5

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

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.

@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 full-ci to run the full test suite (default is light CI; full CI also runs on Mergify merge-queue branches).
5 - Add label profile-build to run the compile-time build profile job even in light CI.
6 - 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

@github-actions

Copy link
Copy Markdown
Contributor

Workflow report

workflow report corresponding to commit a2b0961
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

/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:34:33: warning: redundant boolean literal supplied to boolean operator [readability-simplify-boolean-expr]
   34 |         XMAC_LIST_ENABLED_FIELD false
      |         ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
      |         static_cast<bool>()
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:34:9: note: FIX-IT applied suggested code changes
   34 |         XMAC_LIST_ENABLED_FIELD false
      |         ^

31 warnings generated.
clang-tidy applied 1 of 1 suggested fixes.
Suppressed 30 warnings (30 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:34:27: error: expected expression [clang-diagnostic-error]
   34 |         static_cast<bool>()
      |                           ^

213 warnings and 1 error generated.
Error while processing /__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp.
Suppressed 213 warnings (213 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler errors, but -fix-errors was not specified.
Fixes have NOT been applied.

Found compiler error(s).

error: too many errors emitted, stopping now [clang-diagnostic-error]
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:883:33: error: no matching constructor for initialization of 'std::vector<std::shared_ptr<IFieldRefsAny>>' [clang-diagnostic-error]
  883 |             fields->set_entries({storage.refs_rho, storage.refs_rhov, storage.refs_rhoe});
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::init_solver_graph' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:569:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'size_type' (aka 'unsigned long') for 1st argument
  569 |       vector(size_type __n, const value_type& __value,
      |       ^      ~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:635:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'vector<shared_ptr<IFieldRefsAny>>' for 1st argument
  635 |       vector(vector&& __rv, const allocator_type& __m, true_type) noexcept
      |       ^      ~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:640:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'vector<shared_ptr<IFieldRefsAny>>' for 1st argument
  640 |       vector(vector&& __rv, const allocator_type& __m, false_type)
      |       ^      ~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:707:2: note: candidate template ignored: deduced conflicting types for parameter '_InputIterator' ('shared_ptr<FieldRefs<Tscal>>' vs. 'shared_ptr<FieldRefs<hipsycl::sycl::vec<double, 3>>>')
  707 |         vector(_InputIterator __first, _InputIterator __last,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:556:7: note: candidate constructor not viable: requires at most 2 arguments, but 3 were provided
  556 |       vector(size_type __n, const allocator_type& __a = allocator_type())
      |       ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:624:7: note: candidate constructor not viable: requires 2 arguments, but 3 were provided
  624 |       vector(const vector& __x, const __type_identity_t<allocator_type>& __a)
      |       ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:659:7: note: candidate constructor not viable: requires 2 arguments, but 3 were provided
  659 |       vector(vector&& __rv, const __type_identity_t<allocator_type>& __m)
      |       ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:678:7: note: candidate constructor not viable: requires at most 2 arguments, but 3 were provided
  678 |       vector(initializer_list<value_type> __l,
      |       ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  679 |              const allocator_type& __a = allocator_type())
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:542:7: note: candidate constructor not viable: requires single argument '__a', but 3 arguments were provided
  542 |       vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT
      |       ^      ~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:601:7: note: candidate constructor not viable: requires single argument '__x', but 3 arguments were provided
  601 |       vector(const vector& __x)
      |       ^      ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:620:7: note: candidate constructor not viable: requires 1 argument, but 3 were provided
  620 |       vector(vector&&) noexcept = default;
      |       ^      ~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:531:7: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
  531 |       vector() = default;
      |       ^
/__w/Shamrock/Shamrock/src/shamsolvergraph/include/shamsolvergraph/edge/EdgeList.hpp:76:65: note: passing argument to parameter 'new_entries' here
   76 |         inline void set_entries(std::vector<std::shared_ptr<T>> new_entries) {
      |                                                                 ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:890:17: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<shamrock::solvergraph::IFieldRefs<vec<long, 3, vec_storage<long, 3>>>>' [clang-diagnostic-error]
  890 |                 storage.refs_block_min,
      |                 ^~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::init_solver_graph' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<IFieldRefs<vec<long, 3>>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<IFieldRefs<vec<long, 3>>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:104:23: note: passing argument to parameter 'block_min' here
  104 |     EXPAND_NODE_EDGES(NODE_EDGES)
      |                       ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:915:13: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<shamrock::solvergraph::IFieldRefs<vec<long, 3, vec_storage<long, 3>>>>' [clang-diagnostic-error]
  915 |             storage.refs_block_min,
      |             ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<IFieldRefs<vec<long, 3>>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<IFieldRefs<vec<long, 3>>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/include/shammodels/ramses/modules/FindBlockNeigh.hpp:49:74: note: passing argument to parameter 'spans_block_min' here
   49 |             std::shared_ptr<shamrock::solvergraph::IFieldRefs<TgridVec>> spans_block_min,
      |                                                                          ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:924:13: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<shamrock::solvergraph::IFieldRefs<vec<long, 3, vec_storage<long, 3>>>>' [clang-diagnostic-error]
  924 |             storage.refs_block_min,
      |             ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<IFieldRefs<vec<long, 3>>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<IFieldRefs<vec<long, 3>>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/include/shammodels/ramses/modules/BlockNeighToCellNeigh.hpp:53:74: note: passing argument to parameter 'spans_block_min' here
   53 |             std::shared_ptr<shamrock::solvergraph::IFieldRefs<TgridVec>> spans_block_min,
      |                                                                          ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:947:13: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<shamrock::solvergraph::IFieldSpan<vec<long, 3, vec_storage<long, 3>>>>' [clang-diagnostic-error]
  947 |             storage.refs_block_min,
      |             ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<IFieldSpan<vec<long, 3>>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<IFieldSpan<vec<long, 3>>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/include/shammodels/ramses/modules/ComputeCellAABB.hpp:46:74: note: passing argument to parameter 'spans_block_min' here
   46 |             std::shared_ptr<shamrock::solvergraph::IFieldSpan<TgridVec>> spans_block_min,
      |                                                                          ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:964:13: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<shamrock::solvergraph::IFieldSpan<vec<long, 3, vec_storage<long, 3>>>>' [clang-diagnostic-error]
  964 |             storage.refs_block_min,
      |             ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<IFieldSpan<vec<long, 3>>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<IFieldSpan<vec<long, 3>>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/include/shammodels/ramses/modules/ComputeCoordinates.hpp:65:27: note: passing argument to parameter 'spans_block_min' here
   65 |         EXPAND_NODE_EDGES(NODE_EDGES)
      |                           ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:988:13: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<shamrock::solvergraph::IFieldSpan<vec<long, 3, vec_storage<long, 3>>>>' [clang-diagnostic-error]
  988 |             storage.refs_block_min,
      |             ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'const shared_ptr<IFieldSpan<vec<long, 3>>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'shared_ptr<IFieldSpan<vec<long, 3>>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<long, 3, vec_storage<long, 3>>>>' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/include/shammodels/ramses/modules/ComputeAMRLevel.hpp:44:27: note: passing argument to parameter 'block_min' here
   44 |         EXPAND_NODE_EDGES(NODE_EDGES)
      |                           ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:998:61: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' to 'const shared_ptr<shamrock::solvergraph::IFieldSpan<Tscal>>' [clang-diagnostic-error]
  998 |             storage.block_counts, storage.block_cell_sizes, storage.refs_rho, storage.cell_mass);
      |                                                             ^~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'const shared_ptr<IFieldSpan<double>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'shared_ptr<IFieldSpan<double>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<double>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<double>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldSpan<double>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<double>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/include/shammodels/ramses/modules/ComputeMass.hpp:46:27: note: passing argument to parameter 'spans_rhos' here
   46 |         EXPAND_NODE_EDGES(NODE_EDGES)
      |                           ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1630:33: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' to 'shared_ptr<IFieldRefs<double>>' [clang-diagnostic-error]
 1630 |         node_copy_rho.set_edges(storage.refs_rho, storage.rho_primitive);
      |                                 ^~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::evolve_once' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'const shared_ptr<IFieldRefs<double>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'shared_ptr<IFieldRefs<double>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<double>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<double>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/CopyPatchDataField.hpp:78:44: note: passing argument to parameter 'original' here
   78 |             std::shared_ptr<IFieldRefs<T>> original, std::shared_ptr<IFieldRefs<T>> target) {
      |                                            ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1643:45: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' to 'shared_ptr<IFieldRefs<double>>' [clang-diagnostic-error]
 1643 |                 node_cpy_rho_snap.set_edges(storage.refs_rho, storage.rho_snap);
      |                                             ^~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'const shared_ptr<IFieldRefs<double>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'shared_ptr<IFieldRefs<double>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<double>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<double>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/CopyPatchDataField.hpp:78:44: note: passing argument to parameter 'original' here
   78 |             std::shared_ptr<IFieldRefs<T>> original, std::shared_ptr<IFieldRefs<T>> target) {
      |                                            ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1646:46: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' to 'shared_ptr<IFieldRefs<double>>' [clang-diagnostic-error]
 1646 |                 node_cpy_rhoe_snap.set_edges(storage.refs_rhoe, storage.rhoe_snap);
      |                                              ^~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'const shared_ptr<IFieldRefs<double>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'shared_ptr<IFieldRefs<double>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<Tscal>>' (aka 'shared_ptr<FieldRefs<double>>') to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<double>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<double>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<double>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/CopyPatchDataField.hpp:78:44: note: passing argument to parameter 'original' here
   78 |             std::shared_ptr<IFieldRefs<T>> original, std::shared_ptr<IFieldRefs<T>> target) {
      |                                            ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1649:49: error: no viable conversion from 'shared_ptr<shamrock::solvergraph::FieldRefs<vec<double, 3, vec_storage<double, 3>>>>' to 'shared_ptr<IFieldRefs<vec<double, 3, vec_storage<double, 3>>>>' [clang-diagnostic-error]
 1649 |                 node_cpy_rho_vel_snap.set_edges(storage.refs_rhov, storage.rho_vel_snap);
      |                                                 ^~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::evolve_once' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:204:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<double, 3, vec_storage<double, 3>>>>' to 'const shared_ptr<IFieldRefs<vec<double, 3>>> &' for 1st argument
  204 |       shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor
      |       ^          ~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:359:7: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<double, 3, vec_storage<double, 3>>>>' to 'shared_ptr<IFieldRefs<vec<double, 3>>> &&' for 1st argument
  359 |       shared_ptr(shared_ptr&& __r) noexcept
      |       ^          ~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:412:17: note: candidate constructor not viable: no known conversion from 'std::shared_ptr<shamrock::solvergraph::FieldRefs<vec<double, 3, vec_storage<double, 3>>>>' to 'nullptr_t' (aka 'std::nullptr_t') for 1st argument
  412 |       constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { }
      |                 ^          ~~~~~~~~~
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3, hipsycl::sycl::detail::vec_storage<double, 3>>>, __gnu_cxx::_S_atomic>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3, hipsycl::sycl::detail::vec_storage<double, 3>>>> &>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>]
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:368:2: note: candidate template ignored: requirement 'is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3, hipsycl::sycl::detail::vec_storage<double, 3>>>, __gnu_cxx::_S_atomic>, std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3, hipsycl::sycl::detail::vec_storage<double, 3>>>>>::value' was not satisfied [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>]
  368 |         shared_ptr(shared_ptr<_Yp>&& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:387:2: note: candidate template ignored: could not match 'auto_ptr' against 'std::shared_ptr'
  387 |         shared_ptr(auto_ptr<_Yp>&& __r);
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:395:2: note: candidate template ignored: could not match 'unique_ptr' against 'std::shared_ptr'
  395 |         shared_ptr(unique_ptr<_Yp, _Del>&& __r)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:463:2: note: candidate template ignored: could not match '_Sp_alloc_shared_tag' against 'std::shared_ptr'
  463 |         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:478:2: note: candidate template ignored: could not match '_Sp_counted_array_base' against 'std::shared_ptr'
  478 |         shared_ptr(const _Sp_counted_array_base<_Alloc>& __a,
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:214:2: note: explicit constructor is not a candidate
  214 |         shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { }
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:380:11: note: explicit constructor is not a candidate
  380 |         explicit shared_ptr(const weak_ptr<_Yp>& __r)
      |                  ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/CopyPatchDataField.hpp:78:44: note: passing argument to parameter 'original' here
   78 |             std::shared_ptr<IFieldRefs<T>> original, std::shared_ptr<IFieldRefs<T>> target) {
      |                                            ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:47:13: error: static assertion failed due to requirement 'is_enabled_field_type_v<double>': IFieldRefs must be one of the field types enabled in the scheduler, see XMAC_LIST_ENABLED_FIELD [clang-diagnostic-error]
   47 |             is_enabled_field_type_v<T>,
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/FieldRefs.hpp:29:30: note: in instantiation of template class 'shamrock::solvergraph::IFieldRefs<double>' requested here
   29 |     class FieldRefs : public IFieldRefs<T> {
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:1417:57: note: in instantiation of template class 'shamrock::solvergraph::FieldRefs<double>' requested here
 1417 |     : public __bool_constant<__is_convertible(_From, _To)>
      |                                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1270:7: note: in instantiation of template class 'std::is_convertible<shamrock::solvergraph::FieldRefs<double> *, shamrock::solvergraph::IFieldRefs<double> *>' requested here
 1270 |     : is_convertible<_Yp*, _Tp*>::type
      |       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1437:14: note: in instantiation of template class 'std::__sp_compatible_with<shamrock::solvergraph::FieldRefs<double> *, shamrock::solvergraph::IFieldRefs<double> *>' requested here
 1437 |           enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type;
      |                     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1526:41: note: in instantiation of template type alias '_Compatible' requested here
 1526 |       template<typename _Yp, typename = _Compatible<_Yp>>
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1527:2: note: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
 1527 |         __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:179:4: note: in instantiation of template class 'std::is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<double>> &>' requested here
  179 |           is_constructible<__shared_ptr<_Tp>, _Args...>::value
      |           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:350:20: note: in instantiation of template type alias '_Constructible' requested here
  350 |                typename = _Constructible<const shared_ptr<_Yp>&>>
      |                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: in instantiation of default argument for 'shared_ptr<shamrock::solvergraph::FieldRefs<double>>' required here
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  352 |         : __shared_ptr<_Tp>(__r) { }
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1630:33: note: while substituting deduced template arguments into function template 'shared_ptr' [with _Yp = shamrock::solvergraph::FieldRefs<double>, $1 = (no value)]
 1630 |         node_copy_rho.set_edges(storage.refs_rho, storage.rho_primitive);
      |                                 ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::evolve_once' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:47:13: error: static assertion failed due to requirement 'is_enabled_field_type_v<hipsycl::sycl::vec<double, 3, hipsycl::sycl::detail::vec_storage<double, 3>>>': IFieldRefs must be one of the field types enabled in the scheduler, see XMAC_LIST_ENABLED_FIELD [clang-diagnostic-error]
   47 |             is_enabled_field_type_v<T>,
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/FieldRefs.hpp:29:30: note: in instantiation of template class 'shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>>' requested here
   29 |     class FieldRefs : public IFieldRefs<T> {
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:1417:57: note: in instantiation of template class 'shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>' requested here
 1417 |     : public __bool_constant<__is_convertible(_From, _To)>
      |                                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1270:7: note: in instantiation of template class 'std::is_convertible<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>> *>' requested here
 1270 |     : is_convertible<_Yp*, _Tp*>::type
      |       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1437:14: note: in instantiation of template class 'std::__sp_compatible_with<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>> *>' requested here
 1437 |           enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type;
      |                     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1526:41: note: in instantiation of template type alias '_Compatible' requested here
 1526 |       template<typename _Yp, typename = _Compatible<_Yp>>
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1527:2: note: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
 1527 |         __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:179:4: note: in instantiation of template class 'std::is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>>>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>> &>' requested here
  179 |           is_constructible<__shared_ptr<_Tp>, _Args...>::value
      |           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:350:20: note: in instantiation of template type alias '_Constructible' requested here
  350 |                typename = _Constructible<const shared_ptr<_Yp>&>>
      |                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: in instantiation of default argument for 'shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>>' required here
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  352 |         : __shared_ptr<_Tp>(__r) { }
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1649:49: note: while substituting deduced template arguments into function template 'shared_ptr' [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>, $1 = (no value)]
 1649 |                 node_cpy_rho_vel_snap.set_edges(storage.refs_rhov, storage.rho_vel_snap);
      |                                                 ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::evolve_once' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:47:13: error: static assertion failed due to requirement 'is_enabled_field_type_v<hipsycl::sycl::vec<long, 3, hipsycl::sycl::detail::vec_storage<long, 3>>>': IFieldRefs must be one of the field types enabled in the scheduler, see XMAC_LIST_ENABLED_FIELD [clang-diagnostic-error]
   47 |             is_enabled_field_type_v<T>,
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/FieldRefs.hpp:29:30: note: in instantiation of template class 'shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>>' requested here
   29 |     class FieldRefs : public IFieldRefs<T> {
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:1417:57: note: in instantiation of template class 'shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>' requested here
 1417 |     : public __bool_constant<__is_convertible(_From, _To)>
      |                                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1270:7: note: in instantiation of template class 'std::is_convertible<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>> *>' requested here
 1270 |     : is_convertible<_Yp*, _Tp*>::type
      |       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1437:14: note: in instantiation of template class 'std::__sp_compatible_with<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>> *>' requested here
 1437 |           enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type;
      |                     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1526:41: note: in instantiation of template type alias '_Compatible' requested here
 1526 |       template<typename _Yp, typename = _Compatible<_Yp>>
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1527:2: note: (skipping 3 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
 1527 |         __shared_ptr(const __shared_ptr<_Yp, _Lp>& __r) noexcept
      |         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:179:4: note: in instantiation of template class 'std::is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>>>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>> &>' requested here
  179 |           is_constructible<__shared_ptr<_Tp>, _Args...>::value
      |           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:350:20: note: in instantiation of template type alias '_Constructible' requested here
  350 |                typename = _Constructible<const shared_ptr<_Yp>&>>
      |                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: in instantiation of default argument for 'shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>>' required here
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  352 |         : __shared_ptr<_Tp>(__r) { }
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:890:17: note: while substituting deduced template arguments into function template 'shared_ptr' [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>, $1 = (no value)]
  890 |                 storage.refs_block_min,
      |                 ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::init_solver_graph' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:32:27: error: constexpr variable 'is_enabled_field_type_v<double>' must be initialized by a constant expression [clang-diagnostic-error]
   32 |     inline constexpr bool is_enabled_field_type_v =
      |                           ^
      |                                                   = false
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:47:13: note: in instantiation of variable template specialization 'shamrock::solvergraph::is_enabled_field_type_v<double>' requested here
   47 |             is_enabled_field_type_v<T>,
      |             ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/FieldRefs.hpp:29:30: note: in instantiation of template class 'shamrock::solvergraph::IFieldRefs<double>' requested here
   29 |     class FieldRefs : public IFieldRefs<T> {
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:1417:57: note: in instantiation of template class 'shamrock::solvergraph::FieldRefs<double>' requested here
 1417 |     : public __bool_constant<__is_convertible(_From, _To)>
      |                                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1270:7: note: in instantiation of template class 'std::is_convertible<shamrock::solvergraph::FieldRefs<double> *, shamrock::solvergraph::IFieldRefs<double> *>' requested here
 1270 |     : is_convertible<_Yp*, _Tp*>::type
      |       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1437:14: note: in instantiation of template class 'std::__sp_compatible_with<shamrock::solvergraph::FieldRefs<double> *, shamrock::solvergraph::IFieldRefs<double> *>' requested here
 1437 |           enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type;
      |                     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1526:41: note: (skipping 4 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
 1526 |       template<typename _Yp, typename = _Compatible<_Yp>>
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:179:4: note: in instantiation of template class 'std::is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<double>>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<double>> &>' requested here
  179 |           is_constructible<__shared_ptr<_Tp>, _Args...>::value
      |           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:350:20: note: in instantiation of template type alias '_Constructible' requested here
  350 |                typename = _Constructible<const shared_ptr<_Yp>&>>
      |                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: in instantiation of default argument for 'shared_ptr<shamrock::solvergraph::FieldRefs<double>>' required here
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  352 |         : __shared_ptr<_Tp>(__r) { }
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1630:33: note: while substituting deduced template arguments into function template 'shared_ptr' [with _Yp = shamrock::solvergraph::FieldRefs<double>, $1 = (no value)]
 1630 |         node_copy_rho.set_edges(storage.refs_rho, storage.rho_primitive);
      |                                 ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::evolve_once' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:32:27: error: constexpr variable 'is_enabled_field_type_v<hipsycl::sycl::vec<double, 3>>' must be initialized by a constant expression [clang-diagnostic-error]
   32 |     inline constexpr bool is_enabled_field_type_v =
      |                           ^
      |                                                   = false
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:47:13: note: in instantiation of variable template specialization 'shamrock::solvergraph::is_enabled_field_type_v<hipsycl::sycl::vec<double, 3>>' requested here
   47 |             is_enabled_field_type_v<T>,
      |             ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/FieldRefs.hpp:29:30: note: in instantiation of template class 'shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>>' requested here
   29 |     class FieldRefs : public IFieldRefs<T> {
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:1417:57: note: in instantiation of template class 'shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>' requested here
 1417 |     : public __bool_constant<__is_convertible(_From, _To)>
      |                                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1270:7: note: in instantiation of template class 'std::is_convertible<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>> *>' requested here
 1270 |     : is_convertible<_Yp*, _Tp*>::type
      |       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1437:14: note: in instantiation of template class 'std::__sp_compatible_with<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>> *>' requested here
 1437 |           enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type;
      |                     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1526:41: note: (skipping 4 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
 1526 |       template<typename _Yp, typename = _Compatible<_Yp>>
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:179:4: note: in instantiation of template class 'std::is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<double, 3>>>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>> &>' requested here
  179 |           is_constructible<__shared_ptr<_Tp>, _Args...>::value
      |           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:350:20: note: in instantiation of template type alias '_Constructible' requested here
  350 |                typename = _Constructible<const shared_ptr<_Yp>&>>
      |                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: in instantiation of default argument for 'shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>>' required here
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  352 |         : __shared_ptr<_Tp>(__r) { }
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1649:49: note: while substituting deduced template arguments into function template 'shared_ptr' [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<double, 3>>, $1 = (no value)]
 1649 |                 node_cpy_rho_vel_snap.set_edges(storage.refs_rhov, storage.rho_vel_snap);
      |                                                 ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::evolve_once' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:32:27: error: constexpr variable 'is_enabled_field_type_v<hipsycl::sycl::vec<long, 3>>' must be initialized by a constant expression [clang-diagnostic-error]
   32 |     inline constexpr bool is_enabled_field_type_v =
      |                           ^
      |                                                   = false
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:47:13: note: in instantiation of variable template specialization 'shamrock::solvergraph::is_enabled_field_type_v<hipsycl::sycl::vec<long, 3>>' requested here
   47 |             is_enabled_field_type_v<T>,
      |             ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/FieldRefs.hpp:29:30: note: in instantiation of template class 'shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>>' requested here
   29 |     class FieldRefs : public IFieldRefs<T> {
      |                              ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/type_traits:1417:57: note: in instantiation of template class 'shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>' requested here
 1417 |     : public __bool_constant<__is_convertible(_From, _To)>
      |                                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1270:7: note: in instantiation of template class 'std::is_convertible<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>> *>' requested here
 1270 |     : is_convertible<_Yp*, _Tp*>::type
      |       ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1437:14: note: in instantiation of template class 'std::__sp_compatible_with<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>> *, shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>> *>' requested here
 1437 |           enable_if<__sp_compatible_with<_Yp*, _Tp*>::value, _Res>::type;
      |                     ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr_base.h:1526:41: note: (skipping 4 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
 1526 |       template<typename _Yp, typename = _Compatible<_Yp>>
      |                                         ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:179:4: note: in instantiation of template class 'std::is_constructible<std::__shared_ptr<shamrock::solvergraph::IFieldRefs<hipsycl::sycl::vec<long, 3>>>, const std::shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>> &>' requested here
  179 |           is_constructible<__shared_ptr<_Tp>, _Args...>::value
      |           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:350:20: note: in instantiation of template type alias '_Constructible' requested here
  350 |                typename = _Constructible<const shared_ptr<_Yp>&>>
      |                           ^
/usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/shared_ptr.h:351:2: note: in instantiation of default argument for 'shared_ptr<shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>>' required here
  351 |         shared_ptr(const shared_ptr<_Yp>& __r) noexcept
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  352 |         : __shared_ptr<_Tp>(__r) { }
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:890:17: note: while substituting deduced template arguments into function template 'shared_ptr' [with _Yp = shamrock::solvergraph::FieldRefs<hipsycl::sycl::vec<long, 3>>, $1 = (no value)]
  890 |                 storage.refs_block_min,
      |                 ^
/__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp:1825:41: note: in instantiation of member function 'shammodels::basegodunov::Solver<hipsycl::sycl::vec<double, 3>, hipsycl::sycl::vec<long, 3>>::init_solver_graph' requested here
 1825 | template class shammodels::basegodunov::Solver<f64_3, i64_3>;
      |                                         ^
/__w/Shamrock/Shamrock/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:34:27: error: expected expression [clang-diagnostic-error]
   34 |         static_cast<bool>()
      |                           ^

408 warnings and 20 errors generated.
Error while processing /__w/Shamrock/Shamrock/src/shammodels/ramses/src/Solver.cpp.
Suppressed 408 warnings (405 in non-user code, 3 due to line filter).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler errors, but -fix-errors was not specified.
Fixes have NOT been applied.

Found compiler error(s).

Suggested changes

Detailed changes :
diff --git a/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp b/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp
index 3d500634..ce653b4b 100644
--- a/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp
+++ b/src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp
@@ -31,7 +31,7 @@ namespace shamrock::solvergraph {
     template<class T>
     inline constexpr bool is_enabled_field_type_v =
         #define X(args) std::is_same_v<T, args> ||
-        XMAC_LIST_ENABLED_FIELD false
+        static_cast<bool>()
         #undef X
         ;
     // clang-format on
# Doxygen diff with `main` Removed warnings : 40 New warnings : 41 Warnings count : 8224 → 8225 (0.0%)
Detailed changes :
+ src/shammodels/ramses/src/Solver.cpp:100: warning: Member AMRBlocksToVtk(bool write_id_patch, bool write_world_rank, u32 block_size) (function) of class AMRBlocksToVtk is not documented.
- src/shammodels/ramses/src/Solver.cpp:268: warning: Member _impl_get_label() (function) of class PatchDataLayerToVtk is not documented.
- src/shammodels/ramses/src/Solver.cpp:270: warning: Member _impl_get_tex() (function) of class PatchDataLayerToVtk is not documented.
- src/shammodels/ramses/src/Solver.cpp:70: warning: Compound PatchDataLayerToVtk is not documented.
+ src/shammodels/ramses/src/Solver.cpp:73: warning: Member NODE_EDGES(X_RO, X_RW) (macro definition) of file Solver.cpp is not documented.
- src/shammodels/ramses/src/Solver.cpp:77: warning: Member PatchDataLayerToVtk(bool write_id_patch, bool write_world_rank, u32 block_size) (function) of class PatchDataLayerToVtk is not documented.
- src/shammodels/ramses/src/Solver.cpp:81: warning: Compound PatchDataLayerToVtk::Edges is not documented.
- src/shammodels/ramses/src/Solver.cpp:83: warning: Member filename (variable) of struct PatchDataLayerToVtk::Edges is not documented.
- src/shammodels/ramses/src/Solver.cpp:84: warning: Member patch_data_layers (variable) of struct PatchDataLayerToVtk::Edges is not documented.
- src/shammodels/ramses/src/Solver.cpp:87: warning: Member set_edges(std::shared_ptr< shamrock::solvergraph::IDataEdge< std::string > > filename, std::shared_ptr< shamrock::solvergraph::IPatchDataLayerRefs > patch_data_layers) (function) of class PatchDataLayerToVtk is not documented.
- src/shammodels/ramses/src/Solver.cpp:94: warning: Member get_edges() (function) of class PatchDataLayerToVtk is not documented.
- src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:58: warning: Member get_rank_max(const IFieldRefs< T > &field_refs) (function) of namespace shamrock::solvergraph is not documented.
- src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:67: warning: Member get_rank_min(const IFieldRefs< T > &field_refs) (function) of namespace shamrock::solvergraph is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:71: warning: Member get_rank_max(const IFieldRefs< T > &field_refs) (function) of namespace shamrock::solvergraph is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefs.hpp:80: warning: Member get_rank_min(const IFieldRefs< T > &field_refs) (function) of namespace shamrock::solvergraph is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:101: warning: Member FieldRefsLambdaVisitor(Func &&f) (function) of class shamrock::solvergraph::FieldRefsLambdaVisitor is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:103: warning: Member X(args) (macro definition) of file IFieldRefsAny.hpp is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:115: warning: Member FieldRefsLambdaConstVisitor(Func &&f) (function) of class shamrock::solvergraph::FieldRefsLambdaConstVisitor is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:117: warning: Member X(args) (macro definition) of file IFieldRefsAny.hpp is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:33: warning: Member X(args) (macro definition) of file IFieldRefsAny.hpp is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:49: warning: Member X(args) (macro definition) of file IFieldRefsAny.hpp is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldRefsAny.hpp:59: warning: Member X(args) (macro definition) of file IFieldRefsAny.hpp is not documented.
- src/shamrock/include/shamrock/solvergraph/IFieldSpan.hpp:39: warning: Member IEdgeNamed(std::string name, std::string texsymbol) (function) of class shamrock::solvergraph::IFieldSpan is not documented.
+ src/shamrock/include/shamrock/solvergraph/IFieldSpan.hpp:42: warning: Member IEdgeNamed(std::string name, std::string texsymbol) (function) of class shamrock::solvergraph::IFieldSpan is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/edge/EdgeList.hpp:66: warning: Member IEdgeNamed(std::string name, std::string texsymbol) (function) of class shamrock::solvergraph::EdgeList is not documented.
- src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:28: warning: Compound shamrock::solvergraph::IEdge is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:30: warning: Compound shamrock::solvergraph::IEdge is not documented.
- src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:30: warning: Member get_label() const (function) of class shamrock::solvergraph::IEdge is not documented.
- src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:31: warning: Member get_tex_symbol() const (function) of class shamrock::solvergraph::IEdge is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:32: warning: Member get_label() const (function) of class shamrock::solvergraph::IEdge is not documented.
- src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:33: warning: Member _impl_get_dot_label() const =0 (function) of class shamrock::solvergraph::IEdge is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:33: warning: Member get_tex_symbol() const (function) of class shamrock::solvergraph::IEdge is not documented.
- src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:34: warning: Member _impl_get_tex_symbol() const =0 (function) of class shamrock::solvergraph::IEdge is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:35: warning: Member _impl_get_dot_label() const =0 (function) of class shamrock::solvergraph::IEdge is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/edge/IEdge.hpp:36: warning: Member _impl_get_tex_symbol() const =0 (function) of class shamrock::solvergraph::IEdge is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:278: warning: Member INODE_DECL_RO(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:279: warning: Member INODE_DECL_RW(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:280: warning: Member INODE_PARAM_RO(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:281: warning: Member INODE_PARAM_RW(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:282: warning: Member INODE_PUSH_RO1(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:283: warning: Member INODE_PUSH_RW1(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:284: warning: Member INODE_PUSH_RO2(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:285: warning: Member INODE_PUSH_RW2(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:286: warning: Member INODE_GET_RO(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:287: warning: Member INODE_GET_RW(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:289: warning: Member INODE_DECL_RO_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:291: warning: Member INODE_DECL_RW_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:292: warning: Member INODE_PARAM_RO_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:293: warning: Member INODE_PARAM_RW_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:294: warning: Member INODE_PUSH_RO1_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:295: warning: Member INODE_DECL_RO(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:295: warning: Member INODE_PUSH_RW1_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:296: warning: Member INODE_DECL_RW(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:296: warning: Member INODE_PUSH_RO2_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:297: warning: Member INODE_PARAM_RO(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:297: warning: Member INODE_PUSH_RW2_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:298: warning: Member INODE_GET_RO_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:298: warning: Member INODE_PARAM_RW(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:299: warning: Member INODE_GET_RW_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:299: warning: Member INODE_PUSH_RO1(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:300: warning: Member INODE_PUSH_RW1(type, name) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:301: warning: Member EXPAND_NODE_EDGES(EDGES) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:301: warning: Member INODE_PUSH_RO2(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:302: warning: Member INODE_PUSH_RW2(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:303: warning: Member INODE_GET_RO(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:304: warning: Member INODE_GET_RW(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:306: warning: Member INODE_DECL_RO_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:308: warning: Member INODE_DECL_RW_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:309: warning: Member INODE_PARAM_RO_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:310: warning: Member INODE_PARAM_RW_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:311: warning: Member INODE_PUSH_RO1_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:312: warning: Member INODE_PUSH_RW1_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:313: warning: Member INODE_PUSH_RO2_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:314: warning: Member INODE_PUSH_RW2_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:315: warning: Member INODE_GET_RO_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:316: warning: Member INODE_GET_RW_OPTIONAL(type, name) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:318: warning: Member EXPAND_NODE_EDGES(EDGES) (macro definition) of file INode.hpp is not documented.
- src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:321: warning: Member EXPAND_NODE_EDGES_OPTIONAL(EDGES) (macro definition) of file INode.hpp is not documented.
+ src/shamsolvergraph/include/shamsolvergraph/node/INode.hpp:338: warning: Member EXPAND_NODE_EDGES_OPTIONAL(EDGES) (macro definition) of file INode.hpp 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