28 class AMRGridRefinementHandler {
34 using Tscal = shambase::VecComponent<Tvec>;
35 using Tgridscal = shambase::VecComponent<TgridVec>;
36 static constexpr u32 dim = shambase::VectorProperties<Tvec>::dimension;
42 using AMRBlock =
typename Config::AMRBlock;
44 using OrientedAMRGraph = OrientedAMRGraph<Tvec, TgridVec>;
47 Config &solver_config;
50 AMRGridRefinementHandler(
ShamrockCtx &context, Config &solver_config, Storage &storage)
51 : context(context), solver_config(solver_config), storage(storage) {}
53 void update_refinement();
70 template<
class UserAcc,
class... T>
71 void gen_refine_block_changes(
76 template<
class UserAcc>
79 template<
class UserAcc>
80 bool internal_derefine_grid(
83 template<
class UserAccCrit,
class UserAccSplit,
class UserAccMerge>
84 void internal_update_refinement();
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...