11#ifndef QUGAR_UNFITTED_DOMAIN_BINARY_PART_HPP
12#define QUGAR_UNFITTED_DOMAIN_BINARY_PART_HPP
43 using GridPtr = std::shared_ptr<const CartGridTP<dim>>;
44 using SubGridPtr = std::shared_ptr<const SubCartGridTP<dim>>;
67 [[nodiscard]]
bool is_in_tree(std::int64_t cell_id)
const;
77 const std::vector<std::int64_t> &target_cell_ids,
78 std::vector<std::int64_t> &cell_ids)
const;
90 std::array<std::shared_ptr<UnfittedBinarySpacePart<dim>>, 2>
children_;
92 template<
typename Func_0,
typename Func_1>
void transverse_tree(
const Func_0 &func_0,
const Func_1 &func_1)
const;
93 template<
typename Func_0,
typename Func_1> std::size_t
reduce(
const Func_0 &func_0,
const Func_1 &func_1)
const;
Definition of Cartesian grid class.
Definition unfitted_domain_binary_part.hpp:42
std::size_t reduce(const Func_0 &func_0, const Func_1 &func_1) const
std::array< std::shared_ptr< UnfittedBinarySpacePart< dim > >, 2 > children_
Definition unfitted_domain_binary_part.hpp:90
std::shared_ptr< Self > SelfPtr
Definition unfitted_domain_binary_part.hpp:47
ImmersedCellStatus get_status() const
ImmersedCellStatus status_
Definition unfitted_domain_binary_part.hpp:89
void transverse_tree(const Func_0 &func_0, const Func_1 &func_1) const
bool is_cell(ImmersedCellStatus status, std::int64_t cell_id) const
void get_cell_ids(ImmersedCellStatus status, const std::vector< std::int64_t > &target_cell_ids, std::vector< std::int64_t > &cell_ids) const
std::size_t get_num_cells(ImmersedCellStatus status) const
static std::function< bool(const Self &)> create_leaf_checker(ImmersedCellStatus status)
std::size_t get_num_leaves(ImmersedCellStatus status) const
SelfPtr get_child(int index)
void set_status(const ImmersedCellStatus &status)
SubGridPtr subgrid_
Definition unfitted_domain_binary_part.hpp:88
void get_cell_ids(ImmersedCellStatus status, std::vector< std::int64_t > &cell_ids) const
bool is_in_tree(std::int64_t cell_id) const
UnfittedBinarySpacePart(const SubGridPtr subgrid)
std::shared_ptr< const SubCartGridTP< dim > > SubGridPtr
Definition unfitted_domain_binary_part.hpp:44
SelfConstPtr find_leaf(std::int64_t cell_id) const
UnfittedBinarySpacePart(const GridPtr grid)
std::shared_ptr< const Self > SelfConstPtr
Definition unfitted_domain_binary_part.hpp:46
SubGridPtr get_subgrid() const
void get_leaves(ImmersedCellStatus status, std::vector< SelfConstPtr > &leaves) const
SelfConstPtr get_child(int index) const
std::shared_ptr< const CartGridTP< dim > > GridPtr
Definition unfitted_domain_binary_part.hpp:43
QUGaR's main namespace.
Definition affine_transf.hpp:28
@ cut
Definition cut_quadrature.hpp:34
@ empty
Definition cut_quadrature.hpp:34
@ full
Definition cut_quadrature.hpp:34
ImmersedCellStatus
Definition unfitted_domain_binary_part.hpp:34
std::ptrdiff_t index
Definition types.hpp:19