Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
NodeUpdateDerivsVaryingAlphaAV.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
19#include "shambackends/vec.hpp"
25
26#define NODE_UPDATE_DERIVS_VARYING_ALPHA_AV_EDGES(X_RO, X_RW) \
27 /* scalars */ \
28 X_RO(shamrock::solvergraph::ScalarEdge<Tscal>, gpart_mass) \
29 X_RO(shamrock::solvergraph::ScalarEdge<Tscal>, alpha_u) \
30 X_RO(shamrock::solvergraph::ScalarEdge<Tscal>, beta_AV) \
31 \
32 /* counts */ \
33 X_RO(shamrock::solvergraph::Indexes<u32>, part_counts) \
34 X_RO(shamrock::solvergraph::Indexes<u32>, part_counts_with_ghost) \
35 \
36 /* fields */ \
37 X_RO(shamrock::solvergraph::IFieldSpan<Tvec>, xyz) \
38 X_RO(shamrock::solvergraph::IFieldSpan<Tscal>, hpart) \
39 X_RO(shamrock::solvergraph::IFieldSpan<Tvec>, vxyz) \
40 X_RO(shamrock::solvergraph::IFieldSpan<Tscal>, uint) \
41 X_RO(shamrock::solvergraph::IFieldSpan<Tscal>, omega) \
42 X_RO(shamrock::solvergraph::IFieldSpan<Tscal>, pressure) \
43 X_RO(shamrock::solvergraph::IFieldSpan<Tscal>, cs) \
44 X_RO(shamrock::solvergraph::IFieldSpan<Tscal>, alpha_AV) \
45 \
46 /* neigh */ \
47 X_RO(shammodels::sph::solvergraph::NeighCache, neigh_cache) \
48 \
49 /* outputs */ \
50 X_RW(shamrock::solvergraph::IFieldSpan<Tvec>, axyz) \
51 X_RW(shamrock::solvergraph::IFieldSpan<Tscal>, duint)
52
54
55 template<class Tvec, template<class> class SPHKernel>
57
58 using Tscal = shambase::VecComponent<Tvec>;
59
60 static constexpr Tscal kernel_radius = SPHKernel<Tscal>::Rkern;
61
62 public:
64
65 EXPAND_NODE_EDGES(NODE_UPDATE_DERIVS_VARYING_ALPHA_AV_EDGES)
66
68
69 inline virtual std::string _impl_get_label() const { return "UpdateDerivsVaryingAlphaAV"; };
70
71 inline virtual std::string _impl_get_tex() const { return "TODO"; };
72 };
73} // namespace shammodels::sph::modules
virtual std::string _impl_get_tex() const
get the tex of the node
virtual std::string _impl_get_label() const
get the label of the node
Inode is node between data edges, takes multiple inputs, multiple outputs.
Definition INode.hpp:30
namespace for the sph model modules