QUGaR 0.0.9
Loading...
Searching...
No Matches
qugar::impl::UnfittedImplDomain< dim > Class Template Reference

#include <impl_unfitted_domain.hpp>

Inheritance diagram for qugar::impl::UnfittedImplDomain< dim >:
[legend]
Collaboration diagram for qugar::impl::UnfittedImplDomain< dim >:
[legend]

Public Types

using FuncSign = qugar::impl::FuncSign
 
using FacetsStatus = std::array<ImmersedFacetStatus, static_cast<std::size_t>(dim) * 2>
 
using GridPtr = std::shared_ptr<const CartGridTP<dim>>
 
using FuncPtr = std::shared_ptr<const ImplicitFunc<dim>>
 
using KDTree = UnfittedBinarySpacePart<dim>
 
using KDTreePtr = std::shared_ptr<UnfittedBinarySpacePart<dim>>
 
- Public Types inherited from qugar::UnfittedDomain< dim >
using FacetsStatus = std::array<ImmersedFacetStatus, n_facets_per_cell>
 
using GridPtr = std::shared_ptr<const CartGridTP<dim>>
 
using BinarySpacePartPtr = std::shared_ptr<UnfittedBinarySpacePart<dim>>
 

Public Member Functions

 UnfittedImplDomain (const FuncPtr phi, GridPtr grid)
 
 UnfittedImplDomain (const FuncPtr phi, GridPtr grid, const std::vector< std::int64_t > &cells)
 
FuncPtr get_impl_func () const
 
- Public Member Functions inherited from qugar::UnfittedDomain< dim >
virtual ~UnfittedDomain ()=default
 
 UnfittedDomain (const UnfittedDomain &other)=default
 Copy constructor.
 
UnfittedDomainoperator= (const UnfittedDomain &other)=default
 Copy assignment operator.
 
 UnfittedDomain (UnfittedDomain &&other) noexcept=default
 Move constructor.
 
UnfittedDomainoperator= (UnfittedDomain &&other) noexcept=default
 Move assignment operator.
 
GridPtr get_grid () const
 
bool is_exterior_facet (std::int64_t cell_id, int local_facet_id) const
 
std::size_t get_num_total_cells () const
 
std::size_t get_num_full_cells () const
 
std::size_t get_num_empty_cells () const
 
std::size_t get_num_cut_cells () const
 
bool has_facets_with_unf_bdry () const
 
void get_full_cells (std::vector< std::int64_t > &cell_ids) const
 
void get_empty_cells (std::vector< std::int64_t > &cell_ids) const
 
void get_cut_cells (std::vector< std::int64_t > &cell_ids) const
 
void get_full_cells (const std::vector< std::int64_t > &target_cell_ids, std::vector< std::int64_t > &cell_ids) const
 
void get_empty_cells (const std::vector< std::int64_t > &target_cell_ids, std::vector< std::int64_t > &cell_ids) const
 
void get_cut_cells (const std::vector< std::int64_t > &target_cell_ids, std::vector< std::int64_t > &cell_ids) const
 
void get_empty_facets (std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_full_facets (std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_unfitted_facets (std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_full_unfitted_facets (std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_cut_facets (std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_empty_facets (const std::vector< std::int64_t > &target_cell_ids, const std::vector< int > &target_local_facets_ids, std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_full_facets (const std::vector< std::int64_t > &target_cell_ids, const std::vector< int > &target_local_facets_ids, std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_unfitted_facets (const std::vector< std::int64_t > &target_cell_ids, const std::vector< int > &target_local_facets_ids, std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_full_unfitted_facets (const std::vector< std::int64_t > &target_cell_ids, const std::vector< int > &target_local_facets_ids, std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
void get_cut_facets (const std::vector< std::int64_t > &target_cell_ids, const std::vector< int > &target_local_facets_ids, std::vector< std::int64_t > &cell_ids, std::vector< int > &local_facets_ids) const
 
bool is_full_cell (std::int64_t cell_id) const
 
bool is_empty_cell (std::int64_t cell_id) const
 
bool is_cut_cell (std::int64_t cell_id) const
 
bool is_full_with_unf_bdry_cell (std::int64_t cell_id) const
 
bool is_full_facet (std::int64_t cell_id, int local_facet_id) const
 
bool is_empty_facet (std::int64_t cell_id, int local_facet_id) const
 
bool is_cut_facet (std::int64_t cell_id, int local_facet_id) const
 
bool is_full_unfitted_facet (std::int64_t cell_id, int local_facet_id) const
 
bool is_cell_with_unf_bdry (std::int64_t cell_id) const
 
bool has_unfitted_boundary (std::int64_t cell_id, int local_facet_id) const
 
bool has_external_boundary (std::int64_t cell_id, int local_facet_id) const
 

Private Member Functions

void create_decomposition (KDTree &tree, const std::function< FuncSign(const BoundBox< dim > &)> &func_sign, const std::optional< std::vector< std::int64_t > > &target_cells)
 
void classify_undetermined_sign_cell (KDTree &tree)
 

Private Attributes

FuncPtr phi_
 

Additional Inherited Members

- Static Public Member Functions inherited from qugar::UnfittedDomain< dim >
static bool is_full_facet (ImmersedFacetStatus status)
 
static bool is_empty_facet (ImmersedFacetStatus status)
 
static bool is_cut_facet (ImmersedFacetStatus status)
 
static bool is_full_unfitted_facet (ImmersedFacetStatus status)
 
static bool has_unfitted_boundary (ImmersedFacetStatus status)
 
static bool has_external_boundary (ImmersedFacetStatus status)
 
- Static Public Attributes inherited from qugar::UnfittedDomain< dim >
static const int n_facets_per_cell = dim * 2
 
- Protected Member Functions inherited from qugar::UnfittedDomain< dim >
 UnfittedDomain (const GridPtr &grid)
 
void init_full_cells_with_unf_bdry ()
 
- Protected Attributes inherited from qugar::UnfittedDomain< dim >
GridPtr grid_
 
BinarySpacePartPtr binary_sp_part_
 
std::unordered_map< std::int64_t, FacetsStatusfacets_status_
 
std::vector< std::int64_t > full_cells_with_unf_bdry_
 

Member Typedef Documentation

◆ FacetsStatus

template<int dim>
using qugar::impl::UnfittedImplDomain< dim >::FacetsStatus = std::array<ImmersedFacetStatus, static_cast<std::size_t>(dim) * 2>

◆ FuncPtr

template<int dim>
using qugar::impl::UnfittedImplDomain< dim >::FuncPtr = std::shared_ptr<const ImplicitFunc<dim>>

◆ FuncSign

template<int dim>
using qugar::impl::UnfittedImplDomain< dim >::FuncSign = qugar::impl::FuncSign

◆ GridPtr

template<int dim>
using qugar::impl::UnfittedImplDomain< dim >::GridPtr = std::shared_ptr<const CartGridTP<dim>>

◆ KDTree

template<int dim>
using qugar::impl::UnfittedImplDomain< dim >::KDTree = UnfittedBinarySpacePart<dim>

◆ KDTreePtr

template<int dim>
using qugar::impl::UnfittedImplDomain< dim >::KDTreePtr = std::shared_ptr<UnfittedBinarySpacePart<dim>>

Constructor & Destructor Documentation

◆ UnfittedImplDomain() [1/2]

template<int dim>
qugar::impl::UnfittedImplDomain< dim >::UnfittedImplDomain ( const FuncPtr phi,
GridPtr grid )
explicit

◆ UnfittedImplDomain() [2/2]

template<int dim>
qugar::impl::UnfittedImplDomain< dim >::UnfittedImplDomain ( const FuncPtr phi,
GridPtr grid,
const std::vector< std::int64_t > & cells )
explicit

Member Function Documentation

◆ classify_undetermined_sign_cell()

template<int dim>
void qugar::impl::UnfittedImplDomain< dim >::classify_undetermined_sign_cell ( KDTree & tree)
private

◆ create_decomposition()

template<int dim>
void qugar::impl::UnfittedImplDomain< dim >::create_decomposition ( KDTree & tree,
const std::function< FuncSign(const BoundBox< dim > &)> & func_sign,
const std::optional< std::vector< std::int64_t > > & target_cells )
private

◆ get_impl_func()

template<int dim>
FuncPtr qugar::impl::UnfittedImplDomain< dim >::get_impl_func ( ) const
nodiscard

Member Data Documentation

◆ phi_

template<int dim>
FuncPtr qugar::impl::UnfittedImplDomain< dim >::phi_
private

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