33 class CartesianRender {
35 using Tscal = shambase::VecComponent<Tvec>;
36 static constexpr u32 dim = shambase::VectorProperties<Tvec>::dimension;
37 using Kernel = SPHKernel<Tscal>;
43 Config &solver_config;
46 CartesianRender(
ShamrockCtx &context, Config &solver_config, Storage &storage)
47 : context(context), solver_config(solver_config), storage(storage) {}
56 std::function<field_getter_t> field_getter,
60 std::function<field_getter_t> field_getter,
75 std::string field_name,
82 std::string field_name,
89 std::string field_name,
96 std::function<field_getter_t> field_getter,
104 std::function<field_getter_t> field_getter,
128 std::string field_name,
139 std::string field_name,
150 std::string field_name,
151 const std::vector<Tvec> &positions,
156 positions.size(), shamsys::instance::get_compute_scheduler_ptr()};
158 return compute_slice(field_name, positions_buf, custom_getter);
162 std::string field_name,
168 rays.size(), shamsys::instance::get_compute_scheduler_ptr()};
170 return compute_column_integ(field_name, rays_buf, custom_getter);
174 std::string field_name,
180 ring_rays.size(), shamsys::instance::get_compute_scheduler_ptr()};
182 return compute_azymuthal_integ(field_name, ring_rays_buf, custom_getter);
188 positions.size(), shamsys::instance::get_compute_scheduler_ptr()};
190 return compute_slice(field, positions_buf);
197 rays.size(), shamsys::instance::get_compute_scheduler_ptr()};
199 return compute_column_integ(field, rays_buf);
206 ring_rays.size(), shamsys::instance::get_compute_scheduler_ptr()};
208 return compute_azymuthal_integ(field, ring_rays_buf);
T & get_check_ref(const std::unique_ptr< T > &ptr, SourceLocation loc=SourceLocation())
Takes a std::unique_ptr and returns a reference to the object it holds. It throws a std::runtime_erro...