32 template<
class Tvec,
class Tgr
idVec>
34 using Tscal = shambase::VecComponent<Tvec>;
39 Tscal grid_coord_to_pos_fact;
43 : block_size(block_size), block_nside(block_nside),
44 grid_coord_to_pos_fact(grid_coord_to_pos_fact) {
46 if (block_nside != 2) {
48 shambase::format(
"this module assume block_nside=2, got {}", block_nside));
52#define NODE_COMPUTE_COORDINATES(X_RO, X_RW) \
55 shamrock::solvergraph::Indexes<u32>, \
58 shamrock::solvergraph::IFieldSpan<TgridVec>, \
61 shamrock::solvergraph::IFieldSpan<TgridVec>, \
66 shamrock::solvergraph::IFieldSpan<Tvec>, \
69 EXPAND_NODE_EDGES(NODE_COMPUTE_COORDINATES)
71#undef NODE_COMPUTE_COORDINATES
75 inline virtual std::string
_impl_get_label()
const {
return "ComputeCoordinates"; }
utility to manipulate AMR blocks
std::uint32_t u32
32 bit unsigned integer
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
void _impl_evaluate_internal()
evaluate the node
Inode is node between data edges, takes multiple inputs, multiple outputs.
void throw_with_loc(std::string message, SourceLocation loc=SourceLocation{})
Throw an exception and append the source location to it.
namespace for the basegodunov model modules
utility class to handle AMR blocks