Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
SGFMMPlummer.hpp
Go to the documentation of this file.
1// -------------------------------------------------------//
2//
3// SHAMROCK code for hydrodynamics
4// Copyright (c) 2021-2026 Timothée David--Cléris <tim.shamrock@proton.me>
5// SPDX-License-Identifier: CeCILL Free Software License Agreement v2.1
6// Shamrock is licensed under the CeCILL 2.1 License, see LICENSE for more information
7//
8// -------------------------------------------------------//
9
10#pragma once
11
18
20#include "shambase/integer.hpp"
23#include "shamcomm/logs.hpp"
29#include <sycl/sycl.hpp>
30
31#define NODE_EDGES(X_RO, X_RW) \
32 X_RO(shamrock::solvergraph::Indexes<u32>, sizes) \
33 X_RO(shamrock::solvergraph::IDataEdge<Tscal>, gpart_mass) \
34 X_RO(shamrock::solvergraph::IDataEdge<Tscal>, constant_G) \
35 X_RO(shamrock::solvergraph::FieldRefs<Tvec>, field_xyz) \
36 X_RW(shamrock::solvergraph::FieldRefs<Tvec>, field_axyz_ext)
37
39
40 template<class Tvec, u32 mm_order>
41 class SGFMMPlummer : public shamrock::solvergraph::INode {
42
43 using Tscal = shambase::VecComponent<Tvec>;
44
45 Tscal epsilon;
46 Tscal theta_crit;
47 u32 reduction_level;
48
49 public:
50 explicit SGFMMPlummer(Tscal epsilon, Tscal theta_crit, u32 reduction_level)
51 : epsilon(epsilon), theta_crit(theta_crit), reduction_level(reduction_level) {}
52
53 EXPAND_NODE_EDGES(NODE_EDGES)
54
55 inline std::string _impl_get_label() const override { return "SGFMMPlummer"; }
56 std::string _impl_get_tex() const override { return "TODO"; }
57
58 protected:
59 void _impl_evaluate_internal() override;
60 };
61
62} // namespace shammodels::sph::modules
63
64#undef NODE_EDGES
std::uint32_t u32
32 bit unsigned integer
void _impl_evaluate_internal() override
evaluate the node
std::string _impl_get_tex() const override
get the tex of the node
std::string _impl_get_label() const override
get the label of the node
Inode is node between data edges, takes multiple inputs, multiple outputs.
Definition INode.hpp:31
This header file contains utility functions related to exception handling in the code.
namespace for the sph model modules
This file contains the definition for the stacktrace related functionality.