31 using flt = shambase::VecComponent<vec>;
33 static constexpr flt Rkern = SPHKernel::Rkern;
43 static void iterate_smoothing_length_tree(
45 sycl::buffer<vec> &merged_r,
46 sycl::buffer<flt> &hnew,
47 sycl::buffer<flt> &hold,
48 sycl::buffer<flt> &eps_h,
49 sycl::range<1> update_range,
67 using flt = shambase::VecComponent<vec>;
69 static constexpr flt Rkern = SPHKernel::Rkern;
82 using namespace shamrock::patch;
84 const u32 ihpart = sched.pdl_old().template get_field_idx<flt>(
"hpart");
86 PatchField<flt> interactR_patch = sched.map_owned_to_patch_field_simple<flt>(
88 if (!pdat.is_empty()) {
89 return pdat.get_field<flt>(ihpart).compute_max() * h_evol_max * Rkern;
97 shamsys::instance::get_compute_queue(),
99 [](flt h0, flt h1, flt h2, flt h3, flt h4, flt h5, flt h6, flt h7) {
100 return sham::max_8points(h0, h1, h2, h3, h4, h5, h6, h7);
106 static void iterate_smoothing_length_cache(
112 sycl::range<1> update_range,
121 template<
class u_morton>
122 static void iterate_smoothing_length_tree(
124 sycl::buffer<vec> &merged_r,
125 sycl::buffer<flt> &hnew,
126 sycl::buffer<flt> &hold,
127 sycl::buffer<flt> &eps_h,
128 sycl::range<1> update_range,
148 static void compute_omega(
152 sycl::range<1> part_range,