32 class AMRGridRefinementHandler {
38 using Tscal = shambase::VecComponent<Tvec>;
39 using Tgridscal = shambase::VecComponent<TgridVec>;
40 static constexpr u32 dim = shambase::VectorProperties<Tvec>::dimension;
46 using AMRBlock =
typename Config::AMRBlock;
48 using OrientedAMRGraph = OrientedAMRGraph<Tvec, TgridVec>;
50 using TgridUint =
typename std::make_unsigned<shambase::VecComponent<TgridVec>>::type;
53 Config &solver_config;
56 AMRGridRefinementHandler(
ShamrockCtx &context, Config &solver_config, Storage &storage)
57 : context(context), solver_config(solver_config), storage(storage) {}
59 void update_refinement_old();
77 template<
class UserAcc,
class... T>
78 void gen_refine_block_changes_old(
83 template<
class UserAcc>
84 bool internal_refine_grid_old(
87 template<
class UserAcc>
88 bool internal_derefine_grid_old(
91 template<
class UserAccCrit,
class UserAccSplit,
class UserAccMerge>
92 void internal_update_refinement_old();
108 template<
class UserAcc,
class... T>
109 void gen_refine_block_changes_new(
117 void enforce_two_to_one_refinement_new(
123 void enforce_two_to_one_derefinement_new(
127 template<
class UserAcc>
128 bool internal_refine_grid_new(
131 template<
class UserAcc>
132 bool internal_derefine_grid_new(
135 template<
class UserAccCrit,
class UserAccSplit,
class UserAccMerge>
136 void internal_update_refinement_new();
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...