Go to the documentation of this file.
29 #ifndef EVAL_SUBSET_HH_
30 #define EVAL_SUBSET_HH_
132 const EdgeIntegral *edge_integral,
unsigned int local_point_idx);
254 unsigned int dim()
const {
291 auto bgn_it = make_iter<BulkPoint>(
BulkPoint(elm_cache_map, element_patch_idx,
begin_idx_));
292 auto end_it = make_iter<BulkPoint>(
BulkPoint(elm_cache_map, element_patch_idx,
end_idx_));
341 auto bgn_it = make_iter<EdgePoint>(
EdgePoint(
342 BulkPoint(elm_cache_map, element_patch_idx, 0),
this, begin_idx));
343 auto end_it = make_iter<EdgePoint>(
EdgePoint(
375 CouplingIntegral(std::shared_ptr<EdgeIntegral> edge_integral, std::shared_ptr<BulkIntegral> bulk_integral);
400 BulkPoint(elm_cache_map, element_patch_idx, 0),
this, begin_idx) );
424 BoundaryIntegral(std::shared_ptr<EdgeIntegral> edge_integral, std::shared_ptr<BulkIntegral> bulk_integral);
452 BulkPoint(elm_cache_map, element_patch_idx, 0),
this, begin_idx) );
Range< CouplingPoint > points(const DHCellSide &cell_side, const ElementCacheMap *elm_cache_map) const
Returns range of side local points for appropriate cell side accessor.
BulkIntegral()
Default constructor.
const ElementCacheMap * elm_cache_map_
unsigned int elem_patch_idx() const
unsigned int n_sides_
Number of sides (value 0 indicates bulk set)
const ElementCacheMap * elm_cache_map() const
Point accessor allow iterate over quadrature points of given side defined in local element coordinate...
Range< BulkPoint > points(unsigned int element_patch_idx, const ElementCacheMap *elm_cache_map) const
Returns range of bulk local points for appropriate cell accessor.
BaseIntegral()
Default constructor.
BulkPoint point_bdr(ElementAccessor< 3 > bdr_elm) const
Return corresponds BulkPoint on boundary element.
std::shared_ptr< BulkIntegral > bulk_integral_
Integral according to kower dim (boundary) element subset part in EvalPoints object.
unsigned int position_in_cache(unsigned mesh_elm_idx, bool bdr=false) const
Return position of element stored in ElementCacheMap.
const BoundaryIntegral * integral_
Pointer to edge point set.
int get_subset_low_idx() const
Return index of data block according to subset of lower dim in EvalPoints object.
BulkPoint(const ElementCacheMap *elm_cache_map, uint elem_idx, uint loc_point_idx)
Constructor.
BulkIntegral(std::shared_ptr< EvalPoints > eval_points, unsigned int dim, uint i_subset)
Constructor of bulk integral.
CouplingIntegral()
Default constructor.
Directing class of FieldValueCache.
const EdgeIntegral * integral_
std::shared_ptr< EvalPoints > eval_points_
Pointer to EvalPoints.
Base point accessor class.
int get_subset_idx() const
Return index of data block according to subset in EvalPoints object.
General point a+ side_begin_ + ccessor allow iterate over quadrature points of given side defined in ...
Point accessor allow iterate over quadrature points of given side defined in local element coordinate...
BaseIntegral(std::shared_ptr< EvalPoints > eval_points, unsigned int dim)
Constructor of bulk or side subset.
unsigned int dim() const
Return dimension of element appropriate to the side.
unsigned int dim_
Dimension of the cell on which points are placed.
int get_subset_low_idx() const
Return index of data block according to subset of lower dim (boundary) in EvalPoints object.
unsigned int dim() const
Returns dimension.
EdgePoint()
Default constructor.
SidePoint(BulkPoint bulk, uint side_begin)
Constructor.
~EdgeIntegral()
Destructor.
Side accessor allows to iterate over sides of DOF handler cell.
bool operator==(const BulkPoint &other)
Comparison of accessors.
unsigned int eval_point_idx() const
Return index in EvalPoints object.
EdgePoint point_on(const DHCellSide &edg_side) const
Return corresponds EdgePoint of neighbour side of same dimension (computing of side integrals).
uint side_begin(const DHCellSide &cell_side) const
const CouplingIntegral * integral_
Pointer to edge point set.
friend class CouplingPoint
friend class BoundaryPoint
unsigned int subset_index_
Index of data block according to subset in EvalPoints object.
#define ASSERT_PERMANENT(expr)
Allow use shorter versions of macro names if these names is not used with external library.
std::shared_ptr< EdgeIntegral > edge_integral_
Integral according to higher dim (bulk) element subset part in EvalPoints object.
unsigned int n_sides() const
Getter of n_sides.
std::shared_ptr< EvalPoints > eval_points() const
Getter of eval_points.
virtual ~BaseIntegral()
Destructor.
std::shared_ptr< EvalPoints > eval_points() const
Getter of eval_points object.
const ElementAccessor< 3 > elm() const
Return ElementAccessor to element of loc_ele_idx_.
BoundaryIntegral()
Default constructor.
void inc()
Iterates to next point.
bool operator==(const BoundaryPoint &other)
Comparison of accessors.
#define ASSERT_EQ(a, b)
Definition of comparative assert macro (EQual) only for debug mode.
unsigned int elem_patch_idx_
Index of element in the patch.
unsigned int side_begin_
Index of side in element.
unsigned int eval_point_idx() const
Return index in EvalPoints object.
std::shared_ptr< EvalPoints > eval_points() const
Getter of EvalPoints object.
~BulkIntegral()
Destructor.
std::shared_ptr< EdgeIntegral > edge_integral_
Integral according to side subset part (element of higher dim) in EvalPoints object.
Range< EdgePoint > points(const DHCellSide &cell_side, const ElementCacheMap *elm_cache_map) const
Returns range of side local points for appropriate cell side accessor.
bool operator==(const EdgePoint &other)
Comparison of accessors.
Range< BoundaryPoint > points(const DHCellSide &cell_side, const ElementCacheMap *elm_cache_map) const
Returns range of bulk local points for appropriate cell accessor.
ElementAccessor< 3 > element() const
int get_subset_idx() const
Return index of data block according to subset in EvalPoints object.
Point accessor allow iterate over quadrature points of given side defined in local element coordinate...
BulkPoint lower_dim(DHCellAccessor cell_lower) const
Return corresponds EdgePoint of neighbour side of same dimension (computing of side integrals).
Cell accessor allow iterate over DOF handler cells.
uint n_points_per_side_
Number of points. TODO: pass this to the constructor, avoid extraction from the eval_points.
BoundaryPoint()
Default constructor.
SidePoint()
Default constructor.
unsigned int subset_index_
EdgeIntegral()
Default constructor.
unsigned int local_point_idx_
Index of the local point in the integral object.
CouplingPoint()
Default constructor.
~BoundaryIntegral()
Destructor.
unsigned int idx() const
We need this method after replacing Region by RegionIdx, and movinf RegionDB instance into particular...
~CouplingIntegral()
Destructor.
int get_subset_high_idx() const
Return index of data block according to subset of higher dim in EvalPoints object.
BulkPoint()
Default constructor.
unsigned int side_idx() const
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR) only for debug mode.
bool operator==(const CouplingPoint &other)
Comparison of accessors.
bool operator==(const SidePoint &other)
Comparison of accessors.
int get_subset_high_idx() const
Return index of data block according to subset of higher dim in EvalPoints object.
Implementation of range helper class.
std::shared_ptr< BulkIntegral > bulk_integral_
Integral according to bulk subset part (element of lower dim) in EvalPoints object.
Class holds local coordinations of evaluating points (bulk and sides) specified by element dimension.