Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow > Struct Template Reference

utility class to handle AMR blocks More...

#include <shammodels/common/include/shammodels/common/amr/AMRBlock.hpp>

Public Types

using Tscal = shambase::VecComponent< Tvec >
 

Public Member Functions

template<class Acccellcoord >
void for_each_neigh_faces (shamrock::tree::ObjectCacheIterator &block_faces_iter, Acccellcoord acc_block_min, Acccellcoord acc_block_max, const u32 id_a, const shammath::AABB< TgridVec > aabb_cell)
 

Static Public Member Functions

static constexpr u32 get_index (std::array< u32, dim > coord) noexcept
 Get the local index within the AMR block.
 
static constexpr i32 get_index_relative (std::array< i32, dim > coord) noexcept
 
static constexpr std::array< u32, dim > get_coord (u32 i) noexcept
 
static std::pair< Tvec, Tvec > utils_get_cell_coords (std::pair< TgridVec, TgridVec > input, u32 lid)
 
template<class Func >
static void for_each_cell_in_block (Tvec delta_cell, Func &&functor) noexcept
 
template<class Func >
static void for_each_cells (sycl::handler &cgh, u32 block_cnt, const char *name, Func &&f)
 for each cell routine for amr block. This handle a loop over all the cells in blocks.
 
template<class Func >
static void for_each_cells_lid (sycl::handler &cgh, u32 block_cnt, const char *name, Func &&f)
 

Static Public Attributes

static constexpr u32 dim = shambase::VectorProperties<TgridVec>::dimension
 
static constexpr u32 NsideBlockPow = _NsideBlockPow
 
static constexpr u32 Nside = 1U << NsideBlockPow
 
static constexpr u32 side_size = Nside
 
static constexpr u32 block_size = shambase::pow_constexpr<dim>(Nside)
 

Detailed Description

template<class Tvec, class TgridVec, u32 _NsideBlockPow>
struct shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >

utility class to handle AMR blocks

Template Parameters
Tvec
NsideBlockPow

Definition at line 35 of file AMRBlock.hpp.

Member Typedef Documentation

◆ Tscal

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
using shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::Tscal = shambase::VecComponent<Tvec>

Definition at line 36 of file AMRBlock.hpp.

Member Function Documentation

◆ for_each_cell_in_block()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
template<class Func >
static void shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::for_each_cell_in_block ( Tvec  delta_cell,
Func &&  functor 
)
inlinestaticnoexcept

Definition at line 126 of file AMRBlock.hpp.

◆ for_each_cells()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
template<class Func >
static void shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::for_each_cells ( sycl::handler &  cgh,
u32  block_cnt,
const char *  name,
Func &&  f 
)
inlinestatic

for each cell routine for amr block. This handle a loop over all the cells in blocks.

Block::for_each_cells(cgh, mpdat.total_elements,"compite Pis",
[=](u32 block_id, u32 cell_gid){
vec d_cell =
(cell_max[block_id] - cell_min[block_id]).template convert<Tscal>() *
coord_conv_fact;
Tscal rho_i_j_k = rho[cell_gid];
}
);
std::uint32_t u32
32 bit unsigned integer
Template Parameters
Func
Parameters
cgh
name
block_cnt
f

Definition at line 162 of file AMRBlock.hpp.

◆ for_each_cells_lid()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
template<class Func >
static void shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::for_each_cells_lid ( sycl::handler &  cgh,
u32  block_cnt,
const char *  name,
Func &&  f 
)
inlinestatic

Definition at line 174 of file AMRBlock.hpp.

◆ for_each_neigh_faces()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
template<class Acccellcoord >
void shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::for_each_neigh_faces ( shamrock::tree::ObjectCacheIterator block_faces_iter,
Acccellcoord  acc_block_min,
Acccellcoord  acc_block_max,
const u32  id_a,
const shammath::AABB< TgridVec >  aabb_cell 
)
inline

Definition at line 187 of file AMRBlock.hpp.

◆ get_coord()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
static constexpr std::array< u32, dim > shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::get_coord ( u32  i)
inlinestaticconstexprnoexcept

Definition at line 98 of file AMRBlock.hpp.

◆ get_index()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
static constexpr u32 shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::get_index ( std::array< u32, dim >  coord)
inlinestaticconstexprnoexcept

Get the local index within the AMR block.

Parameters
coordwanted integer coordinates
Returns
constexpr u32 the index

Definition at line 52 of file AMRBlock.hpp.

◆ get_index_relative()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
static constexpr i32 shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::get_index_relative ( std::array< i32, dim >  coord)
inlinestaticconstexprnoexcept

Definition at line 75 of file AMRBlock.hpp.

◆ utils_get_cell_coords()

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
static std::pair< Tvec, Tvec > shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::utils_get_cell_coords ( std::pair< TgridVec, TgridVec >  input,
u32  lid 
)
inlinestatic

Definition at line 109 of file AMRBlock.hpp.

Member Data Documentation

◆ block_size

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
constexpr u32 shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::block_size = shambase::pow_constexpr<dim>(Nside)
staticconstexpr

Definition at line 44 of file AMRBlock.hpp.

◆ dim

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
constexpr u32 shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::dim = shambase::VectorProperties<TgridVec>::dimension
staticconstexpr

Definition at line 38 of file AMRBlock.hpp.

◆ Nside

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
constexpr u32 shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::Nside = 1U << NsideBlockPow
staticconstexpr

Definition at line 41 of file AMRBlock.hpp.

◆ NsideBlockPow

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
constexpr u32 shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::NsideBlockPow = _NsideBlockPow
staticconstexpr

Definition at line 40 of file AMRBlock.hpp.

◆ side_size

template<class Tvec , class TgridVec , u32 _NsideBlockPow>
constexpr u32 shammodels::amr::AMRBlock< Tvec, TgridVec, _NsideBlockPow >::side_size = Nside
staticconstexpr

Definition at line 42 of file AMRBlock.hpp.


The documentation for this struct was generated from the following file: