QUGaR 0.1.3
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: