19 #ifndef EVAL_POINTS_HH_ 20 #define EVAL_POINTS_HH_ 43 class EvalPoints :
public std::enable_shared_from_this<EvalPoints> {
58 inline unsigned int size(
unsigned int dim)
const {
63 template<
unsigned int dim>
64 inline arma::vec::fixed<dim>
local_point(
unsigned int local_point_idx)
const {
69 inline int subset_begin(
unsigned int dim,
unsigned int idx)
const {
74 inline int subset_end(
unsigned int dim,
unsigned int idx)
const {
79 inline int subset_size(
unsigned int dim,
unsigned int idx)
const {
84 inline unsigned int n_subsets(
unsigned int dim)
const {
92 template <
unsigned int dim>
96 template <
unsigned int dim>
100 template <
unsigned int dim>
104 template <
unsigned int dim>
109 return std::max(
size(1), std::max(
size(2),
size(3) ) );
119 inline unsigned int size()
const {
124 template<
unsigned int dim>
125 inline arma::vec::fixed<dim>
local_point(
unsigned int local_point_idx)
const {
154 template <
unsigned int dim>
158 template <
unsigned int dim>
static constexpr unsigned int max_subsets
Maximal number of hold subsets.
std::shared_ptr< BulkIntegral > add_bulk(const Quadrature &)
int subset_end(unsigned int dim, unsigned int idx) const
Return end index of appropriate subset data.
int subset_end(unsigned int idx) const
Return end index of appropriate subset data.
Armor::Array< double > local_points_
Local coords of points vector.
unsigned int size() const
unsigned int n_subsets_
Number of subset.
arma::vec::fixed< dim > local_point(unsigned int local_point_idx) const
Return local coordinates of given local point and appropriate dim.
unsigned int max_size() const
Return maximal size of evaluation points objects .
unsigned int n_subsets() const
Return number of subsets.
static const unsigned int max_subset_points
Maximal average number of points hold in subset.
DimEvalPoints(unsigned int dim)
Constructor.
ArmaVec< Type, nr > vec(uint mat_index) const
static const unsigned int undefined_dim
Undefined dimension of new (empty) object.
Base class for quadrature rules on simplices in arbitrary dimensions.
arma::vec::fixed< dim > local_point(unsigned int local_point_idx) const
Return local coordinates of given local point.
std::shared_ptr< EdgeIntegral > add_edge(const Quadrature &)
The same as add_bulk but for edge points on sides.
int subset_size(unsigned int dim, unsigned int idx) const
Return number of local points corresponding to subset.
std::array< DimEvalPoints, 3 > dim_eval_points_
Sub objects of dimensions 1,2,3.
std::shared_ptr< CouplingIntegral > add_coupling(const Quadrature &)
The same as add_bulk but for points between side points of element of dim and bulk points of element ...
unsigned int find_permute_point(arma::vec coords, unsigned int data_begin, unsigned int data_end)
Find position of local point (coords) in subvector of local points given by limits <data_begin...
int subset_begin(unsigned int idx) const
Return begin index of appropriate subset data.
unsigned int size() const
Return size of evaluation points object (number of points).
unsigned int size(unsigned int dim) const
Return size of evaluation points object (number of points).
Class holds local coordinations of evaluating points (bulk and sides) specified by element dimension...
int subset_begin(unsigned int dim, unsigned int idx) const
Return begin index of appropriate subset data.
void add_local_points(const Armor::Array< double > &quad_points)
Adds set of local point to local_points_ (bulk or side of given permutation).
int subset_size(unsigned int idx) const
Return number of local points corresponding to subset.
std::shared_ptr< BoundaryIntegral > add_boundary(const Quadrature &)
The same as add_bulk but for edge points on boundary sides.
std::array< int, EvalPoints::max_subsets+1 > subset_starts_
Indices of subsets data in local_points_ vector, used size is n_subsets_ + 1.
void add_subset()
Adds new subset and its end size to subset_starts_ array.
Implementation of range helper class.
unsigned int n_subsets(unsigned int dim) const
Return number of subsets.
unsigned int dim_
Dimension of local points.
#define ASSERT_LT_DBG(a, b)
Definition of comparative assert macro (Less Than) only for debug mode.