41 THROW( ExcElementNotInCache() << EI_ElementIdx(cell.
elm_idx()) );
43 auto bgn_it = make_iter<BulkPoint>(
BulkPoint(cell, elm_cache_map, shared_from_this(),
eval_points_->subset_begin(
dim_, subset_index_)) );
44 auto end_it = make_iter<BulkPoint>(
BulkPoint(cell, elm_cache_map, shared_from_this(),
eval_points_->subset_end(
dim_, subset_index_)) );
57 for (
unsigned int i_side=0; i_side<
n_sides_; ++i_side) {
60 perm_indices_[i_side][i_perm] =
new unsigned int [points_per_side];
66 for (
unsigned int i_side=0; i_side<
n_sides_; ++i_side) {
77 THROW( ExcElementNotInCache() << EI_ElementIdx(cell_side.
cell().
elm_idx()) );
81 unsigned int points_per_side = (end_idx - begin_idx) / this->
n_sides();
82 auto bgn_it = make_iter<EdgePoint>(
EdgePoint(cell_side, elm_cache_map, shared_from_this(), 0 ) );
83 auto end_it = make_iter<EdgePoint>(
EdgePoint(cell_side, elm_cache_map, shared_from_this(), points_per_side ) );
93 :
BaseIntegral(edge_integral->
eval_points(), edge_integral->
dim()), edge_integral_(edge_integral), bulk_integral_(bulk_integral) {
138 return EdgePoint(edg_side, elm_cache_map_, this->integral_, this->local_point_idx_);
std::shared_ptr< EdgeIntegral > edge_integral_
Integral according to side subset part (element of higher dim) in EvalPoints object.
unsigned int n_sides() const
Getter of n_sides.
#define ASSERT_EQ_DBG(a, b)
Definition of comparative assert macro (EQual) only for debug mode.
unsigned int elm_idx() const
Return serial idx to element of loc_ele_idx_.
Point accessor allow iterate over bulk quadrature points defined in local element coordinates...
Point accessor allow iterate over quadrature points of given side defined in local element coordinate...
unsigned int dim() const
Returns dimension.
EdgePoint permute(DHCellSide edg_side) const
Return corresponds EdgePoint of neighbour side of same dimension (computing of side integrals)...
Directing class of FieldValueCache.
unsigned int element_cache_index() const
Getter of elm_cache_index_.
Cell accessor allow iterate over DOF handler cells.
~CouplingIntegral()
Destructor.
std::shared_ptr< EvalPoints > eval_points_
Pointer to EvalPoints.
std::shared_ptr< EdgeIntegral > edge_integral_
Boundary integral according to edge integral (? but need own special data members and methods ...
std::shared_ptr< BulkIntegral > bulk_integral_
Integral according to bulk subset part (element of lower dim) in EvalPoints object.
~BulkIntegral()
Destructor.
~BoundaryIntegral()
Destructor.
unsigned int dim_
Dimension of points.
Range< EdgePoint > points(const DHCellSide &cell_side, const ElementCacheMap *elm_cache_map) const
Returns range of bulk local points for appropriate cell accessor.
unsigned int *** perm_indices_
Indices to EvalPoints for different sides and permutations reflecting order of points.
static const unsigned int undef_elem_idx
Index of invalid element in cache.
unsigned int subset_index_
Index of data block according to subset in EvalPoints object.
~EdgeIntegral()
Destructor.
Range< BulkPoint > points(const DHCellAccessor &cell, const ElementCacheMap *elm_cache_map) const
Returns range of bulk local points for appropriate cell accessor.
CouplingIntegral()
Default constructor.
unsigned int n_permutations_
Number of permutations (value 0 indicates bulk set)
virtual ~BaseIntegral()
Destructor.
const DHCellAccessor & cell() const
Return DHCellAccessor appropriate to the side.
unsigned int n_sides_
Number of sides (value 0 indicates bulk set)
BoundaryIntegral()
Default constructor.
EdgeIntegral()
Default constructor.
Range< BulkPoint > points(const DHCellAccessor &cell, const ElementCacheMap *elm_cache_map) const
Returns range of bulk local points for appropriate cell accessor.
std::shared_ptr< EvalPoints > eval_points() const
Getter of eval_points.
Range< EdgePoint > points(const DHCellSide &cell_side, const ElementCacheMap *elm_cache_map) const
Returns range of side local points for appropriate cell side accessor.
#define THROW(whole_exception_expr)
Wrapper for throw. Saves the throwing point.
Side accessor allows to iterate over sides of DOF handler cell.